METAL for iPhone

AI 新闻, 现在用 App 阅读。

下载 METAL, 每天发现最新 AI 报道。

在 App Store 下载

iPhone 应用 · 免费下载

也可在 iPhone 的 App Store 中搜索 METAL AI Magazine。

METAL

Anthropic 为 Claude Code 推出模组功能

Anthropic 推出模组(mods),开发者可用 TypeScript 函数改变 Claude Code 的行为和界面。模组以插件形式安装,不在沙箱中运行,拥有与 Claude Code 相同的设备权限。

Anthropic 为 Claude Code 推出模组功能

图片:@ClaudeDevs (X)(视频截图)

摘要

  • Anthropic 于 10 月 1 日正式推出 Claude Code 模组,开发者可以把函数挂到提示词、工具调用、权限请求和界面绘制上。
  • 模组以插件形式安装,也可以用自然语言让 Claude 编写,/diff 和 AGENTS.md 支持等内置功能也已改为模组。
  • 由于模组不经沙箱、以用户权限运行,在 Team 和 Enterprise 方案中会最先加载内置的 sec-default 防护模组。
You can now mod Claude Code

Anthropic 于美国时间 10 月 1 日为 Claude Code 正式开放模组(mods)。模组是一种扩展功能,只需几行 TypeScript 或 JavaScript 函数,就能改变 Claude Code 的工作方式和屏幕显示。它可以在提示词送达模型之前改写提示词,拦截、改写或重试工具调用,代为批准或拒绝权限请求,并在把工具输出交给 Claude 之前删去其中的密钥。模组装在插件里发布,因此在 CLI 和桌面应用中都用 /plugin 命令安装。Claude Code 2.1.287 及以上版本默认开启该功能。

据 Anthropic 官方博客介绍,Claude Code 每次调用工具、请求权限或绘制部分界面时都会发出一个事件。模组就是挂在这些事件上的函数,可以在事件之前或之后运行,也可以直接替代事件,还可以把事件前后一并包住。开发文档把这些选择归纳为观察、改写和代为回答三种。多个模组挂在同一事件上时,最先加载的模组最先看到事件、最后拿到结果。写在设置文件里的原有钩子只能针对每个事件启动一条 shell 命令或 HTTP 请求来决定放行还是拦截。METAL 曾报道 Claude Code 钩子如何用代码阻止跳过规则,而模组运行在 Claude Code 进程内部,因此还能承担那些钩子做不到的界面绘制和新增命令。

METAL 查看的 72 秒演示视频依次展示了官方指南中的三个示例模组。Token Weather 在输入框上方用天气的形式显示上下文窗口的占用程度。读完一个小文件后显示“晴”,占用 20 万 token 中的 1.92 万(10%);读完三天的日志和一个月的测量数据后变为“阵雨”,占用 10.73 万 token(54%)。Blast Radius 在 Claude 准备执行 rm -rf build 的瞬间拦下命令,列出将被删除的 9 个文件(498KB),并给出继续和取消按钮。Replay Theater 则在 Claude 重命名一个函数时,把横跨四个文件的六处修改逐步回放。据报道,Token Weather 只用了约 80 行代码。

开发者不必亲自写代码。在会话中请求制作一个在输入框上方显示当前 git 分支的模组,Claude 就会按照内置技能 plugin-authoring 编写模组;用户批准热重载后,该轮对话一结束模组便立即加载。Anthropic 将此描述为用 Claude Code 来改造 Claude Code。这样做出的模组只在当前会话中运行,若要在其他会话使用,需要移动文件夹并用 --plugin-dir 加载,或发布到插件市场。claude plugin validate 命令无需运行模组即可列出它挂接的事件和调用的 API,claude plugin test 命令则可以在没有会话、登录和网络的情况下运行自动化测试。

Claude Code 的基础功能也开始迁移为模组。/diff 界面和 AGENTS.md 支持已经改为模组,用户可以在 /plugin 中关闭它们或换成自己的版本。开发文档列出的内置模组共有六个,包括遥测和安全防护,其中四个的源代码已在 Claude Code 代码库中公开。Anthropic 在博客中表示,将把更多基础功能迁移为模组,让用户能把 Claude Code 精简为一个小内核,只加回自己需要的功能。

这项功能源于公开设计。9 月 3 日,Anthropic 的 Alice Poteat 在 Claude Code 的 GitHub 代码库发布了函数钩子(function hooks)提案,征求社区意见。她在 8 月撰写的设计文档借鉴了 Web 服务器框架 Koa 的中间件结构,所有钩子都接收 ($, e, next) 三个参数,并根据是否调用 next 来决定行为。Anthropic 在 9 月 9 日的更新中将产品命名为 Claude Mods,并通过一个环境变量开放了抢先体验。Claude Code 负责人 Boris Cherny 于 9 月 14 日在 X 上写道:“Claude Mods 正在落地”,并称“已经有人做出了在 Claude 里运行的俄罗斯方块模组”。这条帖子的浏览量超过 60 万次。

模组不在沙箱中运行。Anthropic 表示,模组拥有与 Claude Code 相同的设备访问权限,并建议只安装来源可信的模组。据开发文档介绍,模组可以读写用户账户能触及的所有文件、启动程序、读取环境变量中的 API 密钥,并以用户的订阅方案调用模型。它无法更改权限确认窗口本身,却可以在窗口弹出之前直接批准工具调用。据报道,像 Blast Radius 这样检查命令字符串的模组可能被别名、包装脚本或 $(...) 替换绕过,因此必须遵守的限制应通过权限规则或操作系统层面的控制来设定。Poteat 在 GitHub 讨论中表示:“限制插件能做什么不是我们的职责,那是组织管理员的工作。”她解释说,设计的要点在于让所有操作都经过 $ 对象,以便管理员审计、放行、拒绝和记录。

面向团队和企业的管控机制正建立在这个 $ 对象之上。在 Team 和 Enterprise 方案以及部署了托管设置的设备上,名为 sec-default 的内置模组会最先加载,阻止用户安装的模组覆盖管理员的拒绝规则,或触碰托管钩子、系统提示词和托管 MCP 服务器。根据组织管理文档,管理员只需一个 allowManagedModsOnly 选项,就能屏蔽组织自有模组以外的所有用户模组,也可以把自己的策略模组放在最前面,记录或拒绝其他模组的文件写入和进程启动。Anthropic 列举的团队用例包括显示构建状态的 CI/CD 面板、在命令触及生产环境配置前的确认步骤,以及记录所有模组调用的审计日志。METAL 曾报道 Claude Code 如何把团队配置打包成一个插件分发,模组沿用的正是同一条插件分发路径和同一套管理机制。

클로드 코드 조직 관리 문서의 모드 API 호출 표. 파일 읽기·쓰기, 프로그램 실행, 네트워크 요청, 환경 변수 읽기, 모델 호출, 프롬프트 제출 등 호출마다 모드가 할 수 있는 일을 정리했다

从 AI 工程师的角度看,这次发布的分量在于扩展点从外部移到了内部。技能、MCP 服务器和设置钩子都是在 Claude Code 外部传入指令或工具,而模组则把代码直接插进智能体的事件流中央。Claude Code 与其说是一个成品应用,不如说更像一个由插件组装而成的智能体运行时。这也意味着团队每引入一个模组,都要像做代码评审一样阅读 validate 输出中的 calls 一行。Anthropic 率先把自家的 /diff 拆成模组,表明自身功能也将走同一扇门,下一个考验是哪些功能最终会留在内核中。

评论