云计算百科
云计算领域专业知识百科平台

拆解Agent的Harness六层架构:为什么你的大模型总是跑崩

文章目录

    • 一、先讲个离谱的事
    • 二、Harness到底是个啥
    • 三、AI工程这两年走了三步
      • 3.1 第一级:把话说清楚
      • 3.2 第二级:把信息喂对
      • 3.3 第三级:把执行驾驭住
    • 四、成熟Harness的六层架构
      • 4.1 第一层:信息边界管理
      • 4.2 第二层:工具系统
      • 4.3 第三层:执行编排
      • 4.4 第四层:状态管理
      • 4.5 第五层:评估与观测
      • 4.6 第六层:约束、校验与失败恢复
    • 五、一线公司到底怎么玩的
      • 5.1 Anthropic:对付"上下文焦虑"
      • 5.2 Anthropic:生产与验收必须分离
      • 5.3 OpenAI:工程师不写代码,只设计环境
    • 六、收口:上限归模型,下限归Harness

在这里插入图片描述
P.S. 推荐一个大神的教程给想要了解或者学习人工智能知识的读者,这个教程里内容讲解通俗易懂且风趣幽默,对我帮助很大。我想与大家分享这个宝藏教程,请点击下方链接查看,
传送门https://blog.csdn.net/qq_74013365

一、先讲个离谱的事

有个团队做Agent,效果一直上不去。

他们的操作非常标准——换最强的模型,提示词改了一百多版,温度参数从0调到1再调回0.1,恨不得把模型祖坟都刨出来调一调。

结果呢?真实场景成功率,70%都不到。

你说气不气?就像你花大价钱请了个金牌大厨,结果他炒出来的菜还是咸的,你怀疑是锅的问题,换了三口锅,还是咸。最后发现——是你没告诉他盐放多少、火候多大、炒完要不要尝一口。

后来这个团队干了一件事,成功率直接干到95%以上。

模型没换,提示词没动,参数一个没改。

改的是:任务怎么拆、状态怎么管、关键步骤怎么校验、失败了怎么捞回来。

说白了,改的全是模型外面那套东西。

这套东西,现在有了个统一的名字——Harness。

二、Harness到底是个啥

LangChain那帮人给过一个特别干净的等式:

Agent = Model + Harness

移项就是:Harness = Agent − Model。

翻译成人话:在一个Agent系统里,除了模型本身之外,所有决定它能不能稳定干活的东西,都算Harness。

这个定义为啥重要?因为它把"模型"和"系统"在账本上彻底分家了。

模型是上限,Harness是下限。

而决定一个产品能不能落地的,从来都是下限。你家天花板再高,地板塌了照样住不了人。

那个70%到95%的案例,改的全是下限。

三、AI工程这两年走了三步

Harness不是凭空蹦出来的。过去两年,AI工程其实走完了三级跳:

Prompt Engineering → Context Engineering → Harness Engineering

听着像术语流行史,实际上是AI系统要回答的三层问题在依次显形:

  • 模型有没有听懂你在说什么?

  • 模型有没有拿到足够且正确的信息?

  • 模型在真实执行里能不能持续做对?

  • 三层问题一层包一层,越往外越大。就像剥洋葱,剥到最后你会流泪——因为发现最外面那层才是真正难搞的。

    3.1 第一级:把话说清楚

    大模型刚火那阵,大家最直观的体验是:同一个模型,换个说法结果差很多。

    于是全民研究提示词——角色设定、Few‑shot、风格约束、输出格式。那段时间人人都是"提示词工程师",朋友圈到处是"万能提示词模板",卖9块9一份,比奶茶还畅销。

    为啥有效?因为大模型本质是一个对上下文极度敏感的概率生成器。你给它什么身份,它就顺着那个身份往下接;给它什么样例,它就按那个范式补全。

    提示词工程的本质,不是命令模型,而是给它框一个概率分布,让它更可能落进你想要的解空间。

    但它的天花板也很硬:很多任务不是你说清楚就行,是你真得知道。让模型按一套长规范写代码、回答某个产品的最新配置——提示词写得再漂亮,也替代不了事实本身。

    一句话:Prompt解决的是表达问题,不是信息问题。

    就像你跟一个外卖员说"请给我送一份最好吃的麻辣烫",他表达上完全听懂了,但他不知道你家在哪、你吃不吃辣、要不要加麻酱。

    3.2 第二级:把信息喂对

    Agent一火,问题就变了。模型不再只是回答,而是要进真实环境做事:多轮对话、调浏览器、写代码、查数据库,多步之间传中间结果,根据反馈改计划。

    问题从"一次答得对不对"变成"整条链路跑不跑得通"。

    这时核心命题换成一句:模型不知道的,系统必须在合适时机把正确信息送进去。

    注意,这里的"信息"远不止几段背景资料。它是所有影响模型当前决策的东西的总和——用户输入、历史对话、检索结果、工具返回、任务状态、中间产物、系统规则、安全约束、别的Agent传来的结构化结果。

    Prompt只是其中一小块。就像你去餐厅吃饭,菜单只是信息的一部分,食材新不新鲜、厨师今天心情好不好、后厨有没有蟑螂,这些才是决定你这顿饭体验的关键。

    RAG是这级的典型实践:先检索再塞上下文。但成熟的Context工程不止检索,它管整条链路——文档怎么切块、结果怎么排序、长文怎么压缩、历史何时保留何时摘要、工具返回要不要全暴露、多Agent间传原文还是摘要还是结构化字段。

    核心信条就一句:上下文是稀缺资源,优化不是给更多,是按需给、分层给、在正确时机给。

    但这级也有够不着的地方:就算信息喂对了,模型也不一定稳定执行对。它可能计划漂亮,执行却跑偏——掉工具、误读返回、长链路里悄悄偏航而系统毫无察觉。

    Prompt和Context都在解决输入侧,可模型一旦连续行动,谁来监督它、约束它、拉回它?

    3.3 第三级:把执行驾驭住

    Harness原意是缰绳、马具。借到AI里,提醒的是件朴素的事:模型从"回答问题"走到"执行任务",系统不只负责喂信息,还要驾驭整个过程。

    前两级关注"让模型更会响应",这级关注"让模型别跑偏、跑得稳、出了错还拉得回来"。

    给你打个比方,一下就懂了:

    开一辆车送重要客人去机场——

    Prompt:你把任务跟司机讲清楚——走哪条路、几点到、乘客要安静。重点是把意图说清楚。

    Context:你把信息喂齐——导航路线、实时路况、油量、乘客行李数量。重点是信息供给对不对。

    Harness:你装了方向盘助力、车道偏离提醒、疲劳驾驶监测、备胎和保险,还要求司机每段路汇报、到站按清单验收。重点是执行全程有人盯、有偏差能纠、出事能兜底。

    三者不是替代,是包含:Prompt ⊂ Context ⊂ Harness。边界一层比一层大。

    你品品,是不是这个道理?很多人买车只看发动机(模型),不看安全气囊和刹车系统(Harness),结果上路第一天就追尾了。

    四、成熟Harness的六层架构

    把Harness摆开看,我把它归成六层。这六层从内到外,越往外越是"能不能上线"的生死线。

    4.1 第一层:信息边界管理

    重新站到Harness视角看Context:模型发挥稳不稳,很多时候取决于它看到了什么。

    这层管三件事——

    角色与目标的定义:你是谁、成功标准是什么。别让模型干着干着忘了自己是谁,这比人中年危机还可怕。

    信息裁剪:越相关越好,不是越多越好。给模型塞一堆无关信息,就像你考试前把整本书都背了,结果考的是另一门课。

    结构化分区:固定规则、当前任务、运行状态、外部证据各归其位。信息一乱,模型就漏重点、忘约束,甚至自我污染——自己上一轮说的错话,下一轮当成真理继续往下编。

    4.2 第二层:工具系统

    没工具,大模型的本质就是个文本预测器,碰不到真实世界。就像一个人脑子再好使,手脚被绑着,也只能原地嘴炮。

    但Harness不是简单挂工具,它要回答三个问题:

    给哪些工具?太少不够用、太多会乱用。你给一个实习生二十把钥匙,他大概率会拿错;你只给他一把,他反而知道该开哪扇门。

    什么时候调?不该查别乱查、该查别硬答。有些模型特别自信,不知道的东西也敢编,编得比真的还像真的。这时候你得在系统层面拦住它:不知道就去查,别瞎扯。

    工具结果怎么喂回?几十条搜索结果不能原封塞回去,要提炼筛选保相关性。不然模型看着看着就走神了——跟你刷短视频一样,本来想查个资料,结果看了半小时猫。

    4.3 第三层:执行编排

    解决"下一步做什么"。

    很多Agent不是某一步不会,而是不会把步骤串起来——会搜、会总结、会写代码,结果想到哪做到哪,交出一堆半成品。就像一个厨师会切菜会炒菜会摆盘,但不知道先做哪个后做哪个,结果凉菜还没切,热菜已经凉了。

    一条完整轨道该是:理解目标 → 判断信息够不够 → 基于结果分析 → 生成输出 → 检查不达标就修正重试。

    区别于人的是:人靠经验,Agent靠这套环境、记忆和状态。

    4.4 第四层:状态管理

    没状态的Agent每轮都像失忆。

    你跟它说"帮我写个Python脚本",它写完了。下一轮你说"刚才那个脚本加个日志",它问你"什么脚本?"——比金鱼记性还差。

    至少要分清三类东西:当前任务状态、会话中间结果、长期记忆与用户偏好。混在一起系统必然越来越乱,就像你把袜子、内裤、衬衫全塞一个抽屉里,早上找衣服能找到怀疑人生。

    4.5 第五层:评估与观测

    最被轻视的一层。

    很多系统不是生成不出来,是生成完了不知道自己做得好不好。没有独立评估,Agent就长期停在"自我感觉良好"。

    这就像学生考完试自己给自己打分,那必须满分啊,顺便还得加个卷面分。

    这层包括输出验收、环境验证、自动测试日志指标、错误归因。会做,还要知道自己有没有真做对。

    4.6 第六层:约束、校验与失败恢复

    这层才真正决定能不能上线。

    真实环境里失败不是例外是常态——搜索不准、API超时、文档混乱、模型误解任务。没有恢复机制,每次出错只能从头再来,用户等得花儿都谢了。

    这层管三件事:

    约束:能做什么不能做什么。别让模型删数据库、别让它发邮件给全公司、别让它在生产环境跑rm -rf。

    校验:输出前后怎么检查。生成的代码能不能跑?返回的格式对不对?引用的链接存不存在?

    恢复:失败后重试、切回、回滚到稳定状态。这才是真正的工程素养——不是不出错,而是出了错能自己爬起来。

    把这六层落到代码里,大概长这样(最小骨架,只为示意六层在主循环里的投影):

    def run_task(goal):
    state = {"goal": goal, "steps": [], "verified": False}

    while not state["verified"]:
    plan = planner(state) # 编排:下一步做什么
    result = executor(plan, tools) # 工具系统 + 状态管理

    if not validator(result): # 评估观测 + 校验
    state = recover(state, result) # 失败恢复
    continue

    state["steps"].append(result)
    state["verified"] = evaluator(state) # 独立验收(生产/验收分离)

    return state

    看到没?六层不是六张孤立的图,而是同一个主循环里六个职责。缺哪一层,循环就在哪里漏。

    就像木桶效应——你其他五块板再高,缺了一块,水照样流光。

    五、一线公司到底怎么玩的

    概念讲完,看真正有参考价值的部分——谁把Harness做进了产品。

    战绩很直白:

    LangChain底层模型不变,只改Harness,把自家Agent从榜单30开外杀进前5。

    OpenAI用几名人类工程师加Agent搭出百万行代码的生产级应用,100%代码Agent写,耗时纯人工的十分之一。

    Anthropic做到一句自然语言需求、无人干预连跑数小时,产出完整游戏和数字音频工作站。

    挑两个最有迁移价值的实践讲。

    5.1 Anthropic:对付"上下文焦虑"

    长程自主任务里,模型会得一种病——上下文越塞越满,模型开始丢细节、丢重点,甚至出现一种微妙现象:它好像知道自己快装不下了,于是急着草草收尾。

    像不像你手机内存快满了的时候,开始疯狂删照片、清缓存,连重要的聊天记录都敢删?模型也一样,它一焦虑就想赶紧结束,管你任务做没做完。

    常规解法是Context Compression——压缩历史再继续。但Anthropic发现对某些模型这还不够——压缩只是变短,那种"快撑爆"的负担感没真正消失。

    就像你把行李箱里的衣服卷起来塞,确实省了点空间,但箱子还是那个箱子,该关不上还是关不上。

    他们做了更激进的一招:Context Reset——不在这条上下文里硬压,而是开一个干净的新Agent,把工作交接过去。

    换个壳讲:像长跑接力赛,一个选手跑累了不硬撑、不靠喝咖啡死扛,而是把棒交给一个状态满格的新选手继续跑。

    也像工程里遇到内存泄漏——与其一遍遍清缓存,不如直接重启进程再恢复状态。

    本质都是:承认局部状态会腐化,用交接代替硬撑。这是非常典型的Harness设计——它管的不是模型能力,是运行节奏。

    5.2 Anthropic:生产与验收必须分离

    模型自己干活再给自己打分,几乎必然偏乐观。尤其在体验、产品完整度这类没标准答案的问题上,偏差更明显。

    这就像让学生自己出题自己批卷,那必须全班满分啊,顺便还得评个三好学生。

    Anthropic的解法是一条铁律:把干活的人和验收的人拆开。

    Planner:把模糊需求扩成完整规格。

    Generator:逐步实现。

    Evaluator:像QA一样真实测试。

    关键在Evaluator不只看代码,它真实操作页面、看交互、查实际结果。不是抽象审查,是具体环境验证。

    这背后是个老辣的工程原则,用考试类比最清楚:让学生出题又自己批卷,必将偏乐观;必须换老师独立阅卷。

    只要评估者足够独立,系统就能形成"生成→检查→修复→再检查"的有效循环。

    5.3 OpenAI:工程师不写代码,只设计环境

    OpenAI的实践等于重定义了Agent时代工程师的活:人类一行代码不写,只负责设计环境。

    三件事——

    把产品目标拆成Agent能懂的小任务。

    Agent失败时不让它"更努力点",而是问环境缺了什么能力。

    建立反馈链路让Agent看见自己的工作结果。

    最值得记的一句话:Agent出问题时,修复方案几乎从来不是"更努力一点",而是确定它缺了什么结构性能力。

    这是Harness思维的内核。你家孩子考试不及格,你骂他"你怎么不努力"没用,你得看看是他课本没看懂、还是笔不好使、还是考场太吵。

    他们还踩过一个人人都会踩的坑:早期写了一个巨大的Agent.md,把所有规范全塞进去,结果Agent更糊涂了。

    道理很简单——上下文窗口稀缺,塞满等于什么都没说。就像你给新员工一本500页的员工手册,让他一天看完,他看完只记住了"周五下午可以提前下班"。

    后来改成目录页加子文档,需要时再钻进去。和Skills的渐进式披露同一个根:不一次性全给,按需索取。

    更狠的是自动治理:Agent提交太快,人类Code Review根本盯不过来,于是把资深工程师的经验直接写成系统规则——模块怎么分层、哪层不能依赖哪层、什么时候必须拦截。

    而且规则不只报错,还把"该怎么修"一起返回给Agent,进入下一轮上下文。

    这已经不是代码规范了,是一套可持续运转的自动治理系统。相当于把一个十年经验的架构师,变成了24小时不睡觉的自动守门员。

    六、收口:上限归模型,下限归Harness

    把三阶段收成一句:

    Prompt Engineering:把任务讲清楚。

    Context Engineering:把信息喂对。

    Harness Engineering:让模型在真实执行里持续做对。

    Harness不取代前两者,它在更大的系统边界上把两者包了进去。

    任务还是单轮生成时Prompt重要;依赖外部知识时Context关键;一旦进入长链路、可执行、低容错的真实场景——Harness几乎不可避免。

    这也解释了开头那个执念为什么总落空:同样的模型,在不同产品里表现天差地别,因为真正决定上限的可能是模型,但真正决定能不能落地、能不能稳定交付的,是Harness。

    AI落地的核心战场,正在从"让模型看起来更聪明",转向"让模型在真实世界里稳定工作"。

    这趟车,做Agent的人趁早想明白。

    模型决定Agent能多聪明,Harness决定Agent能不能上线。前者是天花板,后者是准入证。

    P.S. 推荐一个大神的教程给想要了解或者学习人工智能知识的读者,这个教程里内容讲解通俗易懂且风趣幽默,对我帮助很大。我想与大家分享这个宝藏教程,请点击下方链接查看,传送门https://blog.csdn.net/qq_74013365

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 拆解Agent的Harness六层架构:为什么你的大模型总是跑崩
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!