我用的是 Pro 订阅,平时主要用 Opus 5.5 的 medium effort。Fable 5.2 上线后我用它体验了一次,顺便对着 Anthropic 那篇选模型的文章,把 ~/.claude 下的设置、子代理和 CLAUDE.md 过了一遍。下面是改动和理由,配置可以直接抄。

主会话用 Opus 和默认 effort

文章的建议是日常工作从 Opus 5.5 的默认 effort(medium)开始,这和我平时的用法一致。Fable 5.2 每个 token 的价格是 Opus 的两倍,我把它留给大型重构、迁移和架构规划。

settings.json 里还留着一行全局的 effortLevel: "high",这是 Opus 5 时期写下的。官方文档说 Opus 5.5 的 medium 已经相当于 Opus 5 的 high,所以我删掉了这一行,让每个模型用自己的默认值。

任务做不好时,我按文章给的顺序处理:先确认模型有办法自己验证结果,比如跑测试或构建;再把 effort 升一档;最后才换更大的模型。

便宜的活交给小模型子代理

子代理在自己的上下文里跑,按它所用模型的价格计费。没有指定模型的子代理会继承主会话的模型,内置的 Explore 也跟着主会话走。我做了两处改动。

第一处是给没指定模型的子代理设一个默认值:

~/.claude/settings.json
{
"env": {
"CLAUDE_CODE_SUBAGENT_MODEL": "sonnet"
}
}

第二处是定义一个同名的 Explore 覆盖内置版本,让搜索跑在 Haiku 上:

~/.claude/agents/Explore.md
---
name: Explore
description: 只读搜索代理,用于大范围查找文件和代码位置,只带回结论。
disallowedTools: Edit, Write, NotebookEdit, Agent
model: haiku
omitClaudeMd: true
---

分工的依据是出错的代价。找文件、读日志、汇总文档这类活,结果错了很容易看出来,可以交给 Haiku。需要判断的决定都留在主会话。

子代理模型effort做什么
Explorehaiku默认在代码库里搜索定位
researcherhaikumedium查文档和网页,只带回结论
codersonnetmedium按已定的方案实现
revieweropusmedium对照计划审查改动

查资料的代理要真的只读

我的 researcher 原来只禁了 Edit 和 Write,「不执行有副作用的命令」只写在提示词里。它能联网,也能跑 Bash,网页上一句「运行这条命令」就可能被照做。

现在 disallowedTools 里加上了 Bash 和 PowerShell,本地文件它用 Read、Grep、Glob 读。让它去找技能、插件或 MCP 服务器时,它只汇报来源、维护者、最近更新时间和所需权限,装不装由我决定。

运行中的会话不读新配置

改完 chrome-devtools-mcp 插件的启动参数后,我在当前会话里重启了它的服务进程,拉起来的仍然是旧参数。插件配置在会话启动时读入,之后不再重读。要在不新开会话的前提下验证,只能按新参数单独启动一次服务,向它发 MCP 请求看结果。

这次给它加了两个参数。chrome-devtools-mcp@latest 让 npx 每次取最新版。--ignoreDefaultChromeArg=about:blank 去掉 Puppeteer 启动 Chrome 时默认追加的空白页。

什么时候结束一个会话

每一轮请求都会重发整段对话。平时便宜是因为前面的内容命中了缓存,缓存读取的价格约为正常输入的二十分之一。缓存过期后再发消息,整段对话要重新写入缓存,这一轮会很贵。文章给的数字是:15 万 token 的上下文,每轮缓存读取约 0.03 美元;2 万 token 时约 0.004 美元。

我以前记的教训是「任务结束后不要再发消息」,这个结论偏严了。刚做完就追问是便宜的,也应该留在原会话。满足下面任一条我才新开:

  • 新请求不依赖这个会话里查到或决定的东西。
  • 交付物已完成并验证,结论已写进代码、文档或记忆。
  • 隔了很久再回来,而且上下文已经很大。
  • 要换模型。缓存按模型分开,换模型等于整段重写。
  • 模型开始重复做过的事,或者引用已经过时的结论。

每个任务收尾时,我把现状和下一步写进项目文档,新会话读一下就能接上。

边界与取舍

  • Haiku 读错搜索结果时,主模型会打开错的文件,白花一轮 token。仓库很大或命名混乱时,把 Explore 换成 Sonnet 更稳。
  • @latest 不锁版本,新版发布后会直接运行在带登录态的调试浏览器上。
  • 这套配置是按 Pro 的额度定的。额度宽裕时,让子代理继承主模型也说得过去。
  • /doctor 会检查设置和 CLAUDE.md 并给出裁剪建议,/doctor prompt-audit 会找出为旧模型写的指令和引用了不存在文件的内容。两者都要手动运行。