2026年7月2日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

给野马套上缰绳:Agent Harness 工程实践 ——从范式理论到钉钉AI招聘的真实落地

发布日期:2026-06-30 09:14:12 浏览次数: 1529
作者:阿里云开发者

微信搜一搜,关注“阿里云开发者”

推荐语

野马不再脱缰:从理论到钉钉AI招聘的实战驯服指南,献给每一位与Agent搏斗的工程师。

核心内容:
1. Agent实战中的典型困境与“虚假胜利”瞬间
2. Harness Engineering(驾驭工程)的核心范式与精神
3. 从范式理论到钉钉AI招聘落地的完整工程实践

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

阿里妹导读


写在前面:这不是一篇"概念科普文"。它是写给所有正在被 Agent 折磨、又离不开 Agent 的开发者——那些一边惊叹于一晚上跑出一个像样的 PR、一边在凌晨三点回滚生产事故的人。

关于引用的一句郑重交代:文中所有第三方数据,已尽量回溯到原始博客或官方文章;个别行业流传的数字,无法核实到一手来源时,已经主动软化或删除,并明确标注。文章的工程判断与实战经验,来自我们团队的真实落地,不依赖任何二手转述。

(文章内容基于作者个人技术实践与独立思考,旨在分享经验,仅代表个人观点。)

一、共鸣时刻:

你是不是也经历过这些瞬间?

↑ 凌晨两点:屏幕上 "ALL TESTS PASSED",红色警告悄悄写着 "3 services deleted"——这就是这两年开发者最熟悉的"虚假胜利"瞬间。野马已经冲出了显示器,而你手里没有缰绳。

凌晨两点,你盯着屏幕。Agent 又一次"自信地"宣布任务完成——测试全绿、CI 全过、PR 描述写得无懈可击。你点开 diff,发现它把一个核心服务"重构"了,顺手删掉了三个它"不理解"的兼容分支。

或者,更扎心的场景:

  • 一个会话里它表现得像高级架构师,下一个会话像刚入职的实习生,因为它压根不记得上次干了什么
  • 你给它配了 20 个 MCP 工具,它开始在工具列表里"逛超市",逛着逛着就忘了正在干嘛。
  • 它陷入死循环,把同一个错误反复"修复"了十几次,每次都换一种"自信"的说法。
  • 你写了一份 800 行的 AGENTS.md 教它做事,它读完前 200 行就开始幻觉。

如果你点头了——欢迎来到 Agent 的"实战时代"。这一年,AI 工程圈终于承认了一件事:

瓶颈不在模型够不够聪明,而在我们有没有把它"装"好。

这就是 Harness Engineering(驾驭工程)——Terraform / HashiCorp 联合创始人、Ghostty 终端作者 Mitchell Hashimoto 在他个人博客《My AI Adoption Journey》中系统阐述的工程范式 [1]。他给这件事的定义朴素到几乎是一句口号:

"anytime you find an agent makes a mistake, you take the time to engineer a solution such that the agent will not make that mistake again in the future."


——每当你发现 Agent 犯了一个错,就花时间工程化一个解,让它将来不再犯同样的错。

这句话本身就是 Harness Engineering 的全部精神:Agent 的每一次失败,都不是模型的问题,而是环境设计的债

二、一个公式,看清楚 Agent 到底是什么

如果你只能记住这篇文章的一句话,请记住这个:

Agent = Model + Harness

这个公式后来被 LangChain 官方在《Improving Deep Agents with Harness Engineering》一文中作为标题级别的论断 [2]:模型负责推理,Harness 负责"剩下的所有事情"——工具系统、上下文管理、权限控制、反馈回路、记忆与协作。

这个公式的颠覆性在于它彻底改变了优化方向。最值得拿出来讲的一手案例,是 LangChain 自己做的实验:

案例
模型是否更换
关键动作
效果
LangChain × Terminal Bench 2.0
未更换
优化 Harness:自我验证 + 追踪 + 文档
排行榜 第 30 → 第 5;得分 52.8 → 66.5
Anthropic / Claude Code
未更换
把 Harness 当产品而非附属
已成为 Anthropic 的重要一级
业内流传的"小团队 × 大代码量"
未更换
主要靠工程化 Harness 提效
数字版本不一,本文不作为确定性引用

表格数据说明:LangChain 一行来自官方博客 [2],一手可查;Anthropic 一行为行业公认事实;"小团队"一行仅作现象记述,未核实到一手来源。

读到这里你应该意识到一件事:过去几年大量精力放在"换更强的模型"上,但真正的杠杆位置一直在模型之外

三、范式的三次跃迁:你站在第几代?

↑ 三代范式的进化路径:从"对马喊话"到"给马看地图",再到"给马造高速公路"——这两年里,AI 工程的关注焦点完成了从「话术」到「环境」的彻底跃迁。

这是 AI 工程范式的进化时间轴,对照一下你团队的水位:

代际
范式
核心问题
形象对比
第一代
Prompt Engineering
怎么把话说清楚
对马喊话的技巧
第二代
Context Engineering
怎么给 AI 喂对信息
给马看的地图
第三代
Harness Engineering
怎么让 Agent 可控地工作
给马造高速公路,配护栏、限速牌、加油站

业内一个常被引用的类比是:模型是 CPU,Harness 是操作系统——CPU 再快,OS 拉胯也白搭。这就是为什么 Anthropic 的 Claude Code 能撑起它商业化的重要一极:本质不是更强的模型,而是更好的 Harness。

一张图看懂 Agent + Harness 五层运行时

把 Prompt、Context、Harness 三代范式落到系统层面,本质是一张"围绕 Model 展开的运行时全景图"。你可以把下面这张图当作后文所有铁律、模式、标杆案例的物理地图——每一条最佳实践,都对应图中的某一个位置。

图中两条线索值得反复回看:

  • 纵向五层:从 User Interaction 到 MCP,是一次用户请求在系统里流过的完整路径。Workspace 以一个横跨能力层与执行层的容器出现,它不是"某一层",而是所有层次共享的状态基座
  • 左侧 HARNESS 竖栏:Context Engineering / Architecture Constraints / Feedback Loop / Entropy Management,是把"野马"变成"可生产系统"的四根护栏,垂直穿透每一层。真正成熟的团队,不是在某一层做得特别花哨,而是四根护栏在五层里都有落点

带着这张图往下读,每一条铁律你都能在上面找到坐标。

四、核心精髓:四条"反直觉"的铁律

↑ 四张卡片就是后文所有工程模式的"DNA":上下文要少、Agent 要专、状态要落盘、约束要可执行。每一条都和工程师的本能反着来——而这正是它们值钱的原因。

读了几十篇文章、踩了三个月坑之后,我把 Harness 的精髓提炼为四条反直觉的铁律。之所以"反直觉",是因为它们都和工程师的本能背道而驰。

先用一张表看全貌,再逐条展开:

铁律
本能反应
Harness 真相
信息越多决策越准
上下文越少越好,稀缺资源要精挑
一个超级 Agent 全包
专才 Agent 永远赢过通才 Agent
让 Agent "记住"任务进展
状态要写文件,不要塞上下文
把规则写进 AGENTS.md 读给它
能写成 Linter 的约束,别停留在文档

铁律一:上下文越少越好(不是越多越好)

工程师本能:信息越多决策越准。
Harness 真相:**上下文是稀缺资源,会被污染、会相互干扰、会让模型"逛超市"**。

业内多个团队的实测都指向同一个方向:长上下文窗口在实际使用比例超过一定阈值之后,模型的准确率会显著下降——具体阈值因模型、任务、Prompt 结构差异很大,并不存在一个放之四海皆准的"百分比"。

启示:不要把"模型支持 200K"当成"可以塞 200K"。给 Agent 的上下文,必须像 Code Review 一样精挑细选。

铁律二:专才 Agent 永远赢过通才 Agent

工程师本能:"我做一个超级 Agent,什么都会,不就搞定了?"
Harness 真相:通才 Agent 在工具列表里"逛超市",永远跑不过一组职责清晰的专才。

LangChain 在 Terminal Bench 实验里给了一条非常具体的经验:把任务拆给专门的 Sub-Agent,并为每个 Sub-Agent 只装载它真正需要的工具,是排名从第 30 冲进第 5 的关键改动之一 [2]。

启示:Agent 是昂贵的,Skill 是廉价的 [3]——能用 Skill 解决的就别新增 Agent。

铁律三:状态要写文件,不要塞上下文

工程师本能:让 Agent "记住"任务进展。
Harness 真相:上下文是易失存储,文件系统才是持久内存

成熟的 Agent 系统遵循一个简单原则:Workspace 是真相,Context Window 只是当前工位。任务中间结果、Agent 间协作、跨会话延续、审计回放,全部走文件系统。

启示:把 Workspace 当成"Agent 的 Git 仓库"——每一步操作都可回放、可审计、可断点续传。

铁律四:能写成 Linter 的约束,别写成文档

工程师本能:把规则写进 AGENTS.md 让 Agent 自己读。
Harness 真相:**文档只是"建议",Linter / CI 才是"强制"**。

Mitchell Hashimoto 在他自己的 Ghostty 项目里就给了一个非常硬核的实践:AGENTS.md 里每一条规则,背后都对应一个真实失败案例;而能写成静态检查 / CI 拦截的规则,绝不让它停留在自然语言里——因为自然语言可以被模型"创造性解读",代码不能 [1]。

启示:把规则编码为机器可执行的约束,比"再写一段更详细的 Prompt"更可靠十倍。

五、Context Engineering 的"工程化":

从"喂信息"到"控信号"

Harness Engineering 不是 Context Engineering 的对立面,而是它的工业化升级。同样是"给模型对的信息",工程化版本要做四件事:

工程化动作
具体要求
结构化
让上下文有 schema(任务类型、阶段、当前焦点),而不是塞一大段自由文本
分段化
按"系统约束 / 任务定义 / 当前状态 / 工具签名 / 历史摘要"分槽位写
可回放
每一次上下文构造都可重放、可 diff —— 这是 Bug 复现的基础
可审计
保留"为什么这一条信息出现在 Agent 面前"的来源链,便于追责和调优

一旦上下文变成可审计的"输入信号",你就从"调 Prompt 的玄学"进入了"调系统的工程"——这是 Harness 工程师和 Prompt 工程师最大的分水岭。

六、六大工程模式:

Harness Engineering 的"设计模式手册"

如果说前面的铁律是"心法",下面六个就是"招式"。它们都已经被多家团队在生产环境验证过,可以直接抄。先给一张索引表,每一行对应下面的一个小节:

模式编号
模式名
解决的核心问题
1
双阶段架构(Init + Exec)
跨会话延续、不依赖单次 Context Window
2
工具签名即文档
Agent 选错工具
3
Sub-Agent 隔离
上下文污染 & 工具选择空间爆炸
4
上下游反压
无限循环、错误无法自我修复
5
智能体审智能体
自我合理化、偏见无法被同一 Context 识别
6
熵管理与文档园丁
代码库与文档随时间腐化

模式 1:双阶段架构(Initializer + Executor)

Anthropic 在 Claude Code 的实践中给出了一个被广泛复用的模板:把任务拆成两段——

Initializer Agent:理解任务 → 制定计划 → 写入 plan.md → 退出                                        ↓Executor Agent   :读取 plan.md → 按步执行 → 跨 Context Window 接力

两个 Agent 不共享 Context Window,只通过 Workspace 里的 plan.md 接力。这样做的好处:任务可以跨多次会话延续,不依赖任何一个会话的记忆。

模式 2:工具签名即文档

(Tool-Signature-as-Doc)

Agent 选错工具的最大原因,不是工具太多,而是工具签名写得像一坨胶水。成熟团队的做法:

  • 工具名是动词短语,一眼能读懂:"query_calendar" 而不是 "tool_03"。
  • 参数 schema 里每个字段都带 description,且描述里说清"什么时候用、什么时候别用"。
  • 返回值结构稳定,Agent 不需要每次猜格式。

LangChain 在 Terminal Bench 实验里专门提到:仅仅改善工具描述与返回结构,就能带来可观的准确率提升 [2]。

模式 3:Sub-Agent 隔离

(Context-Isolated Sub-Agent)

复杂任务交给 Sub-Agent,**但关键不是"拆",是"隔离"**:

  • 每个 Sub-Agent 有独立 Context Window,不污染主上下文。
  • 每个 Sub-Agent 只看到自己需要的工具,看不到全集。
  • 主 Agent 只接收 Sub-Agent 的结构化输出,不接收它的中间思考。

模式 4:上下游反压

(Upstream-Downstream Backpressure)

防止 Agent 陷入无限循环的工程范式:

上游:给确定性设置 + 一致上下文   │   ▼Agent 执行   │   ▼下游:测试 / 类型检查 / Lint / CI 拒绝无效工作   │   ▼错误信号回传 → 上游调整

关键细节:Linter 的错误信息本身就是上下文工程。它不只说"违反规则 X",而是解释"为什么这个规则存在、正确做法是什么"——这样 Agent 读到错误后就能自我修正,不需要人类介入。

模式 5:智能体审智能体

(Agent-Audits-Agent)

人类做不动 Code Review 的时候,让另一个 Agent 来做。但关键是换 Context

  • Reviewer Sub-Agent 只看 git diff + docs/rules/*.md
  • 角色设定为"怀疑态度的 Senior Reviewer"。
  • 它对 Main Agent 的产出一无所知,所以不会被"自我合理化"污染。

经验之谈:失效的从来不是"换一个模型再评估",而是"用同样的 Context 再评估一次"——后者只会复现同一个偏见。

模式 6:熵管理与文档园丁

代码库的熵会随着时间增长——Agent 比人类增长得更快,因为它擅长"模式复制",会忠实地复制并放大坏模式。解法:

  • 部署一个**后台 Agent 做"文档园丁"**,定期扫描过期文档、检测架构漂移、提交清理 PR。
  • 持续小额偿还技术债,不要攒到爆雷。
  • 把"垃圾回收"做成定时任务,而不是项目结束的善后。

七、实战案例:悟空 AI 招聘 Agent —— 

一个"专才赢通才"的真实样本

AI钉钉1.1新品发布会

数据声明:以下所有数字(准确率、上下文消耗、工具数量等)均来自我们团队在内部环境下的实测,仅代表本场景。不同业务、不同模型、不同流量下数字会有显著差异。我们公开这些数字不是为了树立基准,而是为了让你看清"专才架构"和"全能 Agent"在同一组评测下的相对差距。

理论铁律说了一大堆,接下来上一个正在生产环境跑的真实案例。这是我们团队在钉钉企业级 Agent「悟空」上落地的 AI 招聘 Agent 系统——它每天处理上千份简历、自动约面试、跟踪候选人状态,已经稳定运行数月。

更重要的是:它一开始差点被我们做废。第一版我们犯了所有新手都会犯的错——造了一个"全能招聘 Agent"。下面这段经历,应该能让你少踩三个月坑。

7.1 直觉反应 :先造一个"全能招聘 Agent"

立项第一周,团队的第一反应非常自然:

"招聘流程不就那几步吗?投递、筛选、面试、Offer——我做一个超级招聘 Agent,全包了不就行了?"

于是我们写了这样一份 System Prompt:

#  第一版:全能招聘 Agentrecruit_agent = Agent(    system_prompt="""你是一个全能招聘助手,你会:- 从 xxx 系统抓取简历- OSS解析 PDF / Word 简历,提取教育背景、工作经历、技能- 做人岗匹配评分(JD vs 简历)- 在xx里和候选人聊天、要简历、约面试- 调用日历查面试官闲忙、订会议室- 给 HR 发提醒、生成日报- 跟踪候选人状态、超时预警- 触发 RPA 在招聘工作台做批量操作- 给候选人发预约AI面试... (Prompt 写了 600+ 行)""",    tools=[        fetch_resume, parse_pdf, parse_docx, score_match,        send_dingtalk_msg, query_calendar, book_room,        create_todo, send_email, trigger_rpa,        upload_file, download_file, query_db,        ...   # 一共 13 个工具    ])

跑了一周,问题全冒出来了:

招聘工作台 RPA 跑到一半,Agent "顺手"去回复了候选人聊天 → 上下文炸了10+ 个工具里挑错工具的概率显著偏高(明明该调 query_calendar,调成了 query_db) Prompt 600 行写到第 400 行,模型已经忘了开头说"不要主动发 Offer"一个会话里干完简历筛选,下一个会话完全不记得这个候选人——状态全在上下文里出错时根本不知道哪一环错了,回滚一次要查 2 小时日志

把第一版的"病灶"画出来,长这样:

用户:帮我处理今天投递的简历,匹配后约面试全能招聘 Agent 的上下文:┌──────────────────────────────────────────┐│ system prompt: 你会简历解析、人岗匹配、    ││ 聊天回复、约面试、查日历、订会议室、       ││ 发邮件、触发 RPA、生成日报…              │ ← 600+ 行│                                          ││ 当前任务: 处理今天的简历                  ││ 历史记录: 上午聊了 5 个候选人 + RPA 日志 │ ← 乱成一锅粥│ 工具列表: 38 个工具                       │ ← 注意力被稀释└──────────────────────────────────────────┘                  ↓           模型在"逛超市"                  ↓       准确率达不到上线门槛,错误难复现

——这正是铁律二(专才 > 通才)铁律一(上下文越少越好)的双重违反现场。

↑ 一张图说清楚我们踩过的最大的坑:左边是想用一个机器人扛下 38 个工具的"全能 Agent"(结果在工具堆里逛超市);右边是悟空作为 Orchestrator 协调 2 个专才 Agent + 多个 Skill 的真实架构。同一份生产数据上,前者一直卡在上线门槛之下,后者拉开了显著差距。

7.2 第二版:拆成"2 Agent + N Skill"的专才架构

把全能 Agent 推倒,按"Agent 是昂贵的、Skill 是廉价的"[3]这条经验法则重新设计——结果是一个 2 个 Agent + 多个 Skill 的极简架构:

                  ┌────────────────────────────────────────┐                  │       悟空(DingTalk 企业级 Agent)       │                  │  ─────  Orchestrator / 上下文调度  ────  │                  │  · 拆任务  · 分发  · 维护 Workspace      │                  │  · 跨会话记忆(候选人状态写文件)          │                  └────┬─────────────────────────────┬─────┘                       │                             │        ┌──────────────▼──────────────┐ ┌────────────▼─────────────┐        │   人岗匹配 Agent(RPA 专才)  │ │  招聘沟通 Agent(聊天专才)│        │                              │ │                          │        │  职责:                       │ │  职责:                  │        │  · 招聘工作台 RPA 操作        │ │  · 监听候选人聊天     │        │  · JD ↔ 简历 语义匹配评分    │ │  · 自动对话要简历         │        │  · 批量打分 / 排序 / 标记    │ │  · 协商面试时间          │        │                              │ │  · 触发约面 / 改期        │        │  Prompt: 80 行(聚焦)       │ │  Prompt: 90 行(聚焦)   │        │  Tools: 4 个                 │ │  Tools: 5 个             │        └──────────────┬───────────────┘ └────────────┬─────────────┘                       │                              │                       └──────────────┬───────────────┘                                      │                                      ▼                ┌─────────────────────────────────────────┐                │           N 个原子化 Skill              │                │  parse_resume / score_match /           │                │  query_calendar / book_room /           │                │  send_dingtalk / extract_field /        │                │  upload_file / download_file /          │                │  query_ats / write_todo / ...           │                │  (每个 Skill = 一个函数 + 明确签名)     │                └──────────────────┬──────────────────────┘                                   │                                   ▼                ┌─────────────────────────────────────────┐                │       Workspace(真相之源)              │                │  /candidates/{id}/state.json           │                │  /candidates/{id}/chat_history.log     │                │  /jobs/{id}/jd.md                      │                │  /rpa_lock/{batch_id}.json             │                └─────────────────────────────────────────┘

7.3 五条工程铁律是怎么逐条落到这个系统上的

新架构不是"拍脑袋",每一条选择都对应前面的一条铁律:

Harness 铁律
在悟空 AI 招聘里的落点
铁律一 · 上下文越少越好
每个 Agent 的 Prompt 严格控制在 100 行内;只携带当前候选人的状态摘要,不携带历史聊天全文
铁律二 · 专才 > 通才
强行只允许 2 个 Agent:人岗匹配(同步 / 批量 / 确定性)+ 招聘沟通(异步 / 单点 / 对话式);剩下全部下沉为 Skill
铁律三 · 状态写文件
候选人状态、RPA 进度、聊天历史、面试约定全部写 Workspace,跨会话靠文件而不是上下文延续
铁律四 · 约束可执行
招聘合规规则(如"不许主动发 Offer"、"超时 72h 必须提醒 HR")写成 Linter,工具调用前先校验,不靠 Prompt 自觉
加分项 · 熵管理
后台一个"文档园丁"Skill 每天扫描招聘 JD 库,过期 JD 自动归档,避免 Agent 拿过期 JD 做匹配
加分项 · 失败回放
任何 Agent 失败 → 写入 workspace/failures.jsonl,第二天后台 Agent 自动分析并提 Linter PR

最关键的一点:悟空不直接调 n 个工具。它只调"派单"这一个动作——把任务连同精挑过的 3-5 个工具派给专才 Agent。这就把"50 选 1"的选择题,拆成了三道"5 选 1"。

7.4 改造前后的对比:四个维度全胜

下表所有相对评价都是本场景实测,仅作"改造前 vs 改造后"的相对参考,不代表行业基准。

维度
全能 Agent
专才架构
工具选择
n 工具混选,错率明显偏高
每 Agent 只看 4-5 工具,错率显著下降
端到端准确率
达不到上线门槛
稳定超过上线门槛,可生产运行
可调试性
"不知道哪步错了",回滚要查数小时日志
日志按 Agent 分桶,分钟级定位
可复用性
换场景就废
人岗匹配 Agent 已复用到内推系统;招聘沟通 Agent 已复用到候选人回访
上下文消耗
数量级偏高,长期接近模型上限
显著下降,长期处于安全区(Smart Zone:不接近模型上限)
新增需求成本
改 Prompt + 加工具,每次回归 2-3 天
新增 1 个 Skill 即可,半天上线

7.5 三条"血泪经验"

这套系统跑了数月,沉淀出三条最值得分享的经验。它们都不是"理论推导",而是踩坑换来的:

经验一:Agent 数量不要超过 3 个,Skill 可以无限加。

我们曾经一度想拆出"日报 Agent"、"简历库 Agent"、"Offer Agent"、"超时预警 Agent"——堆到第 6 个 Agent 时发现,编排层(悟空)开始"选错 Agent"了,错误率明显回升。Agent 数量本身也是上下文成本。后来我们把后面几个全部下沉为 Skill,问题立刻消失。

一个能跑的招聘系统:2 个 Agent + 一组 Skill——远比"多 Agent + 少 Skill"稳。

经验二:RPA + Agent 的接缝处最容易出事,要做"事务边界"。

人岗匹配 Agent 在招聘工作台里做 RPA 操作时,最早会出现"做到一半上下文被打断、状态对不上"的事故。后来我们引入强制性的事务文件

RPA 开始    → 写 workspace/rpa_lock/{batch_id}.json (state: running)每完成一条  → 追加进度RPA 结束    → 标记 state: done
任何中断    → 下次启动时读 lock 文件,从断点续传,绝不重头跑

这条经验直接对应铁律三——状态写文件,不在脑子里

经验三:聊天 Agent 必须接"硬护栏",因为它对外说话。

招聘沟通 Agent 是唯一一个"会主动给真人发消息"的 Agent——这就意味着它的错误是对外暴露的。我们给它套了三层硬护栏:

层级
护栏机制
作用
第 1 层
白名单工具
只能调 send_dingtalk_text / send_dingtalk_template,禁用撤回 / 群发
第 2 层
Linter 拦截
所有外发消息先过敏感词 / 合规规则 Linter,过不了直接拒绝调用
第 3 层
第二个 Agent 审稿
Reviewer 用独立 Context 判断:"是否冒犯候选人 / 暴露薪资 / 暗示录用?"

这三层一摞上,**对外消息的事故率从"每周一两次"降到了"我们已经记不清上一次是什么时候了"**。

八、行业标杆地图:他们是怎么做的?

下面这张表,把当下被广泛讨论的几家代表团队,按"最有辨识度的 Harness 选择"做了一次对位——不是排名,而是"四根护栏在五层里的落点不一样"。

团队 / 产品
最有辨识度的 Harness 选择
启示
Anthropic / Claude Code
Initializer + Executor 双阶段,Workspace 作为持久层
跨会话延续 = 真生产力,不是花活
LangChain / Deep Agents [2]
自我验证 + 追踪 + 工具签名优化,不换模型冲进 Top 5
Harness 的回报曲线,比换模型陡得多
Mitchell Hashimoto / Ghostty [1]
AGENTS.md
 作为"项目宪法",每条规则对应一个真实失败
文档不只是写给人看的,是写给 Agent 读的;能机器化就别留在自然语言
Cursor / Cline
内置反馈回路(Linter / Type Check / Test)自动闭环
反馈回路本身就是上下文,错误信息要写给 Agent 看
悟空 AI 招聘(本文案例)
2 Agent + N Skill + Workspace 状态文件 + Linter 硬护栏
企业级场景,"对外说话"和"动用户数据"必须有硬护栏

把这张表当作一面镜子:你团队最缺的,往往是表里某一格里的能力——是缺 Workspace?缺反馈回路?还是 AGENTS.md 还是一篇散文?

九、未来:Agent 工程将走向哪里?

下面是基于当前趋势的一组判断,不是预言。每一条都标注了可证伪条件——这是资深工程判断和"预言式断言"的分水岭。

趋势一:从"Prompt 工程师"到"Agent 工程师"

招聘市场上,Prompt 工程师的岗位正在快速被"Agent 工程师 / Harness 工程师 / AI 系统工程师"这类岗位取代。区别在于:

  • Prompt 工程师卷的是话术,可被替代性强。
  • Harness 工程师卷的是系统——上下文设计、工具签名、反馈回路、状态管理——这些就是软件工程的核心能力。

可证伪条件:如果 12 个月内,Prompt 工程师岗位数量重新增长且薪资中位数显著回升,则本判断需要修正。

趋势二:从"工具调用"到"Agent 协作协议"

MCP(Model Context Protocol)的崛起,意味着 Agent 与外部世界的接口正在被标准化。下一步:Agent 之间的协作协议——A2A(Agent-to-Agent)。一旦 A2A 标准化,"多 Agent 系统"就会像"微服务"一样工业化。

可证伪条件:如果两年内没有任何被主流 SDK 采用的 A2A 草案,则该趋势节奏需要延后。

趋势三:从"单 Agent 完成任务"到"Agent 操作系统"

↑ Agent 系统正在长成一台"新的计算机":Shell 是用户交互,Scheduler 是编排层,System Calls 是 Skill 能力。

一句值得反复咀嚼的判断:

Agent 系统是一种新的计算操作系统。用户交互层是它的 Shell,编排层是它的 Scheduler,能力层是它的系统调用,Workspace 是它的文件系统,MCP 是它的设备驱动。

未来三五年,竞争的焦点会从"我的 Agent 多智能"变成"我的 Agent OS 多稳"。这才是真正的护城河。

趋势四:模型与 Harness 的"接口标准化"

随着 Agent 工程进入工业化阶段,模型与 Harness 的接口也会被标准化——比如"工具 Schema 标准"、"上下文交换格式"、"Sub-Agent 调用协议"。未来你换模型可能像换数据库引擎一样简单——前提是你的 Harness 写得足够干净。

十、心法收尾:

六句话送给所有 Agent 工程师

如果你只有 30 秒能记住这篇文章,记住这六句:

序号
心法
一句话注解
1
你优化的不是 Agent,是 Agent 的工作环境
把它当作员工,而不是工具
2
上下文是稀缺资源,不是无限仓库
少即是多,干净比丰富更重要
3
状态写在文件里,不在脑子里
Context 是工位,Workspace 才是档案
4
能写成 Linter 的约束,别写成文档
机器能强制的,永远比人能记住的可靠
5
Agent 是昂贵的,Skill 是廉价的,[3] 护栏是最便宜的
能用 Skill 解决就别加 Agent,能用 Linter 拦下就别靠 Prompt
6
对外说话和动用户数据的地方,硬护栏要早一步到位
Prompt 可以漏,模型可以错,但合规底线不能 (来自悟空 AI 招聘实战)

十一、写在最后

这两年,AI 圈最大的认知转变是:我们终于承认,模型不是孙悟空,Agent 系统才是

孙悟空再厉害,没有金箍棒、没有筋斗云、没有紧箍咒、没有取经路线图,他就是一只猴子。

模型再聪明,没有合适的 Harness——它就是一匹脱缰的野马,能跑也能毁。

过去几年,行业花了大量精力训练"更聪明的模型"。

现在,真正拉开差距的——是谁的缰绳更顺手、马鞍更舒服、护栏更结实

模型还在进步,但单靠等待更强的模型已经不够了。工程能力的差距,正在成为新的分水岭。真正的护城河,是你为这匹野马造的那条高速公路——它决定了你能跑多远、多稳、多快。

Harness Engineering,是 AI 时代软件工程的重新发明。而每一个写过代码、调过 Bug、做过 Code Review 的工程师,都拥有这场革命中最稀缺的资产:对"系统应该如何运转"的直觉

别再羡慕那些"小团队产出大代码量"的故事了。
他们做对的事,你也能做。 区别只是——你今晚回去,会不会先写第一个 Linter。

参考资料与诚实声明

本文在引用上做了两件事:

  1. 能溯源到一手英文资料的论断,明确标注来源链接;
  2. 行业广泛流传但一手出处尚未核实清楚的数据(如"小团队 / 数月 / 百万行代码 / 0 手写"等类似数字),文中已主动软化或明确加注"原始报告链接尚待核实",不作为确定性事实使用。

读者如果发现任何遗漏或更准确的一手出处,欢迎指正。

引用列表

编号
来源
说明
[1]

https://finance.sina.cn/2026-04-14/detail-inhumfsm9224998.d.html?spm=ata.21736010.0.0.507c7536Vs3dyq

Mitchell Hashimoto 个人博客《My AI Adoption Journey》提出 "Engineer the Harness" 概念的中文转述与英文原文摘录
[2]

https://www.langchain.com/blog/improving-deep-agents-with-harness-engineering?spm=ata.21736010.0.0.507c7536Vs3dyq

一手来源;LangChain Deep Agents 在 Terminal Bench 2.0 上通过仅优化 Harness 实现的排名提升(30 → 5,52.8 → 66.5)
[3]

https://hugozhu.site/post/2026/143-enterprise-agent-runtime-five-layer-architecture/?spm=ata.21736010.0.0.507c7536Vs3dyq#gsc.tab=0

来自一位专家博客

未在本文中引用、但读者可自行检索的相关原始资料方向

  • Mitchell Hashimoto 个人网站(mitchellh.com)的博客原文
  • Anthropic 关于 Claude Code 的官方技术文章
  • OpenAI 工程团队关于内部 Agent 实践的公开发言

千问云-Agent而生,驱动AI生产力
扫描下方二维码,直达千问云体验

点击阅读原文即可体验!

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅