夜雨聆风学习资料网

ARTICLE · 1115468

你装的那个插件,能替你点「同意」

你装的那个插件,能替你点「同意」

QUOTE

权限弹窗是人类留在回路里的最后一道闸,现在它也可以被代码回答。

—— Sunwing

10 月 1 日,Anthropic 发布了 Claude Code 的 mods 功能:一些用 TypeScript 写的小函数,可以改变这个 AI 编程工具的行为和外观。一个 mod 能改写发给模型的提示词,能阻止、重写或重试一次工具调用,能批准或拒绝一次权限请求,还能在模型读到工具输出之前先把密钥抹掉。

这个功能本身不难理解,难理解的是它的权限模型:mods 不做沙箱隔离,运行时拥有和 Claude Code 完全相同的机器权限。官方原话是——把它当成你往电脑上装的任何代码来对待。

本文看点

01

一个几行的 TypeScript 函数,可以接管编程智能体的哪些环节

02

「不沙箱」三个字背后,是效率与安全的经典交换

03

加载顺序这个设计,比任何安全承诺都更值得细看

01

WHAT A MOD DOES

一个 mod 能做什么

Claude Code 的运行机制是事件驱动的:它每做一件事——调用工具、请求权限、绘制界面——都会发出一个事件。mod 就是挂在这些事件上的函数,可以在事件发生之前运行、之后运行、取而代之,或者前后包裹。

照官方文档的说法,一个函数可以改写提示词,在它到达模型之前;可以拦截一次工具调用,决定放行、改写还是重试;可以替你批准或拒绝权限请求;可以在模型读到工具输出之前,先把敏感信息删掉。此外还能改界面:编辑工具结果的展示方式、加按钮、加面板。

— 挂在事件上的函数,接管智能体的关键环节

几个官方示例把用途说得比定义更清楚。有的 mod 显示一个实时的上下文窗口用量面板;有的在你执行危险命令之前把它标红并要求确认——比如那种递归强制删除的命令;团队用的 mod 可以在旁边的面板里显示流水线状态,构建过了还是挂了一目了然;还有的 mod 专门做审计,先加载、记录其他所有 mod 的每一次调用。

最好玩的官方表态是:你可以让 Claude Code 给 Claude Code 写 mod。描述需求,它生成 TypeScript,装上,热重载,当场生效。开发一个个人工具的成本,降到了一句话。

02

NO SANDBOX

不沙箱,意味着什么

现在说那个让人不安的部分:mods 不沙箱,权限与 Claude Code 本身相同。

要理解这个选择,得先看 mods 被赋予的能力清单。它能读你的文件——这本来就是编程工具的基本盘;它能改写你的提示词——这意味着模型看到的内容可以被上游修改;它还能回答权限弹窗——这是整个体系里最敏感的一环。

— 功能与隔离,这里只能选一头

权限弹窗存在的意义,是让人类在关键动作前停留一下。一个恶意的或有缺陷的 mod 不需要任何漏洞利用技术,它只需要被安装——因为「代答权限」就是它的合法功能之一。安全研究者的评价很直接:把每一个第三方 mod 都当成「带着你的凭证运行的代码」来审查,因为它确实就是。

Anthropic 没有回避这个取舍。官方博客明确建议只从信任的来源安装 mod,就像安装任何本机代码一样。这个态度背后是一个工程判断:沙箱会把 mods 最有价值的那些能力——改提示词、拦工具调用、改界面——全部锁死。功能与隔离,这里只能选一头。

NOTE

便利和安全很少正面冲突,它们通常商量好了一起变贵。

03

LOAD ORDER

加载顺序,比承诺更可靠

个人用户的安全靠自觉,企业用户的安全靠设计。这次发布里最值得细看的机制是加载顺序。

规则是:多个 mod 挂同一个事件时,按加载顺序执行——先加载的 mod 最先看到事件,最后看到结果。这意味着排在最前面的 mod 拥有最终否决权,后面装的任何东西都绕不过它。

基于这个规则,Team 和 Enterprise 套餐里有一个内置的 sec-default 模块(security default 的缩写),永远第一个加载,阻止用户后来安装的 mod 做危险的事,比如覆盖权限拒绝规则。管理员也可以让自己的 mod 先加载,但文档特意提醒:如果要这么做,记得把 sec-default 加回列表,否则防护就丢了。

— 先加载的 mod,拥有最终否决权

这个设计的聪明之处在于,它不依赖任何人「记得做正确的事」。企业可以把审计 mod 排在最前,让它记录其余所有 mod 的每次调用;可以在工具链里内置「碰生产配置必须人工确认」的规则,并靠加载顺序保证它无法被绕过。

配套的管理项也有:管理员可以允许或封锁插件市场,可以把托管配置推送到员工机器上。换句话说,扩展的权力被纳入了现有的企业管理框架,而不是另起炉灶。

04

THREE RULES FOR YOU

个人开发者的三件事

如果你日常就在用 AI 编程工具,这件事对你有三个直接的可操作项。

第一,装任何 mod 之前先读源码。mods 以插件形式分发,源码可见是它的默认状态,也是你唯一的防线。一个只做界面美化的 mod 和一个能代答权限的 mod,审查标准不应该是同一个。

第二,把「代答权限」类的 mod 当成高危品。除非是自己写的、源码逐行看过的,否则不要让它出现在你的工具链里。可以先用低风险的场景练手,比如给输出加个脱敏层、给危险命令加个确认步骤。

— 装扩展之前,先读源码

第三,团队使用先配管理端再放开安装。先用管理员账号设置好插件市场的白名单,确认 sec-default 在加载列表的第一位,再允许成员安装自己的 mod。顺序反了,等于先开门再装锁。

还有一条容易被忽略:mods 的 API 还在快速迭代,第三方指南提示需要较新的 Claude Code 版本才能使用。写 mod 时依赖生成类型、保持函数小而独立,升级时预留重新生成的时间。

05

OFFICIAL FEATURES MOVING IN

一个信号:官方功能在搬家

这次发布还有一个不那么显眼但更重要的信息:Anthropic 正在把自己的内置功能迁移到 mod 体系上。

已经搬过去的包括斜杠差异对比功能——它现在就是一个官方 mod,你可以在插件管理里关掉它,或者用自己的实现替换。官方明确说,后续会有更多内置功能搬进这个体系,用户可以把 Claude Code 削成一个很小的核心,再按需加回自己要的部分。

— 官方功能搬家,是最硬的维护承诺

这个策略在扩展系统设计里有个经验法则:厂商自己不用的扩展 API,多半会腐化;厂商靠它承载自家功能的 API,必须活着。官方功能搬家,等于给第三方开发者吃了一颗定心丸——这套接口有长期的维护承诺,而且官方 mod 的源码和测试都公开,是最好的参考实现。

对整个 AI 编程工具赛道来说,这也是一个值得盯着的方向:编程智能体的竞争正在从「谁的模型更强」延伸到「谁的工作台更可定制」。工具的形态开始向使用者的习惯妥协,而不是相反。

∞

THE END

结语

mods 功能的发布,表面上是给 Claude Code 加了个插件机制,实际上是把「编程智能体该归谁管」这个问题摆上了台面。

模型决定它多聪明,mods 决定它按谁的规矩办事。个人可以定制自己的工作台,企业可以把安全策略焊死在加载顺序里,而所有这一切的前提,是每一个安装动作都被当成一次代码审查来对待。

给工具装扩展的时候,你交付的不只是权限,还有判断力。

END

我是 Sunwing,一个专门把热搜里的数字拆开看的人。

如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见。

相关学习资料