跳到正文
Latent Space· Dan McAteer·· 3 小时前AI 评分62

Claude Mods 把 Claude Code 的 Agent 框架翻转向人

Claude Mods: Flipping the Harness Inside Out

AI 导读

作者 Dan McAteer 介绍 Claude Mods:它是 Claude Code 的插件,由 TypeScript 或 JavaScript 函数构成,运行在 Claude Code 内部,响应提示词、工具调用或界面渲染等事件,可观察事件、改变渲染方式,或接管默认行为,相当于 Agent 框架的中间件。

正文 · AI 翻译

过去几周,我一直用 Claude Mods 把 Claude Code 塑造成适合我 AI 工程工作流的样子。Claude Code 开箱即用就很出色,但每个工程工作流都不尽相同。Claude Mods 让你能按自己希望关注的方式,把 Claude Code 变成你自己的。

“关注”这部分如今是最重要的。

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

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

Claude Mods:它是什么?

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

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

Claude Mods 让人和 agent 一起构建 harness 中面向人的那部分。现在你可以与 Claude 协作,设计 Claude 如何与你协作。这就是“注意力界面”的精髓。

harness 的反转

agent harness 最初是 agent 与其运行所在机器之间的界面。它让你向 agent 发出提示,然后 agent 发送命令、编辑文件并调用工具。如今它正逐渐变成 agent 与人交互的方式。

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

Claude Mods 让人类层变得可编程,而且是由使用 Claude 的人来编程。

Claude 也能为你构建 mods。Claude Code 有一个内置技能,教它如何构建 mods,所以你可以用自然语言描述你想要的 mod,Claude 就会把它构建出来。

实践中的 Mods

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

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

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

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

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

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

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

这些大多在后台运行,这很有意思,因为这意味着 Anthropic 正在把 Claude Code 的各个部分作为 mod 来构建——甚至包括你可能注意不到的部分。我自己开启的是 You Should Know。

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

1. You Should Know

这是 Anthropic 构建的原生 Claude Code 插件。它运行一个侧代理,在主代理工作时对其进行观察,并标记出你可能遗漏的重要信息。可以这样理解:那些对输出有实质性影响的工具调用和决策,但由于埋藏在代理轨迹中而不一定容易被看到。它内置于 Claude Code,但需要你开启它后才会生效。

这里有一个真实的例子。我让 Claude Code 简化我某个个人项目中嘈杂的 UI 文本。主代理精简了 Compare 屏幕上的文案,安装了新构建并拍摄了前后对比截图。一切看起来都完成了。

然后 You Should Know 为我标记了一些东西。代理正在编辑的文件 CompareView.swift 中已经有未提交的工作——另外大约 45 个文件也是如此。如果我之后丢弃了演示编辑,我也会丢掉那些更早的未完成工作。它的建议是先提交或暂存之前的工作。

在这个案例中,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 路由与审批

Cursor 从另一端着手解决同一个问题:不是一个人和一条回答,而是一个团队和一连串拉取请求,其中越来越多的请求由智能体编写。必须有人来决定哪些改动值得人类在环(human-in-the-loop)的关注。

PR 路由与审批负责做出这一决定。它根据代码归属和提交历史分配审查者,并且可以自动批准低风险的 PR。它会将风险评分与你设定的阈值、Cursor 的 Bugbot 和安全审查器给出的发现,以及仓库中的策略文件进行权衡。

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

Cursor 也明确说明了其局限。其文档称该功能“不能替代完整的代码审查”。其目的是把人工审查用在关键之处,而不是取消人工审查。

3 个系统之间的差异

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

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

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

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

我前面展示的 supervisor 就是一个很好的例子。Cursor 可以很容易地因为某个 PR 触及的文件而将其路由给我。ChatGPT 也可以同样轻松地把结论渲染成一张漂亮的卡片。但两者都不会让我决定:每一轮中,凡是编辑文件的改动都要获得第二意见;该意见要列出所采取的捷径;每个建议的下一步都只需按一次键即可执行。那个界面之所以存在,是因为我更喜欢以这种方式投入注意力,而 Claude 与我一起构建了它。

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

Mods 有什么问题

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

首先是噪音。Next Steps Supervisor 会在任何编辑文件、运行命令或发起 8 次及以上工具调用的轮次之后运行。实际上,几乎每一轮都符合条件。自从我在 10 月 15 日安装它以来,我在 Claude Code 中的 111 轮里有 99 轮达到了这一标准。其中一些结论是有用的,另一些只是噪音。所以当一个 mod 几乎每一轮都发言时,我就会开始快速略过它——这恰恰违背了注意力界面的初衷。

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

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

好处是,mod 的可修复性是其他工具所不具备的。当 supervisor 对某个会话来说只是噪音时,/supervisor off 就能把它关掉。因为这是我的 mod,我可以改变它何时运行。

这条路通向何方

定制 harness 并不保证对每位工程师都是收益。我每加一个 mod,就多一份需要我投入注意力的信息。在我自己的一次会话中,我的 Next Steps Supervisor 把一个任务标记为“已解决”,却又列出了两个缺口和三条捷径。Agent 很聪明但远非完美,我的注意力也远非完美。

所以我用来衡量 mod 是否有用的测试很简单:它是否揭示了我本来会漏掉的东西、让决策更容易,或者让我能行动而不被更多输出分散注意力?如果没有,那它就只是装饰,而不是有用的工具。

目前,构建一个 mod 的流程是这样的:我注意到自己与 Claude 协作中的摩擦,描述我想要的 mod,然后 Claude 和我一起把它构建出来。发现摩擦仍然需要我个人的注意力。

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

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

对 AI 工程师来说,这是最好的情况:一个可塑的 harness,能从真实使用中建议自我改进的方式。Claude Mods 是朝着这个方向迈出的一步。

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

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

来源:Latent Space · latent.space