Anthropic 内部对谈:Harness 那套外壳流程,正在被拆掉
- 套在模型外面那层代码(harness)正在变薄:它编码的是「模型做不到什么」的假设,而这些假设会随模型变强而过期
- 薄下去之后上面长出一层管「用哪套打法」的东西,Anthropic 自己的博客里管它叫元 harness
- Agent 的权限模型在换:从问「这个用户能干什么」,换成问「这个 Agent 在这个隔间里能干什么」
- 企业算这笔账的顺序,对谈建议是个人 → 团队 → 跨团队流程,别一上来啃最难的那层
- 最容易踩的坑:人人都能单干之后,方向反而更难对齐
- 平台侧的落点叫 outcome,你交的是验收标准,不是操作步骤
先把外面那层框架拆了
Anthropic 最近放出一场对谈视频《Building the future of agentic infrastructure》,约 16 分钟。出镜两人:Angela 主要谈客户侧看到的用法和 harness 的演进,Caitlin 是 Managed Agents 这条产品线上的人,谈的是 Agent 身份、工程团队和平台方向。
半年前 Claude 平台主要还是一个推理接口:把文字送进模型,再把结果取出来。这半年往上接了两层麻烦:基础设施,以及 harness 工程。
模型本身只会做一件事:读一段文字,吐一段文字。它没法自己打开文件、跑命令、查数据库。harness 就是套在模型外面的那一整套东西,把它吐出来的话解读成「它想用某个工具」,真的去把工具跑一遍,再把结果塞回去让它接着想;上下文快满了负责压缩,中途崩了负责存档重来。
如果模型是发动机,harness 就是发动机之外的整辆车:方向盘、变速箱、油表、安全带。
但 harness 是个笼统的说法,里面装的东西性质完全不同。拆开看是四类:
前三类是模型天生做不了的事,跟模型多强没关系,再过十年也得有人干。第四类不一样:它替模型拿主意,而它当初存在的唯一理由,是模型自己拿不好主意。
几个月前的通行做法,正是把第四类堆得很厚:把业务拆成一个个盒子拼起来,必须先过 A,而 A 只有在满足一堆条件时才能走到 B,最后连成一张很复杂的网。这在当时是有理由的,模型的不确定性以前麻烦得多,你得用标准作业流程把它箍住。
代价是脆弱。而且方向反了:你本来想要模型的智能,结果编排把它框死,Agent 反而发挥不出你指望它有的那份能力。
一个具体的例子:变成死重的那个补丁
Anthropic 的工程博客里记过一件事,比任何抽象论证都直观。Sonnet 4.5 有个毛病:任务做到一半,眼看快到上下文上限了,它会开始草草收尾,工程团队管这叫「上下文焦虑」。于是他们在 harness 里加了一个补丁,专门做上下文重置来治它。
后来换到 Opus 4.5,这个毛病自己没了。那个补丁于是变成了他们原话说的 dead weight,死重。
这就是「harness 变薄」的全部意思:那层东西当初有它的道理。模型进步之后,替模型兜底的部分就从保险变成了拖累。Anthropic 自己的说法是,harness 里编码的都是「关于模型做不到什么」的假设,而这些假设会随模型变强而过期,所以得反复拿出来质疑。
- 一张条件网:先过 A,A 满足条件才到 B
- 标准作业流程箍住每一步的顺序
- 为对冲模型的不确定性而生
- 脆弱,且把模型的判断力挡在外面
- 薄:替模型拿主意的部分被删掉
- 模型在护栏内自己想该走哪几步
- 能跑更久,常驻工作空间被事件触发
- 跑完一整套流程,真准备好了再回来找你
能拆得动,是因为两件事同时发生。一是模型自己进化了:会用工具、推理更深,能在一个循环里反复「看情况、决定下一步、动手、看结果」,而不只是问一句答一句。二是基础设施跟上了:Agent 可以常驻在一个工作空间里,被某件事触发就跑起一整套流程,跑上一阵子,真准备好了再回来找你。
被拆的是哪一层:harness 里「替模型拿主意」那一格,也就是把步骤顺序和条件判断提前写死的那些编排代码。跑腿、收拾摊子、护栏三格原样留着。
为什么拆:那一格的存在前提是模型自己拿不好主意。模型能自己想步骤之后,它从保险变成了拖累,就像那个治「上下文焦虑」的补丁在 Opus 4.5 上变成死重一样。
换个角度说,变的是「路线该由谁定」。以前人把路线提前用代码写死,模型只负责在每个格子里填空;现在越来越多的活是交个目标给模型,让它自己边走边定路线。Anthropic 把这两种形态分别叫 workflow 和 Agent。差别不在模型多聪明,在结构:路线是谁排的。
薄下去之后,谁来决定怎么打
harness 变薄,不等于外面什么都不剩了。它上面会冒出另一层东西,对谈里还没想好该叫它什么,开玩笑说也许将来会叫「马鞍」。
这一层不规定「第一步做什么、第二步做什么」。它决定的是:这道题,用哪套打法去解。
旧 harness 像一条写死的流水线,每个工位干什么、什么时候传给下一位,全是排好的。新长出来的这层更像一个会挑战术的教练:它不站在流水线上,它决定这场仗用哪种阵型打。
这个说法不只是对谈里的即兴发挥。Anthropic 的工程博客写 Managed Agents 时用的正是「元 harness」这个词,定义是:一套不对「将来会需要哪种具体 harness」预设立场的系统,只提供通用接口,让很多种不同的 harness 都能跑在上面。
底下这三种打法,都已经有人在用:
同时起好几个 Agent 去解同一个问题,让它们互相竞争,谁的结果好用谁的。这本身被做进了 harness 里。
起两个 Agent,分工是对立的:一个负责提方案,另一个的职责就是挑毛病。用对抗代替单线推进。
Anthropic 最近做的一种。模型想不出该干嘛的时候,它去求助一个「朋友」,希望这个朋友更聪明,能帮它把事情搞定。
真正用起来时,这几种打法还会混着来,而且分阶段。前期先用 best of N(同一道题独立跑 N 遍,再挑最好的那份)铺开探路,看哪条路走得通;等对的框架定下来,再在这一套框架上反复打磨。探索阶段和收敛阶段用的不是同一套策略。
值得留意的是,「多跑几遍挑最好的」并不是万能解。近年不少研究发现,在复杂任务上,反复独立重抽的效果会明显输给「带着标准反复改」,也就是下面要讲的 outcomes 走的路子。
Agent 要有自己的身份
今天绝大多数 Agent 干活,用的是借来的权限:它顶着某个人的账号进系统,那个人能进哪它就能进哪,出了事查到的也是那个人。对谈里的判断是,这条路走不远,Agent 得有自己的身份。
公司给员工发工牌,刷卡决定能进哪几间屋子。服务账号就是发给程序的工牌:没有邮箱、没有密码、不能登录后台,纯粹给机器刷。人的工牌和机器的工牌分开管,是企业里早就有的做法。新的地方在于,现在轮到 Agent 自己领一张了。
为什么非改不可,有两个绕不开的理由。一个是时间对不上:Agent 会自己排任务、在你早就下班之后才动手,这时候「代表你行事」本来就说不通。另一个是人对不上:一个群里三个工程师加一个产品经理,Agent 该按谁的权限办事?没有哪个人选在所有情况下都对。
Anthropic 在一篇讲 Agent 身份的博客里,把这个转变概括得很干脆:要问的问题从「这个用户能干什么」,变成了「这个 Agent 在这个隔间里能干什么」。
下面这个来回,是对谈里描述的运作方式:
「每周一给我一份上周的销售周报」。你不告诉它去哪取数、用哪个模板、怎么算同比。
「要做成这件事,我需要能读销售数据库、能拿报表模板、能发邮件、能查财务系统。」这一步是关键。它没有拿着你的账号直接就去,而是先把要碰的东西列成一张单子给你过目。
前三项放行,财务系统不批。它得在这个边界里想办法把周报做成,缺的那一项只能绕过去或者回来找你。你的批准范围就是它的活动范围,不多不少。
做成一次以后,它差不多就能给自己建一个服务账号。从此它以自己的身份行事,每一次动作都记在它自己名下,你能事后一条条查。
上面这个来回为示意场景,据对谈描述整理。
这套模型也有代价,Anthropic 自己在博客里点破了:可能出现「你本人进不去的房间,但你可以让 Agent 替你进」,只要那个隔间给了 Agent 这项权限。他们的说法是这确实反直觉,但对多人共用、自主干活的 Agent 来说是必要的一步。换来的好处是撤销变简单了:注销这个身份,它在所有系统里的访问权同时结束。
Agent 之间怎么互相调用
还有一条相关的线:把一个 Agent 包装一下暴露出去,另一个 Agent 就知道该怎么使唤它。对谈里提到有人在 Claude Managed Agents 上面搭了一层很薄的 MCP server 做这件事。
MCP 是 Anthropic 2024 年 11 月开源的一套协议,官方自己的比喻是「AI 应用的 USB-C 接口」。但真正让「另一个 Agent 就知道怎么调用」成立的,是它的一个具体设计:
调用方先问一句「你都能干什么」,对方返回一份能力清单。清单里每一项都写着两样东西:一句人话说明(这个功能是干嘛的、什么时候该用),和一份参数格式表(要填哪几项、每项是什么类型、哪些必填)。
而「读一份带说明的清单,然后决定点哪道菜、怎么填单子」,恰好是大模型最擅长的事。所以不需要谁提前写死调用代码,它现场读、现场就会用了。
视频开场那句自嘲,说的正是这件事。
能看出我们是 API 极客,因为我们说 Agent 之间该通过 API 互相对话。对谈开场白
别从 120 条流程开刀
企业算 Agent 这笔账时,最常见的两种起手式:把手上庞大的老流程全部 Agent 化,可能有 120 个,照着清单一条条来;或者干脆认为这正是彻底重做整个产品面的时机。想法都不错,但全部走一遍非常难。
对谈里给的替代方案是一个更简化的心智模型,顺序不能反:
盯住一个人到底快了多少。对谈里也承认这听上去简单得有点不够高级,但起点就该在这里。
一个人快起来之后,往团队推,开始琢磨这里产生的速度和产出。
只有到这时才该问:能不能用这个团队去打通全公司的一条流程。现实里一条流程通常牵扯很多团队、很多人,他们没有共用的标准作业流程,专业背景也未必一样。这也是为什么它最难,该放最后。
按这个顺序走,公司在意的指标能一个个点亮,最后自然也能走到那份一直想梳理的 120 条清单。大多数 ROI 测算应该首先盯速度和产出效率,把它当主要抓手,通常更靠前也更奏效;等这套东西在公司里慢慢铺开,再往财务指标、用户指标上转就更合理。
人人都能单干,反而更难协调
问到失败模式时,对谈给的答案不太好听:Agent 会带来一种超级独立感,而这种感觉有点虚。
你会觉得现在人人都是开发者,什么都能自己做。以前你会想「这几个方案哪个最好」,稍微斟酌一下;现在反正便宜,十个原型全上,哪个赢了选哪个。
给了每个人超级独立,却没把大家组织到一个具体方向上。更系统、更整体的东西,出来的质量反而更难协调,各干各的东西就这么铺开了。
工程团队变成什么样了
结构其实没大变:你还是需要一群懂自己在建什么系统、懂怎么运维、出问题时怎么值班的人。变的是团队内部的配比。
- 一个技术负责人,对系统该怎么设计有主见
- 一大堆工程师,领工单干活
- 主见集中在少数人身上
- 几乎整个团队都对端到端怎么做有强主见
- 每个人各自调度自己的 Claude 去执行
- 人数相近,但能干完的活多得多
稀缺的东西从「谁来写」挪到了「谁说得清该建成什么样」。
从一件件工具,变成一层底座
对终局的设想是:不再是一个个打开 Agent 工具,这个擅长这个、那个擅长那个。取而代之的是一层公共底座,大家都在上面协作。
界面还是熟悉的那些,但你可以随时叫上一个 Agent,想起就起,想停就停,它在背后默默干活。它甚至可能主动找上你:这东西挂了,我查了细节,弄明白也修好了,代码改动在这,你要不要看一眼。你也可以回一句,以后这么小的事别烦我,直接上线就行。
再往前,团队 Agent 会对上具体几个人之间的协作偏好:你和我之间某个协作流程有一个对应的 Agent,三个人的团队有另一个,它理解的偏好又稍微不一样。与其说是一件件主动去拿的工具,不如说更像一个操作系统。
平台侧的抓手叫 outcome
收尾落在一个具体机制上:你不告诉 Claude 怎么做,而是告诉它做成什么样算数,附一份评分标准。它自己反复做、反复对着标准打分,直到达标才停。
这不是口号,官方文档里是有具体设计的。定义一个 outcome 时,系统会自动配一个打分员,拿你给的评分表去验收产物;这个打分员用的是另一个独立的上下文,避免被主 Agent 自己的实现思路带偏。不合格就打回去重做,默认最多返工 3 次,上限 20 次。
沿着这个方向再往前,设想中的用法是:你说「我要这个结果,这是预算,开干」,剩下的基本不用再操心。
需要拎清的现状:Claude Managed Agents 目前处于公开 beta,其中 outcome 和 dreaming 两项都标注为 research preview、需要单独申请。对谈里描述的完整图景,有一部分是方向而不是今天就摆在那儿的产品。另外,「Agent 给自己建服务账号」是对谈的说法;官方文档目前描述的做法是由管理员预置服务账号、Agent 以这个身份行事。
背景资料另据 Anthropic 官方公开材料补充:工程博客 Scaling Managed Agents(元 harness 的定义、上下文重置补丁变成死重的例子)、工程博客中关于高效 Agent 构建的一篇(两种形态的区分)、Agent identity(权限模型转变及其代价)、outcomes 文档(打分员机制与返工次数)、MCP 官方站。
本文为二次解读,中文表述经过整理,人名保留原文拼写。周报场景与文中示意图为编者绘制,非原文案例。
套在模型外面的流程网,从保险变成了枷锁
Anthropic 一场 16 分钟内部对谈:模型能自己想步骤之后,外壳被拆掉哪一层、又长出什么,一页带图讲完
↓ 一页读完 · 有一张会动的图
大模型本身只会做一件事:读一段文字,吐一段文字。它没法自己打开文件、跑命令、查数据库。所以人们在它外面套了一层代码,行话叫 harness(外壳),把模型吐出来的话解读成「它想用某个工具」,真的去跑一遍,再把结果塞回去让它接着想。如果模型是发动机,harness 就是发动机之外的整辆车。
这层车壳里装的东西性质并不一样。有些是模型天生做不了、再过十年也得有人干的;有一格不是。
✘ 正被拆的那一格:替模型拿主意,先走 A 再走 B、满足什么条件才准进下一步、每步必须按这个顺序
为什么这一格待不住了:它当初存在的唯一理由,是模型自己拿不好主意。几个月前的通行做法正是把它堆得很厚,把业务拆成一个个盒子,必须先过 A,A 满足一堆条件才到 B,连成一张很复杂的网。代价是脆弱,而且方向反了:你本来买的是模型的判断力,编排却把它框死。
对谈给出的判断是:那一格正在被删掉。理由不在于删掉更简洁。那一格已经在拖后腿了。Anthropic 工程博客里记过一件具体的事,Sonnet 4.5 有个毛病,任务做到一半、眼看快到上下文上限时会草草收尾,团队管这叫「上下文焦虑」,于是在外壳里加了一个专门做上下文重置的补丁。换到 Opus 4.5 之后,这毛病自己没了,补丁变成他们原话说的 dead weight,死重。
若 B 输出合格 → 走 C
否则 → 退回 A 重试
- 模型只在每个格子里填空
- 改一处条件,整张网跟着抖
护栏:可读销售库,不可动财务
路线:模型自己边走边定
- 能常驻在工作空间里被事件触发
- 跑完一整套,真准备好了再回来找你
能拆得动,是因为模型学会了在一个循环里反复「看情况、决定下一步、动手、看结果」。但外壳变薄不等于外面什么都不剩,它上面正在冒出另一层东西,对谈里的人还没想好该叫它什么,开玩笑说也许将来会叫「马鞍」。
这一层不规定第一步做什么、第二步做什么。它决定的是:这道题,用哪套打法去解。Anthropic 工程博客里管它叫元 harness。下面这张图把旧做法和三种新打法并排铺开,同一道题:小互要给一款新出的 AI 耳机写一篇 2000 字评测,手上有 12 条用户吐槽。
还有一件配套的事:模型自己想步骤之后,权限也得跟着换人。今天绝大多数 Agent(能自己排步骤干活的 AI 程序)用的是借来的权限,顶着某个人的账号进系统,那人能进哪它就能进哪。对谈的判断是这条路走不远:它会在你下班之后才动手,「代表你行事」本来就说不通;一个群里三个工程师加一个产品经理,它又该按谁的权限办事。换的方向是:它先报一份要碰哪些系统的清单,你逐项批、可以驳回,干成之后它有自己的账号,每次动作记在自己名下,事后能一条条查。
企业最常见的两种起手式是:把手上一百多条老流程全部改成 Agent 版,照清单一条条来;或者认为这正是彻底重做整个产品的时机。对谈里给的替代方案是一个更笨的顺序,而且不能反着来。以一家 40 人的内容公司为例,三级各要多久:
跨团队流程
整个团队
一个人
这些说法均出自 Anthropic 自己发布的对谈视频与官方博客,两位出镜者都在讲自家平台的方向,涉及产品能力的部分为一家之言;其中 outcome 等能力目前仍需单独申请,「Agent 给自己建服务账号」是对谈的说法,官方文档描述的做法是由管理员预置账号。
顺序写死,条件套条件。
他把每步都锁死。
模型变强,这些假设就过期了。
手上 12 条用户吐槽。
变成会挑战术的教练。
你逐项批,可以驳回。
每步记在自己名下。
恰恰是不该开刀的地方。
② 整个团队 → 数周
③ 跨团队流程 → 数月起
- × 十个原型全上
- × 人人各干各的
- × 方向没人对齐
稀缺的不再是谁来写,
是谁说得清该建成什么样。
