跳到正文
原文
Latent Space· Dan McAteer·· 4 小时前AI 评分70

Claude Mods 如何把 Harness 翻成面向人的注意力界面

Claude Mods: Flipping the Harness Inside Out

AI 导读

Claude Mods 用跑在 Claude Code 内的代码插件,把智能体 Harness 改成可由人塑造的注意力界面。

正文 · AI 翻译

过去几周,我一直用 Claude Mods 把 Claude Code 塑造成适合我的 AI 工程工作流。Claude Code 开箱即用已经很出色,但每个工程工作流都不一样。Claude Mods 让你按自己想要关注的方式,把 Claude Code 变成你的。

“关注”这一部分现在是最重要的事。

在最近的一篇 Latent Space 文章 智能体 Harness 的演进 中,我提出:随着模型把越来越多的 harness 吸收进权重,剩下的那一部分面向的是人。它变成了 Attention Interface:这一层决定智能体何时打断你、向你展示什么,以及需要你做哪些决定。Claude Mods 是 Attention Interface 的早期版本,而且你可以自己塑造它。

我的判断是:最终,harness 会成为其他公司在其上构建的平台,而模型则是引擎。正如浏览器成为 Web 应用的平台,harness 也可能成为人与智能体之间界面的平台。

Claude Mods:它是什么?

mod 是一个 Claude Code 插件,由在 Claude Code 内部运行的 TypeScript 或 JavaScript 函数组成。这些函数可自定义 CLI 和 Desktop 中界面的行为与外观。Mods 会响应事件,例如提示、工具调用或界面渲染。它们可以观察事件、修改其渲染方式,并代替默认行为来处理它。

Claude Mods 是智能体 harness 的中间件。它们注入代码,改变 Claude Code 的执行与渲染流程,从而改变应用在运行时的行为。

Claude Mods 让人与智能体共同构建 harness 中面向人的部分。你现在可以和 Claude 一起设计 Claude 如何与你协作。这就是 “Attention Interface” 的本质。

Harness 的反转

智能体 harness 起初是智能体与其所运行的机器之间的接口。它让你向智能体发出提示,然后智能体发送命令、编辑文件并调用工具。现在,它正逐渐变成智能体与人交互的方式。

Claude Mods 让你反转 harness 的方向。Harness 不再从智能体指向机器,而是由你把它从智能体指向人类操作者,于是 harness 成为一种与人类注意力交互的方式。

Claude Mods 让使用 Claude 的人能够把面向人的这一层变成可编程的。

Claude 也可以为你构建 mods。Claude Code 有一个 内置 skill,教它如何构建 mods,因此你可以用自然语言说出想要的 mod,Claude 就会把它做出来。

实践中的 Mods

Claude Code 自身的一些功能已经是 mods。Anthropic 已内置发布了 其中六个。你可以运行 /plugin 并打开 Installed 查看,它们列在 Built-in 下:

  • agents-md:将 AGENTS.md 作为项目指令加载。

  • diff:接管 /diff 并绘制其面板。

  • plugin-authoring:为 Claude 提供它用来为你编写 mods 的 skill。

  • sec-default:保护你的组织所管理的内容,使其不受用户安装的 mods 影响。

  • telemetry:发送 Claude Code 及其内置 mods 所记录的分析数据。

  • you-should-know: 一个侧边代理,会在发现你可能遗漏的内容时,在提示上方显示一条备注。它是唯一一个默认关闭的。

这些功能大多在后台运行,这很有意思,因为这意味着 Anthropic 正在把 Claude Code 的部分功能做成 mods——甚至包括你可能注意不到的部分。我自己打开的是 You Should Know。

以下是我在实际使用中觉得最有用的两个 mod:一个是内置的,一个是我自己构建的。

1. You Should Know

这是 Anthropic 打造的原生 Claude Code 插件。它会运行一个侧边代理,在主代理工作时对其进行观察,并标出你很可能遗漏的重要信息。可以这样理解:那些对输出有实质影响的工具调用和决策,却不一定容易看见,因为它们埋在代理 trace 里。它内置于 Claude Code,但在你 开启它 之前处于关闭状态。

下面是一个真实例子。我让 Claude Code 简化我某个个人项目里冗杂的界面文案。主代理精简了 Compare 屏幕上的文案,安装了新构建,并截取了前后对比截图。一切看起来都完成了。

然后 You Should Know 为我标出了一件事。代理正在编辑的文件 CompareView.swift 里已经有未提交的改动——另外大约 45 个文件也是如此。如果我之后丢弃这些演示编辑,也会把先前那些未完成的工作一起丢掉。它的建议是先 commit 或 stash 更早的工作。

在这个例子里,You Should Know 这个 mod 让我避免了无意中丢弃工作成果。

2. Next Steps Supervisor

这个 mod 仅在某一轮编辑了文件、运行了命令,或进行了 8 次及以上工具调用之后才会运行。在下面的截图中,你会看到六条不同的信息被标出,以引起你的注意。Next Steps Supervisor 随后会建议下一步该做什么,并以可点击按钮的形式呈现,点击后会将该指令作为一条消息发送给 Claude Code。这个 mod 是 ModSmith 的一部分——这是我构建的一个开源 Claude Code 插件,带有若干不同的内置 mod,以及一个模板,Claude 可以用它来构建能够协同工作的新 mod。

其他地方的注意力界面

Anthropic 并不是唯一在构建注意力界面的公司。两款近期产品——一款来自 OpenAI,一款来自 Cursor——指向同一方向。以新的 ChatGPT Intelligent UI 和 Cursor 的 PR Routing & Approval 为参照,可以看出 Claude Mods 的独特之处。

ChatGPT 的 Intelligent UI

10月7日,OpenAI 在 ChatGPT 中发布了 GPT-6,同时带来一个它称之为 Intelligent UI 的新 ChatGPT 界面。不再只以文本作答,ChatGPT 现在可以在回答的同时生成界面:图表、地图、清单、表单,以及账单分摊器或储蓄计算器这类小工具。这些全部由模型即时生成,作为一种生成式 UI。

来源:OpenAI 的 GPT-6 发布公告

在 OpenAI 的一个示例中,ChatGPT 会用选择题形式的后续问题来缩小你所寻找内容的范围。可以这样理解:模型会判断何时需要你的判断,然后构建界面让你给出判断。

这就是一种注意力界面。代理会设计你如何与它的回复进行交互。

但请注意 ChatGPT 的 Intelligent UI 与 Claude Mods 之间的区别。对于 Intelligent UI,模型会从 OpenAI 构建的组件库中,逐条回答地挑选界面。发布时提到的唯一控制项是调低视觉效果。

Cursor 的 PR Routing & Approval

Cursor 正从另一端处理同一个问题:不是一个人、一个回答,而是一个团队和一连串 pull request,其中越来越多由 agent 撰写。必须有人决定哪些变更值得人在环路中关注。

PR Routing & Approval 负责做出这一决定。它根据代码所有权和提交历史分配审阅者,并能自动批准低风险 PR。它会把风险分数与你设定的阈值、Cursor 的 Bugbot 和 Security 审阅者的发现,以及仓库中的策略文件进行权衡。

研究过程中有一条规则引起了我的注意。如果某个 PR 修改了审批策略,agent 不会用修改后的版本来放宽对该 PR 本身的审查。它会改为读取基础分支上的策略。这意味着 agent 无法通过修改规则来让自己的 PR 获得批准。

Cursor 对局限性也很明确。其文档称该功能“并不能取代完整的代码审查”。重点是把人工审查用在真正重要的地方,而不是取消它。

这 3 个系统之间的差异

这三个系统都会塑造什么内容获得你的关注,以及以何种方式获得关注。主要区别在于谁来设计 Attention Interface。

  • ChatGPT Intelligent UI:模型在实验室构建的框架内,为每个回答设计界面。零配置,但控制权很少。(我不认为目标用户是工程师。)

  • Cursor PR Routing & Approval:团队编写策略,由固定的审查工作流来执行。可配置,但交互流程由 Cursor 决定。你决定规则,而不是界面。

  • Claude Mods:你和 agent用代码构建界面本身。一个 mod 可以挂接到循环中的任意节点——从你提交的 prompt,到 agent 发起的工具调用,再到一轮结束的时刻——并决定在那里向你展示什么,以及你可以对此做什么。

我之前展示的 supervisor 就是一个很好的例子。Cursor 可以轻易因为 PR 触及的文件而把它路由给我。ChatGPT 同样可以轻易把结论渲染成一张精美的卡片。但两者都不会让我决定:每一次编辑文件的回合都要获得第二意见,该意见要列出所走的捷径,并且每个建议的下一步都只需一次按键。这个界面之所以存在,是因为我更喜欢以这种方式投入注意力,而 Claude 和我一起把它做了出来。

ChatGPT 和 Cursor 给你的是别人设计好的 Attention Interface。Claude Mods 让你和 Claude 一起设计自己的界面,但代价是你要负责让它真正有用。

Mods 的问题在哪里

Mods 并非没有代价,我也遇到了一些缺点。

首先是噪音。Next Steps Supervisor 会在任何编辑文件、运行命令或进行 8 次及以上工具调用的回合之后运行。实际上,这几乎是每一回合。自 10 月 15 日安装以来,我在 Claude Code 中的 111 个回合里有 99 个达到了这一标准。其中一些结论有用,另一些只是噪音。因此,当一个 mod 几乎在每一回合都出声时,我开始一眼扫过它——这恰恰违背了 Attention Interface 的初衷。

第二是成本。每次 supervisor 检查都会分叉对话并重新读取它。其中大部分由提示缓存提供,但该 mod 自己的 README估计,在一个 50k token 的会话中,每次检查大约相当于 5–6k 个输入等效 token,缓存过期时还会更多。

第三是信任。mod 是以你的权限运行的代码。Anthropic 的文档对此说得很清楚:一旦加载,mod 就可以读写你的文件、看到你发送的每一条提示,并消耗你的用量。此外,“mods 没有沙箱隔离。”内置 mod 在你使用 --safe-mode 启动 Claude Code 时也会继续运行。我对自己编写的或随 Claude Code 附带的 mod 比较放心,但在安装别人的代码之前,我会先读一遍。

好处在于,mod 能以其他工具做不到的方式被修正。当 supervisor 在某个会话中变成噪音时,/supervisor off 可以把它关掉。因为它是我的 mod,我可以改变它的运行时机。

接下来会走向哪里

定制 harness 并不能保证对每一位工程师都是好事。我每添加一个 mod,就多了一份需要我关注的信息。在我自己的一次会话中,我的 Next Steps Supervisor 把一项任务标为“Solved”,同时又列出了两个缺口和三条捷径。智能体很聪明,但远非完美,我的注意力也同样远非完美。

因此,我用来衡量自己的 mod 是否有用的检验标准很简单:它是否揭示了我本来会错过的东西,让决策更容易,或者让我能够行动而不被更多输出分散注意力?如果没有,那它就只是装饰门面,而不是有用的工具。

目前,构建 mod 的方式是这样的:我注意到自己与 Claude 协作时的摩擦,描述我想要的 mod,然后 Claude 和我一起把它做出来。发现这种摩擦仍然需要我亲自留意。

来源:Claude Code 关于创建 mod 的文档

下一步是让 harness 自己发现这种摩擦。Claude Code 已经保存了我的会话记录。可以这样设想:一个后台进程通读这些记录,找出我反复纠正智能体或反复手动检查同一件事的地方,并为此建议一个 mod。然后它帮我测试这个 mod,并根据我的反馈加以改进。

对 AI 工程师来说,最好的情况是:一个可塑的 harness,能根据真实使用情况提出改进自身的方法。Claude Mods 正是朝这个方向迈出的一步。

如果我一开始下的赌注是对的,几年后我们会谈论那些建立在 Claude Code、Codex,或一个尚不存在的 harness 之上的初创公司。

最后留给你一个问题,希望答案能给你带来实际价值:在使用 Claude Code 时,你注意到了哪些摩擦,而这篇文章能启发你今天就用一个 mod 去解决?

来源:Latent Space · latent.space