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

Claude Mods 实测:把 Agent Harness 变成可编程的注意力界面

Claude Mods: Flipping the Harness Inside Out

AI 导读

作者在数周实测后解读 Claude Mods,这是一种在 Claude Code 内运行 TypeScript/JavaScript 函数的插件机制,可响应提示词、工具调用等事件并接管默认行为,相当于 Agent harness 的中间件。

正文 · AI 翻译

过去几周,我一直在使用 Claude Mods 来把 Claude Code 塑造成符合我 AI 工程工作流的工具。Claude Code 开箱即用就很出色,但每个工程工作流都不尽相同。Claude Mods 让你能按照自己想要关注的方式,把 Claude Code 变成你自己的工具。

“关注”这部分如今已成为最重要的事。

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

我的判断是:最终,harness 将成为一个其他公司可以在其上构建的平台,而模型是引擎。就像浏览器成为 Web 应用的平台一样,harness 也可能成为人与智能体之间接口的平台。

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

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

Claude Mods 让人与智能体能够共同构建 harness 中面向人的部分。你现在可以与 Claude 一起设计 Claude 如何与你协作。这正是“关注界面”的精髓所在。

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

Claude Mods 让你能够逆转 harness 的方向。与其让 harness 从智能体指向机器,不如让它从智能体指向人类操作者,这样 harness 就成了与人类注意力对接的方式。

Claude Mods 让使用 Claude 的人能够对人的这一层进行编程。

Claude 也可以为你构建 mods。Claude Code 内置了一个技能,教它如何构建 mods,因此你可以用平实的语言提出你想要的 mod,Claude 就会为你构建。

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

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

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

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

  • sec-default: 保护你的组织所管理的资源,防范用户安装的 mod。

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

  • you-should-know: 一个辅助智能体,当发现你可能遗漏的东西时,会在提示符上方显示一条提示。它是唯一默认关闭的。

其中大部分都在后台运行,这很有意思,因为它意味着 Anthropic 正在把 Claude Code 的一部分构建为 mod——甚至是那些你可能根本注意不到的部分。我自己开启的是 You Should Know。

以下是我在实践中发现最有用的两个 mod:一个是内置的,一个是我自己构建的。

这是一个由 Anthropic 构建的 Claude Code 原生插件。它会运行一个辅助智能体,在主智能体工作的同时进行观察,并标记出你很可能遗漏的重要信息。可以这么理解:某些对输出有实质影响的工具调用和决策,因为埋在智能体的执行轨迹中,未必能轻易看到。它内置于 Claude Code 中,但在你 开启它之前一直处于关闭状态。

这里有一个真实的例子。我让 Claude Code 简化我某个个人项目中冗杂的 UI 文案。主智能体精简了 Compare 界面上的文案,安装了新的构建,并截取了前后对比截图。一切看起来都完成了。

然后 You Should Know 向我标记了一件事。智能体正在编辑的文件 CompareView.swift 中已经有未提交的工作——另外大约 45 个文件也是如此。如果我之后丢弃这些演示性的改动,也会连带丢弃那些之前未完成的工作。它的建议是先提交或暂存(stash)之前的工作。

在这个案例中,You Should Know mod 让我避免了无意间丢弃工作。

这个 mod 只在编辑了文件、运行了命令或进行了 8 次以上工具调用的回合结束后运行。在下面的截图中,你会看到被标记出来供你注意的六条不同信息。Next Steps Supervisor 随后会建议一个下一步操作,以可点击按钮的形式呈现,点击后会把指令作为消息发送给 Claude Code。这个 mod 包含在 ModSmith 中——一个我构建的开源 Claude Code 插件,内置了多个不同的 mod,还提供了一个模板,Claude 可以用它来构建能协同工作的新 mod。

构建注意力界面(Attention Interface)的并非只有 Anthropic 一家。最近有两款产品,一款来自 OpenAI,一款来自 Cursor,都指向了同一个方向。以新的 ChatGPT Intelligent UI 和 Cursor 的 PR Routing & Approval 作为参照,可以看出 Claude Mods 的独特之处。

10 月 7 日,OpenAI 在 ChatGPT 中发布了 GPT-6,同时推出了一个名为 Intelligent UI 的新界面。ChatGPT 现在可以在回答的同时生成一个界面,而不只是以文本作答:图表、地图、清单、表单,以及分账计算器、储蓄计算器之类的小工具。所有这些都由模型即时生成,属于一种 生成式 UI。

在 OpenAI 的一个示例中,ChatGPT 会用多项选择的后续提问来回复,以缩小你所寻找的范围。可以这样理解:模型自己决定何时需要你的判断,然后为你构建用于给出判断的界面。

这就是注意力界面。智能体设计了你与其响应交互的方式。

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

Cursor 正从另一端解决同一个问题:不再是一个人和一个回答,而是 一个团队和一连串的 pull request,其中越来越多的 PR 由智能体编写。总得有人来决定哪些变更值得身处回路中的人类的关注。

PR 路由与审批正是做这个决策的。它根据代码归属和提交历史分配审阅者,还能自动批准低风险的 PR。它会将一个风险评分与你设置的阈值、Cursor 的 Bugbot 和 Security 审阅者的发现,以及存放在仓库中的策略文件进行权衡。

在研究过程中,有一条规则引起了我的注意。如果某个 PR 修改了审批策略,智能体不会使用修改后的版本来放宽对同一 PR 的审查,而是从基础分支读取策略。这意味着智能体不能通过修改规则来让自己的 PR 获得批准。

Cursor 也明确说明了其局限性。其文档表示该功能“不能取代完整的代码审查”。其意义在于把人工审查花在重要的地方,而不是取消它。

这三个系统都在塑造什么能获得你的注意力,以及如何获得。主要区别在于由谁来设计注意力界面。

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

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

  • Claude Mods: 由你和智能体用代码构建界面本身。一个 mod 可以挂接到回路中的任意节点——从你提交的提示词,到智能体发起的工具调用,再到一轮对话结束的时刻——并决定在那里向你展示什么、你能做什么。

我之前展示的监督界面就是一个很好的例子。Cursor 可以轻松地根据 PR 涉及的文件把它路由给我。ChatGPT 也同样可以轻松地把裁决结果渲染成一张漂亮的卡片。但两者都不会让我决定:每一轮中任何编辑文件的回答都要经过二次意见,该意见要列出所走的捷径,并且每一步建议的后续操作都只需按一下键。这个界面之所以存在,是因为 我更喜欢以这种方式投入注意力,而 Claude 与我一起构建了它。

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

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

首先是噪音。 Next Steps Supervisor 会在任何编辑文件、运行命令或进行 8 次及以上工具调用的回合之后运行。实际上,几乎每个回合都会触发。 自 10 月 15 日安装以来,我在 Claude Code 的 111 个回合中有 99 个达到了这个标准。其中一些判定是有用的,另一些则纯属噪音。所以当一个 mod 几乎在每个回合都发言时,我开始略过它——这就违背了注意力接口的初衷。

其次是成本。 每次监督器检查都会 fork 对话并重新读取它。其中大部分可以从提示缓存中获取,但 该 mod 自己的 README 估算,在 50k token 的会话中,每次检查约消耗 5–6k 输入等效 token,缓存过期时还会更多。

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

好消息是,mod 可以像其他工具无法做到的那样被修复。 当监督器在某个会话中成了噪音时,/supervisor off 就能关掉它。因为这是我自己的 mod,我可以修改它的运行时机。

定制 harness 并不保证对每一位工程师都是赢家。我添加的每个 mod,都是又一件需要我分出注意力的东西。 在我自己的一个会话中,我的 Next Steps Supervisor 把一个任务标记为“已解决”,却又列出了两个缺口和三条捷径。智能体很聪明,但远非完美,我的注意力也同样不完美。

因此,我用来衡量 mod 是否有用的测试 很简单:它是否揭示了我本会错过的东西、让某个决策变得更容易,或让我在行动时不被更多输出分散注意力?如果没有,那它只是装饰摆设,而非有用的工具。

现在,构建一个 mod 的流程是这样的:我注意到自己使用 Claude 时的摩擦点,描述我想要的 mod,然后 Claude 和我一起构建它。察觉这些摩擦仍然需要我个人的注意力。

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

这就是 AI 工程师的最佳前景:一个能根据真实使用情况提出自我改进建议的可塑 harness。 Claude Mods 正是朝这个方向迈出的一步。

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

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

来源: Latent Space · latent.space