LLM进化论:Agent = Model + Harness
2026/8/14 9:35:10 网站建设 项目流程

LLM : 当“大脑”有了“肉身”

如果把大语言模型比作一颗泡在罐子里的大脑——它能思考、能推理、能生成代码——但你让它凌晨三点去修一个挂掉的CI任务,它做不到。

不是它不够聪明,是它没有“肉身”。

Harness,就是给这颗大脑装上肉身的那套系统。

一、Harness 和 Agent:到底什么关系?

先给结论:Agent = Model + Harness

这个公式意味着什么?模型是“大脑”,Harness是“身体、手脚和工具”。没有Harness,模型只能思考,无法行动。

更精确地说,Agent由三层构成:

层级是什么负责什么
Model(模型)裸的大语言模型(GPT、Claude、DeepSeek等)推理、决策、生成
Scaffold(脚手架)模型“看到”的一切:系统提示词、工具描述、输出格式定义行为边界和身份
Harness(线束)驱动模型运行的执行层调用模型、执行工具、判断停止、处理错误

💡 日常讨论中,人们常把 Scaffold 和 Harness 打包统称为 Harness。重点不是咬文嚼字,而是理解:模型只是Agent的一部分

同一个模型,被不同的Harness包起来,体验可以完全不同。反过来,同一个Harness换个更强的模型,体验也会提升。

这也是为什么黄仁勋会说:“未来的公司会把越来越多能力建在Harness上。”

二、为什么要有 Harness?——裸模型的三道坎

一个“裸模型”在生产环境里根本跑不起来。原因有三:

1. 没有记忆——操作者一关标签页,记忆全没。一个真正的工程任务跨好几天,没有任何一次LLM调用能hold住这个状态。

2. 不会反应——外部世界变了,它不知道。reviewer下午四点发了条评论、CI被搞挂了,Agent必须被事件唤醒,而不是傻等。

3. 不会自救——Agent push了一个commit,CI炸了;或者session中途过期,整条pipeline静默死亡。

解决这些问题的,全是Harness的工程活儿

三、Harness 和 Agent Framework 的区别:别搞混了

很多人把Harness和Agent Framework混为一谈,它们是不同层面的概念

Agent Framework(框架)Harness(线束)
解决什么问题“如何开发一个Agent”“如何让一个Agent长期可靠地运行”
类比招聘手册——教你怎么创建员工企业管理系统——安排任务、提供工具、监督执行、保存经验
状态需要开发者组装开箱即用,人类只需提供目标

Framework像是“工具箱”,Harness则是“操作系统”——Agent时代,大模型好比芯片,Harness就是那个操作系统。

四、Harness 到底长什么样?——三层架构拆解

一个完整的Harness通常包含三层:

第一层:执行能力层(Action Layer)——给模型“手脚”

为模型提供行动能力:文件系统操作(增删读写)、操作系统访问(执行命令)、代码解释器(运行Python/Node.js)。

⚠️ 关键陷阱:工具配置必须与Agent角色绑定——代码审查Agent只能配置只读工具,不能拥有删除权限。

第二层:上下文环境层(Context Layer)——给模型“记忆”

管理模型工作时的上下文和状态:

  • KV Cache:模型推理的缓存状态
  • Memory:长期存储用户偏好、历史经验
  • 上下文卸载:窗口满时写入文档,供后续加载

第三层:治理编排层(Orchestration Layer)——多Agent的“指挥官”

多Agent协同时的组织问题:

  • 任务如何分配?写代码的和测试的怎么协作?
  • 哪些模块可以并行?
  • 权限如何治理?测试Agent能不能直接改代码?

五、四种 Harness 架构:同一个任务,四种玩法

同一个LLM、同一个任务,不同架构的Harness可能让成功率相差3到5倍

以“重构用户服务,将单体拆分为三个独立服务”为例:

架构类型怎么玩结果
循环驱动型(Loop)Agent进入ReAct循环,边想边做,30轮后上下文爆炸关键约束被淹没,直接改了接口签名,下游全挂
图执行型(Graph)任务拆成8个节点,每个节点保存检查点第5个节点失败,从检查点恢复,无需重来
微内核型(Microkernel)控制平面监控token、轮次,超预算时暂停等人工审核成本可控,有人把关
多Agent型(MultiAgent)4个专业Agent并行执行总耗时不到单Agent的1/3

💡 目前主流Harness收敛为两大家族:

  • 家族A(循环+Harness):控制流交给模型,工程做厚“壳”——代表:Claude Code、Codex CLI
  • 家族B(图运行时):控制流写进代码,建模为显式图——代表:LangGraph、Microsoft Agent Framework

一个能“自己干活”的Harness长什么样?

案例1:生产环境跑了好几个月的多Agent管线

一个真实团队在Claude Code上面搭了一套Harness,已经连续运转了几个月:

  • 起点:一个Slack频道每周收约30张工单,每张都需要排查并在五个仓库之一改代码
  • Harness三层职责
    1. Investigate(排查)——新工单出现,跨仓库收集上下文,贴结构化分析
    2. Fix(修)——操作者批准后开MR,回reviewer评论,盯CI,CI挂了就修
    3. Self-improve(自我进化)——每个关闭的case都被复盘总结
  • 实际效果:能在凌晨回Slack、自己修挂掉的CI、记住reviewer的评论

案例2:WorkBuddy——基于国产模型的可用Agent产品

WorkBuddy的Harness工程重点围绕:

  • Context Engineering:如何选择和组织上下文
  • Harness Engineering:前馈、反馈、权限、验证、编排、可观测性
  • 结果:让Agent不只是能执行任务,而是更稳定、更可控地完成任务

案例3:金融研发的Harness Engineering体系

腾讯云在金融研发中构建了三层递进的AI Coding工程体系:

  • Harness层(系统层):负责控制流、约束与反馈
  • 核心动作:建设反馈回路
  • 目标:解决大模型“不可靠/不可控”问题

关键数据:同一个模型在不同Harness配置下,任务完成率最多可以相差27.4个百分点。不换模型,只调整外围执行框架,结果就能差出近三成。

七、怎么从零开始落地Harness?

Step 1:先搭最小可用循环

一个Harness最核心的就是一个while循环:

whilenotdone:prompt=组装提示(系统提示+工具列表+历史+当前任务)response=调用LLM(prompt)ifresponse包含工具调用:result=执行工具(response.tool_call)把result塞回上下文else:输出最终答案 done=True

这就是最简Harness的核心——调用模型 → 执行工具 → 观察结果 → 继续或停止

Step 2:逐步加厚Harness

从最简循环开始,逐步叠加:

  • 会话持久化:让Agent跨会话记住东西
  • 权限与审批:敏感操作需要人工确认
  • 钩子(Hook):任务完成后的自动处理
  • 子Agent:复杂任务分拆
  • 可观测性:每一步都有日志可追溯

Step 3:用工程文档“锁住”行为

企业内部落地Harness时,通过AGENTS.md、ARCHITECTURE.md等规范文档管控编码Agent:

  • AGENTS.md:Agent唯一可信行为总纲——产品目标、目录结构、完成标准
  • ARCHITECTURE.md:系统架构骨架
  • 效果:Agent不会随意变更技术栈,所有开发动作留有文档记录

结语:模型决定上限,Harness决定你能拿到多少

2026年,Agent工程的重心已经从“框架”转移到了“Harness(执行壳)”

模型决定上限,Harness决定你能拿到上限的百分之多少

大模型已经够强了,可以参与研发交付。但没有Harness,它充其量是个高级玩具;有了Harness,它才能成为研发链路中可靠的协作者。

程序员的核心价值正在迁移:从“亲手写出每一行代码”,转向“定义目标、卡住边界、掌控节奏、验收结果”

而这套转变的前提,就是先建好Harness。

💡 动手时间

如果你心动了,建议马上做这三件事:

  1. 手写一个最简Agent循环——不用任何框架,就一个while循环 + 模型API调用
  2. 给你的Agent加一个工具——比如读写文件、执行命令,感受“模型+工具”的威力
  3. 记录每一次失败——思考怎么通过Harness的“重试+校验+恢复”机制来提高成功率

Harness不是技术债,是你未来AI应用的护城河。


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询