Claude Mods 解析:如何自定义 Claude Code 的注意力接口
Claude Mods: Flipping the Harness Inside Out
作者介绍 Claude Mods,一种可运行在 Claude Code 内的 TypeScript/JavaScript 插件,能响应提示、工具调用等事件并改写界面与执行流程,让使用者与 Claude 共同设计面向人的交互层。
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 也可能成为人与智能体之间各种接口的平台。
Claude Mods:它是什么?
一个 mod 就是一个 Claude Code 插件,由在 Claude Code 内部运行的 TypeScript 或 JavaScript 函数组成。这些函数可以自定义 CLI 和 Desktop 中界面的行为与外观。Mods 会响应事件,比如一次提示、一次工具调用或一次界面渲染。它们可以观察事件、修改其渲染方式,并取代默认行为来处理它。
Claude Mods 是智能体 harness 的中间件。它们注入代码,改变 Claude Code 的执行与渲染流程,从而改变应用在运行时的行为。
Claude Mods 让人类与智能体共同构建 harness 中面向人类的部分。你现在可以和 Claude 一起设计 Claude 该如何与你协作。这就是“注意力接口”的精髓。
harness 的反转
智能体 harness 最初是智能体与其运行机器之间的接口。它让你向智能体发出提示,智能体随后发送命令、编辑文件、调用工具。如今,它正逐渐成为智能体与人类交互的一种方式。
Claude Mods 让你反转 harness 的方向。与其让 harness 从智能体指向机器,你把它从智能体指向人类操作者,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 记录的分析数据。
你应该知道:一个侧边代理,当它发现你可能遗漏的内容时,会在提示词上方显示一条备注。它是唯一默认关闭的。
这些功能大多在后台运行,这很有趣,因为它意味着 Anthropic 正在把 Claude Code 的部分功能作为 mods 构建——甚至包括你可能不会注意到的部分。我自己开启的是 You Should Know。
以下是我在实践中发现最有用的两个 mods:一个是内置的,一个是我自己构建的。
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 插件,包含多个不同的内置 mods,以及一个 Claude 可以用来构建协同工作的新 mods 的模板。
其他地方的注意力界面
并非只有 Anthropic 一家公司在构建注意力界面。最近的两款产品,一款来自 OpenAI,一款来自 Cursor,都指向了相同的方向。以新的 ChatGPT Intelligent UI 和 Cursor 的 PR Routing & Approval 作为参照,可以看清 Claude Mods 的独特之处。
ChatGPT 的 Intelligent UI
10 月 7 日,OpenAI 在 ChatGPT 中发布了 GPT-6,同时推出了一款新的 ChatGPT 界面,他们称之为 Intelligent UI。不再只是以文本作答,ChatGPT 现在可以在回答的同时生成界面:图表、地图、清单、表单,以及像分账工具或储蓄计算器这样的小工具。全部由模型即时生成,作为一种生成式 UI。
在 OpenAI 的一个示例中,ChatGPT 会回复多个选择题式的后续问题,以缩小你所寻找的范围。可以这样理解:模型决定何时需要你的判断,然后为你构建界面来给出判断。
这就是一个注意力界面。代理设计了你与其响应交互的方式。
但请注意 ChatGPT 的 Intelligent UI 与 Claude Mods 之间的区别。对于 Intelligent UI,模型会从 OpenAI 构建的组件库中逐个回答地挑选界面。发布时提到的唯一控件是调低视觉效果。
Cursor 的 PR Routing & Approval
Cursor 正从另一端解决同样的问题:不是一个人和一个答案,而是 一个团队和一串 pull request,其中越来越多由 agent 撰写。总得有人来决定哪些改动值得 human-in-the-loop 的关注。
PR Routing & Approval 负责做出这个决定。它根据代码归属和提交历史指派评审人,并且可以自动批准低风险的 PR。它会将风险评分与你设定的阈值、来自 Cursor 的 Bugbot 和 Security 评审人的发现,以及仓库中的策略文件进行权衡。
研究过程中有一条规则引起了我的注意。如果一个 PR 修改了审批策略,agent 不会使用修改后的版本来放宽对同一个 PR 的审查。它会从 base 分支读取策略。这意味着 agent 无法通过修改规则来让自己的 PR 获得批准。
Cursor 也清楚其局限性。其文档称该功能“不能取代完整的代码审查”。重点是把人力审查用在重要的地方,而不是取消它。
这 3 个系统之间的区别
这三个系统都在塑造什么会吸引你的注意力以及如何吸引。主要区别在于谁有权设计 Attention Interface。
ChatGPT Intelligent UI:模型在实验室构建的框架内为每个回答设计界面。零配置,但控制力很弱。(我不认为目标用户是工程师。)
Cursor PR Routing & Approval:团队编写策略,由固定的审查工作流来执行。可配置,但交互流程由 Cursor 决定。你决定的是规则,而不是界面。
Claude Mods:你和 agent 用代码构建界面本身。mod 可以挂接到循环中的任意一点——从你提交的提示到 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 的意义。
第二是成本。每次监督者检查都会分叉对话并重新读取它。其中大部分由提示缓存提供服务,但 该 mod 自己的 README 估计,在一个 50k token 的会话中,每次检查约需 5–6k 输入等效 token,而当缓存过期时会更多。
第三是信任。mod 是以你的权限运行的代码。Anthropic 的文档对此说得很清楚:一旦加载,mod 就可以读写你的文件、查看你发送的每一条提示,并消耗你的用量。此外,“mods aren’t sandboxed.”内置 mods 在你以 --safe-mode 启动 Claude Code 时也会继续运行。我自己写的或随 Claude Code 附带的 mods 我用着放心,但别人的代码我会先读一遍再安装。
好消息是,mods 可以修复,而其他工具不行。当监督者对某个会话来说只是噪音时,/supervisor off 就能把它关掉。因为这是我的 mod,我可以改变它的运行时机。
未来走向
定制 harness 并不保证对每位工程师都有好处。我添加的每一个 mod,都是我需要投入注意力的又一条信息。在我自己的一次会话中,我的 Next Steps Supervisor 将一个任务标记为“已解决”,但同时列出了两处不足和三条捷径。智能体很聪明,但远非完美,我的注意力也远非完美。
因此,我用来衡量 mods 有用性的标准很简单:它是否揭示了我会忽略的东西、让某个决策更容易,或者让我在不被更多输出分散注意力的情况下采取行动?如果没有,那它只是装点门面,而非有用的工具。
目前,构建一个 mod 的流程是这样的:我注意到自己在使用 Claude 时遇到的摩擦,描述我想要的 mod,然后 Claude 和我一起构建它。注意到摩擦仍然需要我个人的注意力。
下一步是让 harness 自己注意到摩擦。Claude Code 已经保存了我的会话记录。可以这样理解:一个后台进程通读这些记录,找出我不断纠正智能体或手动检查同一件事的地方,并为此建议一个 mod。然后它帮助我测试该 mod,并根据我的反馈进行改进。
对 AI 工程师来说,这是最好的结果:一个可塑的 harness,能根据真实使用情况提出自我改进的方法。Claude Mods 就是朝这个方向迈出的一步。
如果我在开头下的注是对的,几年后我们会谈论那些建立在 Claude Code、Codex 或某个尚不存在的 harness 之上的初创公司。
最后留给你一个问题,希望它的答案能为你提供实用价值:在使用 Claude Code 的过程中,你注意到过哪些摩擦,是这篇文章能启发你今天就用一个 mod 来解决的?
来源:Latent Space · latent.space