📅 2026-10-13 场景还原:你给团队写了一个"提交 prompt 前检查敏感词"的 hook,结果脚本路径写错、启动失败——Claude 照常继续,检查形同虚设;或者你想让一个只做审查的子 agent 认真想,主会话却用的是省钱档。这周(10-06 至 10-09)的几个小版本刚好补了这些缺口。 前置:第 3 课(Subagents)、第 4 课(Hooks)、第 11 课(MCP)、第 17 课(插件与 Marketplace)。 来源:v2.1.292 解读 · v2.1.294–295 解读 · Havoptic 10 月版本表 说明:以下细节来自第三方版本解读(Classmethod 实测),官方 changelog 未在本次检索中逐条核对;用之前请先
claude --version并以/help、官方文档为准。
技巧 1(基础):claude plugin install --marketplace 一步装插件
解决的问题:以前要先
marketplace add再 install 两步;现在可以一条命令完成。
# <source> 可以是 owner/repo、git/https URL 或本地路径
claude plugin install <plugin-name> --marketplace <owner>/<repo>
# 例:从你们团队的内部市场装
claude plugin install review-kit --marketplace my-org/claude-plugins
要点:尚未添加的 marketplace 会被加入用户级设置,并走与 claude plugin marketplace add 相同的策略检查(受管环境下仍可能被拒)。装完用 /plugin list 核对。
📖 第三方解读 · 官方:Plugins
技巧 2(进阶):hooks 的 onFailure: "block"——失败就拦,别放行
解决的问题:hook 启动失败/超时/退出码异常时,默认可能"放行继续",安全类检查因此形同虚设。
{
"hooks": {
"UserPromptSubmit": [
{ "hooks": [
{ "type": "command", "command": "./check-policy.sh", "onFailure": "block" }
] }
]
}
}
实测提醒(来自解读文章):被拦截的那次运行进程退出码仍是 0,所以在脚本/CI 里别只看退出码,要检查输出。该文只验证了"意外退出码"场景;启动失败和超时按发布说明同样会被拦,但未单独实测。 📖 v2.1.294–295 解读 · 官方:Hooks
技巧 3(进阶):给子 agent 指定 effort
解决的问题:主会话省着用,但"审查/找 bug"类子 agent 需要想得更深。
v2.1.292 起 Agent 工具接受 effort 参数;据解读,官方文档称子 agent frontmatter 也有 effort 字段(文章未给示例,需自行查官方 subagents 文档确认写法)。
# 实测调用形态(来自解读文章)
Agent tool: subagent_type=general-purpose, effort=max, prompt="..."
实测结果:max 生效;ultra 报 InputValidationError;low/medium 被接受但子 agent 自述不明显。工具说明还提醒:仅当用户或 CLAUDE.md/skill 明确要求时才设置。所以把规则写进 CLAUDE.md:
## 子 agent 规则
- 代码审查类子 agent 使用 effort=max;检索/格式化类不要设置。
技巧 4(高阶):stdio MCP 默认协商 2026-07-28 协议 + 过载重试调参
解决的问题:升级后本地 MCP server 行为变了/连不上;529 过载时重试太急。
# 1) 本地(stdio)MCP 现在默认协商 2026-07-28 协议;出问题先退回旧协商排查
MCP_PROTOCOL_NEGOTIATION=legacy claude
# 2) 529 过载重试的基础退避(毫秒,具体取值请按需试;文章未给格式示例)
export CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS=2000
# 3) 无人值守重试模式下,429/529 的最长等待(v2.1.295)
export CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS=600000
注意:MCP_PROTOCOL_NEGOTIATION 据官方文档只在 v2 MCP 客户端运行时生效;协商到新协议的 channel server 无法投递 channel 消息,因此不会注册为 channel;不响应版本查询的 server 会被记住 7 天后走旧方式。新协议背景见 MCP 迁移指南(RC 阶段文本)。
今日实操(15 分钟)
- 给你项目里最关键的一个 hook(如危险命令检查)加上
"onFailure": "block"。 - 故意把脚本路径写错,提交一个 prompt。
- 验收:操作被拦截而不是放行;改回正确路径后恢复正常。再顺手跑一次
MCP_PROTOCOL_NEGOTIATION=legacy claude,对比你的 MCP server 在/mcp里的连接状态有无差异。
主页