2023年,我们用大模型的方式很简单:问一个问题,得到一个回答。
比如你让程序员写个Python排序函数,模型几乎秒回,不需要“思考”。
那时候的模型就是光秃秃的LLM,没有今天这些花里胡哨的东西——工具、记忆、技能,等等。
但到了2026年,这些附加组件已经成了标配。正是它们,让一个简单的LLM变成了一个AI智能体。
一边是模型竞赛,一边是用户的野心
2023、2024年,大家比的是模型。OpenAI有最强的通用模型,Anthropic有最强的编程模型。各家拼命刷榜,MMLU、SWE-bench,谁分高谁牛。
后来模型竞赛饱和了,开始出现“推理”“上下文”这些词。你在聊天界面里问个问题,会看到“思考中……”的提示。人们开始好奇:它到底在底下干什么?
智能体的竞赛,开始了。
与此同时,用户的野心也大了。
以前我们问问题,后来我们直接派任务。任务需要智能体自己定目标、用浏览器等外部工具、从记忆里翻出过去的对话和事实,才能回答你。
我还记得,我截了一张亚马逊首页的图,扔给一个编程模型,让它“照着这个截图建一个网站”。它确实做出了一个类似的界面。但你想想,如果一个用户想要的是UI、后端、基础设施,全部一次性搞定呢?
这就是2026年的现状。
现在我会直接说:“解决GitHub上第122号issue里的bug。”就这么一句话,背后藏着一堆步骤。2023年的LLM只会说:“抱歉,我访问不了你的GitHub仓库。”
但一个装了好的Agent Harness的LLM,会进入“思考”模式。它会走这样的流程:
推理 → 规划 → 选择工具/动作 → 执行工具 → 观察结果 → 重复或停止。
所以,Agent Harness到底是什么?
既然我们给LLM包了这么多东西——上下文、工具、记忆——那就需要一种高效的方式来“工程化”它们和LLM之间的交互。这个就叫Agent Harness。
正式的定义是:
Agent Harness是包裹、控制、测试、监控和评估AI智能体的基础设施层。
说人话:它就是LLM外面的那层“操作系统”。
作为基础设施层,Harness包括:智能体架构、编排多个子智能体的编排框架、评估智能体输出的评估系统、运行时基础设施、安全、治理,以及最后但同样重要的——可观测性。
为什么需要Agent Harness?
因为我们给AI智能体定的目标越来越大,它执行任务的时间也越来越长。
Anthropic的数据显示,智能体的执行时间在指数级增长。2025年,一个任务大概跑一个小时。现在,已经逼近12小时。
这种长时任务会带来一堆问题:可能无限循环、幻觉出根本不存在的工具、破坏智能体状态、超出token预算、丢失上下文、反复重试错误动作、静默失败、滥用权限,甚至忘记目标。
这些都是很贵的问题。
想象一个AI智能体陷入无限循环12小时。token消耗和算力消耗会巨大。我们可以在Harness里给每个任务设预算——时间预算、token预算、算力预算,来解决这个问题。
更严重的是安全问题。想象LLM选了一个破坏性的工具,比如删掉文件系统里所有文件。通过Harness,我们可以精细控制LLM能访问什么。
一句话:Harness让你能控制智能体,从而让你相信它在做你想让它做的事。
Agent Harness的组件
不管你怎么叫它,Harness都逃不出下面这些组件。
智能体状态
回答“我现在在哪?”——跟踪当前任务、步骤、观察、决策等。比如计划有4步,状态记录哪些完成了、当前在哪、还剩什么。
工具
回答“我能做什么?”——给智能体代码执行、浏览器、API、数据库、shell等能力。工具是最明显的组件。对编程智能体来说,read_file可能就是基础工具之一。
规划
回答“我该做什么?”——决定下一步是什么,创建或修改计划。编程任务里,规划组件可能列出4-5步,按顺序完成。
记忆
回答“我知道/记得什么?”——跨步骤或跨会话存储和检索信息。从向量数据库里取信息放进上下文时,可能值得先摘要一下,优化上下文和工作记忆。这些都由记忆组件管理。
编排
回答“我怎么执行这个过程?”——控制执行循环、工具调用、重试、子智能体、并行、交接等。比如一个购买任务,可以调支付子智能体,同时让库存智能体并行更新库存;或者库存智能体必须等支付成功后才按顺序执行。
上下文管理
回答“LLM现在该看到什么?”——决定每一步把什么信息放进LLM的上下文窗口。
安全与治理
回答“我允许做什么?”——权限、沙箱、审批门、策略、限制、认证等。就算模型有杀手级工具,它能走多远?比如编程任务里,允许模型编辑文件,但不允许它删掉文件系统里的所有文件。
可观测性与评估
回答“它真的成功了吗?”——追踪发生了什么,衡量智能体成功、失败还是违规。比如模型完成任务用了10个工具里的3个,值得追踪这些工具怎么用的。如果失败了,是因为模型工具不够,还是上下文缺了数据?
Harness工程,就是设计、实现、执行这些组件,让智能体表现最佳的新学科。
一个实际的编程智能体例子
假设我们给一个编程智能体实现了Harness。用户发来提示:
解决GitHub上第122号issue里的bug。
注意,这不是“给我解释一下……”那种简单提示。这是一个真正的任务。要完成它,需要规划、工具使用、记忆等智能体能力。
下面是一种逻辑上的Harness实现方式:
- 用户输入进入上下文。模型开始推理,形成一个目标。目标留在上下文里直到完成。
- 它决定“规划”任务执行。计划是:检查相关bug、修正确的文件、编译和测试、跑测试用例、更新记忆。
- 执行第一步,Harness从向量数据库检索记忆——过去相关bug的细节。发现认证相关的信息最匹配,放进上下文。
- 模型用上下文信息,决定编辑auth.py文件来修复认证bug。这需要read_file和write_file工具。模型用这些工具编辑文件并保存。
- 模型决定通过终端测试代码变更。需要终端工具,它在模型可用的工具集里。(Harness确保模型对终端和文件有正确的访问级别。)
- 模型进入计划下一步,执行测试用例。需要更多工具。注意每一步都会更新上下文,确保模型知道自己在哪、还剩什么。
- 全程,可观测性组件记录一切:用了哪些工具、任务耗时、内存使用、中间失败等。
注意我们还没碰评估,那本身就是一个巨兽。它不只是准确率,还可以根据智能体的观察行为覆盖多个指标。
我们正在往哪走?
今天智能体AI最大的挑战之一,是长时可靠性。
跑几个小时的智能体正在变成现实,我们需要确保运行绝对可靠。如果智能体卡在无限循环或某种损坏状态,我们可能浪费资源,还危及安全。
其次,评估变得非常困难,因为我们在模型外面搭了越来越复杂的Harness。每个任务都会留下大量数据轨迹,比如内存使用。我是该换模型,还是该重新设计Harness?我该加更多工具,还是修现有的?
这些问题正在社区里冒出来,大家正在积极构建复杂的Harness。
我们等着看下一步往哪走吧。
本文话题 #AgentHarness #AI智能体 #LLM #人工智能 #智能体架构 #AI工程 #可观测性 #Anthropic #OpenAI #AI开发