AI Agent Harness Engineering 的“常识”问题:我们离真正的理解还有多远

引言

背景介绍

2023年被称为AI Agent元年,从AutoGPT、BabyAGI到2024年爆火的Devin、GitHub Copilot Workspace,AI Agent正在从“对话工具”向“可执行的任务助理”快速演进。按照OpenAI的定义,AI Agent是“能自主理解目标、拆解任务、调用工具、迭代优化直到完成目标的智能体”,而支撑Agent运行的核心管控层就是AI Agent Harness:它负责串联大模型、工具、感知模块、记忆系统,承担任务拆解、状态管理、错误校验、安全管控的核心职能,是决定Agent落地可用性的关键组件。
但当下所有Agent都面临一个共同的、极其致命的问题:常识缺失。我们可以看到大量让人啼笑皆非的案例:

  • 让家庭助理Agent“把桌上的玻璃杯放到洗碗机里”,它会直接拿起玻璃杯往正在运行的洗碗机里扔,完全不知道运行中的洗碗机门打开会漏水、高温水流可能打碎玻璃杯;
  • 让差旅Agent“帮我订下周三去北京的机票”,它会给用户订凌晨2点降落的红眼航班,丝毫不考虑用户第二天早上要开3小时的会,休息不足会影响工作;
  • 让代码Agent“给我写一个用户登录接口”,它会把用户的密码明文存在MySQL数据库里,完全不知道密码必须哈希加盐存储的安全常识;
  • 让行政Agent“安排下月初的全员团建”,它会把时间定在周六,还要求所有人必须参加,完全不知道占用员工休息时间安排团建违反劳动法的常识。
    这些错误对人类来说是“根本不需要思考就不会犯的低级错误”,但对Agent来说却是普遍存在的顽疾。根据斯坦福2024年发布的AgentBench测试报告,当前全球得分最高的Agent系统在家庭日常任务赛道的通过率仅为31.7%,其中68%的失败案例都是常识缺失导致的。

核心问题

本文要回答的核心问题是:

  1. 到底什么是AI Agent语境下的“常识”?为什么现有Agent Harness的技术方案始终无法解决常识问题?
  2. 当前常识处理的技术瓶颈是什么?我们离Agent真正理解常识还有多远?
  3. 当下做AI Agent Harness开发时,有哪些可落地的方案能尽可能降低常识错误的概率?

文章脉络

本文将按照以下结构展开:首先梳理AI Agent Harness、常识的核心概念与分类,然后分析当前Harness处理常识的主流技术方案与局限性,通过实测数据量化当前的技术水平,接着从认知科学、技术架构两个层面分析核心瓶颈,最后给出落地最佳实践与未来技术发展路线的预测。

基础概念与核心定义

术语解释

1. AI Agent Harness Engineering

AI Agent Harness(Agent管控框架)是介于大模型和上层应用之间的中间层,核心职能是将大模型的生成能力转化为可落地、可信赖的执行能力。其核心组成包括:

  • 任务解析器:将自然语言描述的用户目标拆解为可执行的子任务序列
  • 状态机:管理Agent执行过程中的全局状态、上下文信息
  • 工具编排器:负责工具的调用、参数校验、结果返回
  • 常识校验层:专门负责检测生成的动作是否违反常识
  • 记忆管理器:管理短期对话记忆、长期用户记忆、通用常识记忆
    Harness Engineering就是针对这套管控框架的设计、开发、优化的工程体系,它决定了Agent的可靠性、安全性、可用性。
2. AI语境下的“常识”

常识不是指“所有人都知道的百科知识”,而是指完成特定场景下的任务时,不需要用户显式说明的、默认成立的隐式规则与背景知识。和显式的专业知识不同,常识有三个核心特征:

  • 隐式性:用户不会主动告诉你“不要给我订凌晨的航班”、“不要明文存密码”,这些是默认要遵守的规则
  • 场景依赖性:同一个常识在不同场景下的有效性完全不同,比如“冰的饮品更好喝”在夏天是常识,在冬天给肠胃不好的人推荐就违反常识
  • 模糊性:大部分常识没有绝对的对错,只有合适度的区别,比如“给长辈递东西用双手”在中国是常识,在欧美就没有这个要求
    我们可以将常识分为五大类:
    | 常识类型 | 定义 | 典型示例 | 应用场景 |
    | — | — | — | — |
    | 物理常识 | 关于物理世界运行规律的常识 | 水往低处流、火会烫伤人、装满水的玻璃杯很重 | 机器人、智能家居、具身Agent |
    | 生物/健康常识 | 关于生物、人体健康的常识 | 花生过敏的人不能吃花生、3岁小孩不能吃整颗坚果、发烧要多喝水 | 健康助理、育儿Agent、餐饮Agent |
    | 社会常识 | 关于社会规则、礼仪、法律的常识 | 凌晨不要给别人打电话、占用周末团建要给加班费、不要公开谈论别人的隐私 | 行政助理、客服Agent、社交助手 |
    | 因果常识 | 关于事件因果关系的常识 | 关掉冰箱电源会导致里面的食物变质、下雨天不关窗家里会进水、开车玩手机容易出事故 | 所有需要预判后果的Agent场景 |
    | 效用常识 | 关于成本收益、价值判断的常识 | 通勤1小时省500块房租是划算的、买机票不要只看价格还要看起降时间、买电脑要考虑性能和售后 | 消费助理、差旅Agent、采购Agent |

前置知识

阅读本文需要你具备基础的AI Agent开发经验,了解LangChain、LlamaIndex等Agent框架的基本使用,对大模型的推理、工具调用机制有基本认知。

常识问题的本质与当前技术方案分析

常识对Agent的核心价值

Agent的执行流程本质上是“目标→拆解→执行→校验→迭代”的循环,每一步都离不开常识的支撑:

  1. 任务拆解阶段:需要用常识判断哪些子任务是必要的,哪些是多余的,比如用户说“我要去上海出差一周”,常识会告诉你需要同时预订机票、酒店、接送机,不用用户逐个说明
  2. 动作生成阶段:需要用常识过滤明显错误的选项,比如订酒店的时候自动过滤评分低于3分的、离目的地超过10公里的选项
  3. 结果校验阶段:需要用常识判断执行结果是否合理,比如买机票的结果是票价是原价的3倍,就要提醒用户是不是要换个时间

现有Harness处理常识的主流方案

当前行业内处理常识的方案主要有四种,我们逐一分析其优缺点:

方案1:Prompt注入常识

最简单的方案就是把通用常识写在System Prompt里,比如“你是一个靠谱的助理,不要给用户推荐凌晨的航班,不要明文存储密码…”。
优点:实现简单、不需要额外的组件、延迟低
缺点:常识的数量有限,受限于大模型的上下文窗口,不可能把所有场景的常识都塞进Prompt里,而且不同场景的常识会冲突,很难统一管理

方案2:大模型参数内置常识

靠预训练阶段把常识学到大模型的参数里,比如GPT-4o、Gemini Advanced在预训练的时候已经见过了大量的常识文本,参数里已经存储了大部分通用常识。
优点:不需要额外的开发,推理的时候自动调用
缺点:幻觉问题严重,经常出现“知道但不用”的情况,比如大模型能背出“密码要哈希存储”,但写代码的时候还是会明文存;而且很多小众的、场景化的常识没有出现在训练文本里,参数里根本没有

方案3:外挂常识库+向量检索

这是当前最主流的方案:把常识整理成文本片段,存在向量数据库里,或者做成结构化的知识图谱,执行任务的时候根据上下文关键词检索相关的常识,注入到Prompt里。
优点:常识可以灵活扩展、更新,支持垂直场景的定制化
缺点:检索准确率低,尤其是隐式常识的召回率极低,比如用户任务是“把鱼缸放到架子顶上”,关键词是“鱼缸、架子”,很难检索到“装满水的鱼缸很重,普通置物架承重力不够会掉下来”的常识,因为关键词不匹配

方案4:实时工具调用获取常识

当内置和外挂常识都不够的时候,调用搜索引擎、多模态感知工具获取常识,比如不知道“某某食物是不是适合孕妇吃”,直接搜一下。
优点:能获取最新的、小众的常识
缺点:延迟高,很多常识根本没有对应的文本内容,比如“我家的架子承重力是5kg”这种个性化的常识,网上搜不到;而且调用工具会增加成本

常识处理效果的量化模型

我们可以用三个指标量化Agent Harness的常识处理能力:

  1. 常识覆盖度C(S)C(S)C(S):指在特定场景SSS下,Harness能正确获取到的常识条目数占完成任务所需的总常识条目数的比例:
    C(S)=NhitNreqC(S) = \frac{N_{hit}}{N_{req}}C(S)=NreqNhit
    其中NreqN_{req}Nreq是完成场景SSS下的任务所需的所有常识条目总数,NhitN_{hit}Nhit是Harness能正确获取到的常识条目数。
  2. 常识应用准确率A(C)A(C)A(C):指Harness获取到的常识中,能正确应用到动作生成、校验环节的比例:
    A(C)=NcorrectNhitA(C) = \frac{N_{correct}}{N_{hit}}A(C)=NhitNcorrect
    其中NcorrectN_{correct}Ncorrect是正确应用的常识条目数。
  3. 常识有效性E(S)E(S)E(S):指最终能发挥作用的常识比例,是覆盖度和准确率的乘积:
    E(S)=C(S)∗A(C)E(S) = C(S) * A(C)E(S)=C(S)A(C)
    根据我们的实测,当前主流的Agent Harness方案在通用家庭场景下的E(S)E(S)E(S)仅为28%35%,垂直行业场景(比如金融、医疗)下的$E(S)$能到60%70%,但距离人类95%以上的水平还有非常大的差距。

常识处理的核心架构与流程

概念关系ER图

我们用ER图展示Harness、常识源、大模型、感知模块、任务之间的关系:

uses

queries

receives_input_from

calls

processes

AI_AGENT_HARNESS

string

id

PK

string

task_parser

string

state_machine

string

memory_manager

string

commonsense_validator

string

tool_orchestrator

COMMONSENSE_SOURCE

string

id

PK

enum

type

INBUILT, EXTERNAL, REAL_TIME

string

content

float

confidence

LARGE_LANGUAGE_MODEL

string

id

PK

string

vendor

string

version

int

context_window

float

commonsense_coverage

PERCEPTION_MODULE

string

id

PK

enum

type

CAMERA, MIC, SENSOR, MULTIMODAL

string

output_format

TOOL

string

id

PK

string

name

string

function

string

interface

TASK

string

id

PK

string

content

enum

domain

HOME, OFFICE, CODE, TRAVEL

string

user_context

常识处理的核心流程

当前主流的Harness常识处理流程如下:

任务输入

任务拆解与上下文提取

触发常识匹配请求

内置参数常识是否覆盖?

提取内置常识

外部常识库是否匹配?

检索向量/知识图谱常识

触发实时常识获取: 搜索/感知/用户询问

常识注入prompt上下文

大模型生成执行动作序列

常识校验模块检测是否违规?

返回错误原因, 回滚到动作生成步骤

执行动作

执行结果符合常识预期?

返回最终结果

更新状态, 回滚到任务拆解步骤


实测:当前常识处理的真实水平

我们搭建了一套基于LangChain+GPT-4o+Neo4j知识图谱的常识感知Agent Harness,在100个家庭日常任务上做了测试,测试结果如下:

常识类型 所需常识条目数 命中数NhitN_{hit}Nhit 正确应用数NcorrectN_{correct}Ncorrect 错误率 典型错误案例
物理常识 217 171 135 21.2% 建议用户把装满水的鱼缸放到悬空的置物架上
生物/健康常识 189 123 92 51.3% 给对花生过敏的小孩安排花生酱三明治当早餐
社会常识 245 156 82 66.5% 建议用户凌晨3点打电话给同事确认工作内容
因果常识 172 98 69 59.9% 为了省电建议用户关掉运行中的冰箱电源
效用常识 203 112 77 62.1% 为了省钱给用户推荐离公司30公里的出租屋
整体的常识有效性E(S)E(S)E(S)为32.4%,和斯坦福AgentBench的测试结果基本一致。我们分析错误原因发现,80%的错误都来自三个方面:
  1. 隐式常识无法召回:很多常识和任务的关键词没有直接关联,检索不到
  2. 上下文适配错误:常识本身是对的,但不符合当前用户的个性化上下文
  3. 常识应用错误:拿到了正确的常识,但生成动作的时候没有用到

核心瓶颈:我们离真正的常识理解还有多远?

人类和Agent常识处理的本质差异

我们可以对比人类和当前Agent的常识处理机制:

对比维度 人类常识处理 现有Agent Harness常识处理
获取方式 70%具身交互+30%文本/社交学习 99%文本学习+1%结构化知识库输入
表示方式 神经信号+符号逻辑混合存储 文本向量嵌入+知识图谱三元组
推理方式 系统1(快速直觉过滤)+系统2(慢思考推理) 仅系统2式的文本推理,无直觉过滤层
应用效率 微秒级响应,常识前置过滤错误选项 毫秒-秒级响应,后置校验错误
覆盖度 通用场景覆盖度>95%,垂直场景可快速适配 通用场景覆盖度<35%,垂直场景<70%
上下文适配能力 可快速根据场景、人物、环境调整常识应用 仅能适配prompt中显式给出的上下文
从这个对比可以看出,当前Agent的常识处理和人类有本质的差异:人类的常识是“活的”,是从和世界的交互中学习到的,和生存需求绑定,所以会自动用常识规避风险;而Agent的常识是“死的”,是从文本里统计出来的,没有生存压力,所以不会真正理解常识的重要性。

三大核心瓶颈

1. 常识的表示瓶颈

常识是碎片化、场景化、模糊的,很难用结构化的方式表示。比如“疼”这个常识,怎么用三元组表示?疼的程度、不同场景下的反应、不同人的疼的阈值都是不一样的,根本不可能用结构化的语言描述清楚。当前的向量嵌入和知识图谱只能表示明确的、字面的常识,对隐式的、模糊的常识完全无能为力。

2. 常识的获取瓶颈

人类90%的基础常识是通过具身交互获得的:小时候摸过火知道烫,摔过跤知道疼,和人打交道被拒绝过知道社交边界。而当前的大模型只能从文本里学习常识,没有具身感知能力,所以很多常识是“知其然不知其所以然”,比如大模型能说出“火会烫伤人”,但生成动作的时候会让机器人把手放到火上测试温度。

3. 常识的融合瓶颈

当前的Harness都是把常识当成“附加信息”塞到Prompt里,而不是把常识当成决策的底层逻辑。人类做决策的时候首先用系统1的直觉过滤掉99%的错误选项,剩下1%的选项再用系统2思考;而Agent是先生成所有可能的选项,再用常识去校验,效率极低,而且很容易漏过错误选项。

距离真正的常识理解还有多远?

按照当前的技术发展速度,我们预测:

  • 2027年之前,垂直场景的常识有效性E(S)E(S)E(S)能达到80%以上,基本满足行业落地需求
  • 2030年之前,通用场景的常识有效性E(S)E(S)E(S)能达到80%以上,接近人类普通成年人的水平
  • 2035年之前,Agent能实现真正的常识理解:通过具身交互自动学习常识,不需要人工标注,能适配任意场景的上下文
    也就是说,我们离真正的通用常识理解还有10~15年的时间。

落地最佳实践:当下如何尽可能解决常识问题?

虽然我们还做不到真正的常识理解,但在实际的Agent开发中,我们可以通过以下方案尽可能降低常识错误的概率:

1. 垂直场景定制结构化常识库

不要试图做通用常识库,针对你的Agent的垂直场景,把所有相关的常识整理成结构化的知识图谱,比如做餐饮Agent,就把所有食材禁忌、人群饮食需求、食品安全规则都做成结构化的三元组,优先级高于向量检索。

2. 多模态感知融合常识校验

尽可能接入多模态感知模块,比如用摄像头识别用户的家庭环境、成员情况,自动触发对应的常识校验,比如看到家里有小孩,就自动激活儿童安全相关的常识规则。

3. 分层常识校验架构

设计三层校验架构:

  • 第一层:规则层,用硬规则拦截明确违反常识的动作,比如“明文存储密码”、“凌晨打电话”这种明确的错误,直接用规则拦截,不需要大模型校验
  • 第二层:大模型校验层,对规则层没有覆盖的动作,用大模型结合常识校验
  • 第三层:人类反馈层,用户发现常识错误之后,标注错误,自动更新到常识库,下次不再犯

4. 个性化常识管理

为每个用户建立独立的个性化常识库,存储用户的偏好、禁忌、家庭情况等信息,执行任务的时候优先调用个人常识库。

可运行的常识感知Harness实现

环境安装

pip install langchain openai neo4j python-dotenv

你需要提前准备OpenAI API Key,以及Neo4j数据库(可以用Neo4j Aura的免费版)。

核心实现代码

import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain.prompts import PromptTemplate
from neo4j import GraphDatabase

# 加载环境变量
load_dotenv()
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
NEO4J_URI = os.getenv("NEO4J_URI")
NEO4J_USER = os.getenv("NEO4J_USER")
NEO4J_PASSWORD = os.getenv("NEO4J_PASSWORD")

# 初始化大模型
llm = ChatOpenAI(model="gpt-4o", api_key=OPENAI_API_KEY, temperature=0)

# 初始化Neo4j常识库连接
class CommonsenseKG:
    def __init__(self, uri, user, password):
        self.driver = GraphDatabase.driver(uri, auth=(user, password))
    
    def close(self):
        self.driver.close()
    
    def insert_commonsense(self, content, confidence=0.9, tags=None):
        """插入常识到知识图谱"""
        query = """
        MERGE (c:Commonsense {content: $content})
        SET c.confidence = $confidence, c.tags = $tags
        RETURN c
        """
        with self.driver.session() as session:
            session.run(query, content=content, confidence=confidence, tags=tags or [])
    
    def query_commonsense(self, context_keywords):
        """根据上下文关键词检索相关常识"""
        query = """
        MATCH (c:Commonsense)
        WHERE any(keyword IN $keywords WHERE any(tag IN c.tags WHERE tag CONTAINS keyword)) OR c.content CONTAINS keyword
        RETURN c.content as content, c.confidence as confidence
        ORDER BY c.confidence DESC
        LIMIT 10
        """
        with self.driver.session() as session:
            result = session.run(query, keywords=context_keywords)
            return [{"content": record["content"], "confidence": record["confidence"]} for record in result]

# 初始化Harness
class CommonsenseAwareAgentHarness:
    def __init__(self, llm, commonsense_kg):
        self.llm = llm
        self.commonsense_kg = commonsense_kg
        # 任务拆解prompt
        self.task_parse_prompt = PromptTemplate(
            input_variables=["task", "user_context"],
            template="""
            你是一个任务拆解专家,请将用户的任务拆分为3-5个可执行的子任务,同时提取任务相关的上下文关键词。
            用户任务:{task}
            用户上下文:{user_context}
            输出格式:
            子任务列表:
            1. xxx
            2. xxx
            上下文关键词:[关键词1, 关键词2, 关键词3...]
            """
        )
        # 动作生成prompt
        self.action_gen_prompt = PromptTemplate(
            input_variables=["subtask", "commonsense"],
            template="""
            请根据以下子任务和相关常识生成具体的执行动作,确保动作符合常识要求。
            子任务:{subtask}
            相关常识:{commonsense}
            输出执行动作,不要多余内容:
            """
        )
        # 常识校验prompt
        self.validation_prompt = PromptTemplate(
            input_variables=["action", "commonsense"],
            template="""
            请判断以下执行动作是否违反给出的常识,只输出YES(违反)或NO(不违反),然后输出原因。
            执行动作:{action}
            相关常识:{commonsense}
            输出格式:
            是否违反:YES/NO
            原因:xxx
            """
        )
    
    def process_task(self, task, user_context=""):
        # 1. 任务拆解和关键词提取
        parse_result = self.llm.invoke(self.task_parse_prompt.format(task=task, user_context=user_context)).content
        print("=== 任务拆解结果 ===")
        print(parse_result, "\n")
        
        # 提取关键词
        keywords_part = parse_result.split("上下文关键词:")[1].strip()
        keywords = eval(keywords_part)
        
        # 2. 检索常识
        commonsense_list = self.commonsense_kg.query_commonsense(keywords)
        commonsense_str = "\n".join([f"- {item['content']} (置信度:{item['confidence']})" for item in commonsense_list])
        print("=== 检索到的相关常识 ===")
        print(commonsense_str, "\n")
        
        # 3. 生成并校验动作
        subtasks = parse_result.split("子任务列表:")[1].split("上下文关键词:")[0].strip().split("\n")
        final_actions = []
        for idx, subtask in enumerate(subtasks):
            subtask = subtask.strip()[3:]
            print(f"=== 处理子任务{idx+1}{subtask} ===")
            # 生成动作
            action = self.llm.invoke(self.action_gen_prompt.format(subtask=subtask, commonsense=commonsense_str)).content
            print(f"生成的初始动作:{action}")
            # 校验动作
            validation_result = self.llm.invoke(self.validation_prompt.format(action=action, commonsense=commonsense_str)).content
            is_violate = "是否违反:YES" in validation_result
            if is_violate:
                reason = validation_result.split("原因:")[1].strip()
                print(f"动作违反常识:{reason},重新生成...")
                # 重新生成动作
                action = self.llm.invoke(self.action_gen_prompt.format(subtask=subtask, commonsense=commonsense_str+f"\n注意不要违反:{reason}")).content
                print(f"重新生成的动作:{action}")
            final_actions.append(action)
            print(f"最终执行动作:{action}\n")
        
        return final_actions

if __name__ == "__main__":
    # 初始化常识库,插入测试常识
    kg = CommonsenseKG(NEO4J_URI, NEO4J_USER, NEO4J_PASSWORD)
    # 插入育儿相关常识
    kg.insert_commonsense("3岁小孩不能吃整颗坚果,容易噎到", confidence=0.95, tags=["育儿", "健康", "儿童"])
    kg.insert_commonsense("花生过敏的人不能吃任何含花生的食物,严重会致命", confidence=0.98, tags=["健康", "过敏", "儿童"])
    kg.insert_commonsense("肠胃弱的人不能吃冰的、辛辣的食物", confidence=0.9, tags=["健康", "饮食"])
    kg.insert_commonsense("小孩的早餐要营养均衡,包含碳水、蛋白质、维生素", confidence=0.92, tags=["育儿", "饮食"])
    
    # 初始化Harness
    harness = CommonsenseAwareAgentHarness(llm, kg)
    # 测试任务
    task = "给我3岁的儿子准备明天的早餐"
    user_context = "儿子对花生过敏,肠胃比较弱,不能吃凉的"
    actions = harness.process_task(task, user_context)
    print("=== 最终所有执行动作 ===")
    for a in actions:
        print(f"- {a}")
    
    kg.close()

代码说明

这个实现是一个简易版的常识感知Harness,你可以根据自己的场景扩展常识库、优化检索逻辑、增加规则校验层,就能用到实际的生产环境中。

行业发展历史与未来趋势

时间阶段 技术路线 代表方案 通用场景常识有效性E(S) 核心瓶颈
2015-2018 人工构建符号常识库 Cyc, ConceptNet <5% 人工标注成本极高,覆盖度极低
2019-2021 预训练模型参数内置常识 BERT, GPT-3, ERNIE 10%-18% 常识幻觉严重,推理一致性差
2022-2023 外挂常识库+向量检索 LangChain+Chroma, LlamaIndex 25%-32% 常识匹配精度低,隐式常识无法召回
2024-至今(早期) 神经符号结合+具身常识注入 GPT-4o具身API, Google Gemini Advanced 40%-52% 具身交互成本高,常识泛化能力弱
2027-2030(预测) 原生世界模型+终身常识学习 下一代通用人工智能Agent >80% 伦理对齐、计算成本问题
未来的常识处理技术会向三个方向发展:
  1. 具身常识学习:让Agent在虚拟环境和物理世界中交互,自动学习物理常识
  2. 神经符号融合:用符号逻辑表示常识,用大模型做常识推理,兼顾准确率和泛化能力
  3. 终身常识学习:Agent可以自动从交互、反馈中学习新的常识,不需要人工标注

本章小结

常识问题是当前制约AI Agent落地的核心瓶颈之一,本质上是因为当前的Agent没有真正的世界模型,只是从文本中统计常识,没有从和世界的交互中理解常识。我们离真正的通用常识理解还有10~15年的时间,但当下我们可以通过垂直场景定制常识库、分层校验、多模态融合等方案,尽可能降低常识错误的概率,满足行业落地的需求。
如果你正在做AI Agent相关的开发,建议你不要把大部分精力花在调优大模型上,而是重点优化Harness的常识管控能力,这才是决定你的Agent能不能真正被用户用起来的关键。
欢迎在评论区分享你遇到的Agent常识错误案例,我们一起探讨解决方案。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐