跳过正文
  1. 实战教程/

AI Agent 动不动就翻车?六层 Harness 架构让你告别玄学调参

RekCore
作者
RekCore
用通俗易懂的语言,为你解读 AI 世界正在发生的一切

你有没有遇到过这种情况:花了一周时间调 AI Agent,换了最强的模型、写了上百版 Prompt,demo 演示的时候效果惊艳,但一到真实场景就翻车——有时候聪明绝顶,有时候莫名其妙地跑偏、死循环、甚至胡编乱造。

成功率死活卡在 70% 左右,怎么调都不上去。

问题大概率不在模型,也不在 Prompt。你缺的是一套 Harness。

Agent = Model + Harness
#

先建立一个直觉:模型是大脑,Harness 是让大脑驱动身体稳定工作的神经系统和骨架。

没有 Harness 的 Agent 就像一个天才但没有自律能力的人——偶尔灵光一现,但大多数时候在摸鱼。Harness 的作用就是让这个天才稳定产出,而不是靠运气。

北大博士后卢菁和多个一线工程团队的实践总结出了一套成熟的 Harness 六层架构,下面逐层拆解。

第一层:信息边界 — 给模型一个干净的"工作台"
#

模型在噪音里是没法思考的。你有没有试过往 Prompt 里塞了十几页的规则文档,结果模型反而更蠢了?

Harness 的第一件事就是给信息划边界:

  • 角色隔离:这个 Agent 现在是谁?做什么事?成功标准是什么?
  • 信息分层:哪些是规章制度(不能改),哪些是当前任务(经常变),哪些是中间产物(用完可能要丢)
  • 防止自我污染:模型自己生成的错误推理,如果不清理,会在后续轮次中被当成"事实"继续引用

实际操作中,这意味着你要把上下文分成几个独立区块,而不是把所有东西堆在一起。

第二层:工具系统 — 别让模型被返回结果淹没
#

大模型本质上是个文本预测器,给它接上工具才有手有脚。但这里有个反直觉的陷阱:工具给多了,模型会乱用;工具返回的内容多了,模型会被淹没。

举个例子:你让 Agent 查数据库,SQL 查询返回了 200 行结果。如果你把这 200 行原封不动地丢回给模型,它的注意力会被分散,核心信息反而被淹没。

好的 Harness 会做二次过滤:先把工具返回的结果提炼、摘要,只把模型需要的"干货"喂回去。这就像一个优秀的助理——不是把所有邮件都转发给老板,而是先筛选、归纳,只给老板看真正需要决策的内容。

第三层:执行编排 — 给 Agent 铺一条铁轨
#

没有编排的 Agent 是"想到哪做到哪",有编排的 Agent 是沿着轨道走。

一个靠谱的执行流程应该是:

  1. 理解:先消化任务,确认理解无误
  2. 分析:拆解步骤,制定计划
  3. 执行:按计划逐步操作
  4. 自检:检查结果是否达标

关键在于自检不通过时的处理:不是让模型"再试一次"(它大概率会犯同样的错),而是强制回退到上一个稳定状态,换个策略重新来。

这和传统软件的 try-catch 逻辑一样——不是出了错就重试,而是要有明确的回滚策略。

第四层:记忆与状态 — 让 Agent 不再"失忆"
#

你跟 Agent 说"帮我改一下刚才那段代码",它问你"哪段?"——这就是状态管理缺失的典型症状。

Harness 需要管理三层记忆:

层级内容生命周期
对话状态当前在做什么、用户刚说了什么单次对话
执行结果上一步跑了什么、成功还是失败单次任务
用户偏好这个用户喜欢什么风格、常用什么技术栈跨会话

三层记忆要隔离管理,否则短期的执行噪音会污染长期的用户画像。

第五层:评估与观测 — 别让 Agent 自己给自己打分
#

Agent 有个致命问题:它总是"自我感觉良好"。你让它写代码,它写了,然后告诉你"完成了"——但你跑一下发现根本编译不过。

成熟的 Harness 会引入一个独立的 Evaluator(评估者)。这个评估者不是 Agent 自己,而是另一个独立的模块,甚至可以是另一个 LLM:

  • 代码生成场景:Evaluator 跑一下测试用例,看覆盖率
  • Web 操作场景:让 AI 模拟用户去点击页面、检查结果
  • 内容生成场景:检查事实准确性、格式合规性

核心理念:运动员和裁判不能是同一个人。

第六层:校验与恢复 — 失败不是终点,重头再来才是
#

真实世界里,API 超时、格式错误、网络抖动是常态。Harness 的核心价值在于:失败后不慌,自动恢复。

  • 输出格式不对?自动解析 + 重试
  • API 超时?换一个备用方案
  • 执行到一半崩了?回滚到最后一个检查点,从那里继续

这就像游戏里的自动存档——死了不用从头开始,从上一个存档点继续就好。

硅谷怎么做的?两个典型案例
#

Anthropic:换个"脑子"继续干
#

Anthropic 发现一个很有意思的现象:模型在执行长任务时会出现**“上下文焦虑”**——上下文窗口快满了的时候,模型开始丢细节、急着收尾、草草了事。

他们的解法很激进:Context Reflection。不是在原地压缩上下文,而是直接开一个全新的 Agent 实例,把关键状态交接过去,让新 Agent 在干净的环境里继续工作。

同时他们严格遵守生产与验收分离:Planner(计划者)和 Generator(执行者)负责干活,Evaluator(独立评估者)只盯着环境反馈打分。干活的人和检查的人是分开的。

OpenAI:工程师变成了"环境设计师"
#

OpenAI 的 Agent 团队里,工程师已经不写业务代码了。他们的日常工作变成了三件事:

  1. 把模糊的需求拆解成 AI 能理解的小任务
  2. 当 Agent 失败时,不问"模型哪里不够努力",而是问**“环境里缺了什么结构性能力”**
  3. 把数万字的规则文档做成目录,让 AI 按需查询(类似 Skills 理念),避免一股脑全塞进上下文

这背后的思维转变是:不再优化模型的行为,而是优化模型工作的环境。

你的 Agent 卡在哪一层?
#

最后给一个快速自查清单:

  • 📍 信息混乱 → 第一层(信息边界)没做好
  • 📍 工具调用乱七八糟 → 第二层(工具系统)需要二次过滤
  • 📍 执行没章法 → 第三层(执行编排)缺少流程约束
  • 📍 多轮对话就失忆 → 第四层(记忆与状态)没有隔离管理
  • 📍 自以为做完了其实没做对 → 第五层(评估与观测)缺少独立评估者
  • 📍 一错就崩、从头再来 → 第六层(校验与恢复)缺少容错机制

不要一上来就六层全做。先定位卡在哪一层,单点突破,效果立竿见影。


参考来源:code秘密花园 欢老师分享 —《最近爆火的 Harness Engineering 到底是个啥?》及 AI 工程化相关讲座