使用 Claude Code 的开发者通常会发现:有些会话能精准完成任务,而有些则在反复消耗 Token 后陷入僵局。Anthropic 团队的研究显示,无引导的尝试成功率仅为 33%。这种差异并非源于提示词的字面技巧,而在于你是否建立了一套围绕 AI Agent 的工程化协作模式。
本文整理了 Abnormal AI、incident.io 和 Trail of Bits 等团队在生产环境中使用 Claude Code 的核心模式,旨在提升复杂任务的交付可靠性。
规划驱动:对抗复合误差
在 AI 编码中,每一个未经引导的决定都潜藏风险。假设 AI 在单次决策中的准确率是 80%,对于一个涉及 20 个决策点的复杂功能,最终实现完全正确的概率仅为 $0.8^{20} \approx 1%$。
通过预先规划,你可以将这 20 个模糊决策转化为经过审阅的技术规范,使每一步的执行准确率逼近 100%。
标注循环工作流
在大规模开发中,最有效的规划方式是“标注循环”:
- 让 Claude 草拟一个
plan.md。 - 在编辑器中打开该文件,直接在对应的行添加批注(如:“这里改用 Drizzle ORM,不要写原生 SQL”、“接口应该是 PATCH 而非 PUT”)。
- 将带有批注的计划发回 Claude,并注明:“响应所有批注,但先不要开始实现。”
重复此循环直到消除所有歧义。这种方式能显著减少 AI 在编码中途走弯路的几率。
利用内置 Plan Mode
如果觉得手动标注太重,可以使用内置的 plan mode:
- 双击 Shift+Tab 进入规划模式。
- 在对话中迭代方案。
- 计划通过后,单击 Shift+Tab 切换回自动接受模式进行实现。
内置规划会持久化在 ~/.claude/plans/ 中,即使会话重启或触发压缩(Compaction),计划依然存在。
CLAUDE.md 的分层架构
CLAUDE.md 是 Claude Code 的持久指令集,但它并非无限容量。前沿模型在处理超过 150 条指令后,合规性会大幅下降。考虑到 Claude Code 的系统提示词已占用约 50 个额度,留给用户的空间其实只有 100 条左右。
渐进式披露模式
不要在根目录的 CLAUDE.md 中堆砌所有细节。更好的方案是:
- 根目录
CLAUDE.md:仅保留全局通用的核心规则(如:代码风格、基础测试命令)。 - 引用外部文档:通过路径指引 Claude,“在处理支付系统时,先阅读
docs/payment-architecture.md”。 - 多级配置文件:在特定子目录(如
src/api/或src/persistence/)放置局部的CLAUDE.md。Claude 仅在进入这些目录工作时才会加载对应指令,从而节省全局指令预算。
上下文主动管理
虽然 Claude Code 提供 200K 的上下文窗口,但实际的“性能甜点区”要小得多。
- 初始损耗:一个空的单体库会话在开始前就会消耗约 20K Token 用于加载系统提示和工具定义。
- 性能衰减:当窗口占用达到 20%-40% 时,模型输出质量就开始下降;达到 60% 时,注意力机制会变得显著迟钝。
- 压缩陷阱:自动压缩通常在 83.5% 触发,这是有损的。
“记录并清理”模式(Document & Clear)
当会话变沉重或模型开始胡言乱语时,不要指望 /compact。应采取以下步骤:
- 将当前进度、决策和剩余任务转储到一个临时 Markdown 文件中。
- 运行
/clear彻底重置会话。 - 让 Claude 读取该文件重新开始。
这种方式能确保 AI 始终在最清晰、最敏捷的上下文状态下工作。
使用 Hooks 建立确定性防线
CLAUDE.md 里的规则通常只有 70% 左右的遵循率。对于“禁止推送到 main 分支”或“禁止删除线上数据”这类高危操作,必须使用 Hooks 建立 100% 的硬性拦截。
- PreToolUse 拦截:如果退出码为 2,操作将被强制取消。可以用来拦截
rm -rf或危险的 git 操作。 - PostToolUse 自动化:在每次
Edit或Write工具运行后,自动触发 Prettier 格式化或 Lint 检查。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "prettier --write \"$CLAUDE_FILE_PATHS\""
}
]
}
]
}
}
TDD:AI 协作的最优策略
没有测试,Claude 只能靠自己的判断力来验证工作,而这种判断力会随着上下文的填满而劣化。测试提供了一个外部先知(External Oracle),它不随模型状态而改变。
推荐的 TDD 协作序列:
- 先写测试:要求 Claude 针对目标模块编写测试用例。
- 确认失败:运行测试,确保它们全部挂掉(Red)。
- 提交断点:手动提交这些失败的测试代码作为快照。
- 实现代码:让 Claude 开始编码,直到测试全部通过(Green)。
如果在这一步 Claude 试图修改测试用例来“作弊”,你可以通过 git diff 轻松识破并回滚。
经济性与模型选择
对于高频使用的开发者,API 计费模式可能非常昂贵(Sonnet 4.6 每日平均约 6-12 美元)。
- Max 订阅的优势:每月 100-200 美元的 Max 订阅通常能节省 90% 以上的成本。因为 Claude Code 超过 90% 的流量是缓存读取(Cache Reads),API 模式下的缓存费用累计极快。
- 模型混合策略:启用
opusplan模式。它使用推理能力更强的 Opus 4.6 进行规划,而用成本更低的 Sonnet 4.6 进行具体的代码生成,在质量与成本间取得平衡。
避坑指南
- 过度工程:Claude 倾向于编写额外的抽象层和辅助函数。建议在
CLAUDE.md中明确要求“优先使用最简单、最直接的实现方式”。 - 小众技术幻觉:对于它不熟悉的冷门框架,Claude 表现得非常自信但错误百出。在这种场景下,必须加强人工审核。
- 数据丢失风险:在允许 Claude 批量修改文件前,务必提交代码或建立备份。曾有案例显示,Claude 在处理音频项目时,将所有原始素材替换成了 AI 生成的占位符。
总结来说,使用 Claude Code 的核心是:在执行前通过规划进行强力约束,在执行中通过 Hooks 设置边界,在执行后通过测试进行闭环验证。
关于
关注我获取更多资讯