Claude Code:子代理的工作力度终于可以随时调节
十六。这就是我的 Claude Code 配置里多出来的 agent 文件数量:developer-low、developer-medium、reviewer-high、debugger-max,等等。十六份几乎一模一样的 agent 副本,是我用一个小 PowerShell 脚本制作出来的,原因只有一个:直到上周,我们还不能告诉 Claude:“启动这个 agent,但少思考一点。”这个设置被刻在文件里,就这样。好吧,从 2.1.292 版本开始,也就是 10 月 6 日发布的那个版本,这已经结束了。而且这还不是本周唯一的好消息!
终于每个机器人都有一个调节按钮了
子代理、努力程度:说的是什么?
Claude Code 是 Anthropic 的助手,它会直接在你的项目中编写代码,使用的是终端,也就是我们输入命令的那个窗口。任务很大的时候,它可以把任务拆开,交给子代理:其他 Claude,被启动去执行一项具体任务,各自拥有自己的记忆,最后带着结果回来。一个负责在代码里搜索,一个负责编写,一个负责检查。总之,就是一支小团队,只不过没人会去喝咖啡休息。
所谓努力程度,就是 Claude 在回答之前花多少时间思考,从 low(它会一路冲过去)到 max(它会掂量每一行)。投入更多努力,结果通常会更好,但也会更慢,还会消耗更多配额。用最大努力程度重命名二十个文件,有点像为了换台灯的灯泡而把大梯子都搬出来。
随时调节努力程度的按钮
到目前为止,子代理的努力程度都要在它的定义文件里一次性固定下来。我想要的是,一个审查员在进行小修正时少思考一点,遇到大工程时多思考一点。唯一的办法:每个努力程度对应一个文件。因此我有了十六份副本,每次修改原文件时都用脚本重新生成。能用是能用,但这种临时拼凑出来的东西,实在不是什么值得骄傲的玩意儿。
同一个 agent 的十六份副本,每个努力程度一份
2.1.292 版本为启动子代理的工具增加了一个 effort 参数。具体来说,你什么都不用配置:用法语提出要求,Claude 会把它传过去。
Lance un sous-agent en effort low pour renommer les fichiers de tests,
puis un autre en effort high pour relire le module de paiement.我还没确认代理的文件里写着 high 而请求里写着 low 时谁说了算,所以我先保留着我的十六份副本,等测试完再说。但我感觉下周我的配置就要突然瘦身了。而这正是我两天前谈到微软和 Meta 如何限制 Claude Code 时说的那种反应:需要思考时用大脑,做杂活时用小脑。现在,一句话就能搞定。
打瞌睡的守卫不再放行
第二个新功能,而且这个我更期待。Claude Code 有“hooks”:一些由你自己编写的小脚本,会在 Claude 执行某些操作之前或之后自动运行。我就有一个 hook,阻止它读取我的密码文件。Claude 想打开一个文件,hook 查看文件名,如果发现是敏感文件,就说不行。
问题在于 hook 自己崩溃时会发生什么。脚本没启动,运行时间太长,或者因为意外错误退出?Claude Code 会认为它什么也没说,然后操作照常进行。守卫在岗亭里睡着了,栏杆却一直开着。对于一个安全防护机制来说,这正好是我们不想要的结果!
崩溃的 hook 会阻止操作,而不是放行操作
从 2.1.295 版本,也就是 10月8日开始,可以在 hook 中加入 "onFailure": "block"。如果它没有正常响应,操作就会被阻止。在 Claude Code 的 settings.json 文件中,就是这样:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Read",
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/block-secrets.sh",
"onFailure": "block"
}
]
}
]
}
}同一周,Anthropic 还修复了两个让人背后发凉的 hook 漏洞。在 2.1.294 中,以自然语言指令写成的 hook,比如“阻止那些……的命令”,会放过本该阻止的东西。而在 2.1.296 中,一个拒绝某项操作的企业 hook 确实拒绝了它,却没有中断 Claude 的这一轮操作,Claude 还是继续往下跑。如果你把安全寄托在 hook 上,更新就不是可选项。
另外附送两点小甜头
2.1.295 也能告诉你的终端它现在是什么状态:正在工作、等待你的回答,或者已经完成。你需要一个支持这个新协议的终端,但只要终端支持,标签页就会显示出来。你要是像我一样,有一半时间会同时开着三个会话,这种细节就能避免你忘了某个 Claude 正老老实实地等着你回答问题,一等就是二十分钟。
三个会话,三个指示灯:终于知道哪个在等了
2.1.296 则可以让你逐个代理选择它什么时候总结自己的对话,好在记忆中腾出空间,这个过程叫作压缩。一个读取大量文件的子代理因此可以比主对话更早地清理一番,而不是在途中把自己憋死。这个设置叫作 autoCompactWindow,放在代理的文件里。
具体来说,你能得到什么
如果你用订阅版 Claude Code,你的额度每五个小时重置一次,而每个以最大努力启动来处理杂活的子代理,都会消耗掉你额度的一部分。对于无聊的任务要求 low 级别的努力,就能把更多额度留给真正的问题:那些你希望 Claude 代替你思考项目架构或棘手 bug 的时候。要是你按 token 付费,你的账单就会直接降下来。
如果你写过 hook 来保护某些东西,比如密码文件夹、生产数据库、一个不能碰的目录,那就今天给每一个都加上 "onFailure": "block"。这只要两分钟,等哪天你的脚本崩了,留在门外的就是 Claude,而不是你的防护措施失效。
如果你在多个会话之间来回切换,看看你的终端是否能在标签页中显示 Claude 的状态。你会少花点时间在不同窗口之间点来点去,只为了看看谁已经完成了。
如何用上这些功能
一条命令就能更新 Claude Code,另一条命令可以确认你至少是 2.1.296:
claude update
claude --version全部细节都在Claude Code 的版本日志里,内容是英文,而且很长:Anthropic 几乎每天都会发布一个版本。
对我来说,那一周是很久以来最有用的一周。没有什么重大公告,没有新模型,只有那些每天都被真正使用它的人所缺少的东西。那个在出错时阻止操作的 hook,说真的,这种设置本来从第一天起就该存在。
所以,Claude Code 团队,谢谢你们提供努力程度按钮。我的十六个代理副本向你们致意,它们还不知道自己马上就要被扔进垃圾桶了!
来源
本文在 Claude Code 的帮助下写成,经我校对和修正。




加入对话
您必须拥有一个账户才能评论这篇文章。注册免费,耗时不到一分钟。
目前没有评论。