Phase 5 · 编码 Agent 实战

Claude Code 最佳实践 - Claude Code 文档

其他·2026/7/21·7 阅读

Claude Code 最佳实践 - Claude Code 文档

来源 (中文翻译版): https://code.claude.com/docs/en/best-practices 抓取时间: 2026-07-21 16:21:34


本页内容

  • 给 Claude 验证工作的方法
  • 先探索,再计划,然后编码
  • 在提示中提供特定上下文
    • 提供丰富内容
  • 配置你的环境
    • 编写有效的 CLAUDE.md
    • 配置权限
    • 使用 CLI 工具
    • 连接 MCP 服务器
    • 设置 hooks
    • 创建技能
    • 创建自定义子智能体
    • 安装插件
  • 有效沟通
    • 询问代码库问题
    • 让 Claude 采访你
  • 管理会话
    • 尽早并频繁地纠正方向
    • 积极管理上下文
    • 使用子智能体进行调查
    • 使用检查点回退
    • 恢复对话
  • 自动化和扩展
    • 运行非交互模式
    • 运行多个 Claude 会话
    • 跨文件扇出
    • 使用自动模式自主运行
    • 添加对抗性审查步骤
  • 避免常见失败模式
  • 培养直觉
  • 相关资源

使用 Claude Code

Claude Code 最佳实践

复制页面复制页面 从配置环境到跨并行会话扩展,充分利用 Claude Code 的技巧和模式。 复制页面复制页面 Claude Code 是一个智能体编码环境。与回答问题并等待的聊天机器人不同,Claude Code 可以读取你的文件、运行命令、进行更改,并在你观察、重定向或完全离开时自主解决问题。这改变了你的工作方式。你不再自己编写代码并让 Claude 审查它,而是描述你想要的,Claude 会弄清楚如何构建它。Claude 会探索、计划和实施。但这种自主性仍然伴随着学习曲线。Claude 在你需要理解的某些约束下工作。本指南涵盖了在 Anthropic 内部团队和跨各种代码库、语言和环境中使用 Claude Code 的工程师证明有效的模式。有关智能体循环如何在底层工作,请参阅 Claude Code 如何工作


大多数最佳实践都基于一个约束:Claude 的上下文窗口很快就会填满,性能会随着填满而下降。Claude 的上下文窗口保存你的整个对话,包括每条消息、Claude 读取的每个文件和每个命令输出。然而,这可能会很快填满。单个调试会话或代码库探索可能会生成和消耗数万个 token。这很重要,因为大语言模型的性能会随着上下文填满而下降。当上下文窗口变满时,Claude 可能会开始"忘记"早期指令或犯更多错误。上下文窗口是最重要的管理资源。要了解会话在实践中如何填满,观看交互式演练,了解启动时加载的内容以及每个文件读取的成本。使用自定义状态行持续跟踪上下文使用情况,并参阅减少 token 使用了解减少 token 使用的策略。


给 Claude 验证工作的方法 给 Claude 一个可以运行的检查:测试、构建、要比较的截图。这是你观看的会话和你可以走开的会话之间的区别。 当工作看起来完成时,Claude 会停止。没有可以运行的检查,"看起来完成"是唯一可用的信号,你就变成了验证循环:每个错误都等着你注意到它。给 Claude 一些产生通过或失败信号的东西,循环就会自动闭合。Claude 完成工作、运行检查、读取结果并迭代,直到检查通过。检查可以是任何返回 Claude 可以在对话中读取的信号的东西:测试套件、构建退出代码、linter、将输出与 fixture 进行比较的脚本,或与设计进行比较的浏览器截图

策略之前之后
提供验证标准"实现一个验证电子邮件地址的函数""编写一个 validateEmail 函数。示例测试用例:user@example.com 为 true,无效为 false,user@.com 为 false。实现后运行测试"
视觉验证 UI 更改"让仪表板看起来更好""[粘贴截图] 实现这个设计。截取结果的截图并将其与原始截图进行比较。列出差异并修复它们"
解决根本原因,而不是症状"构建失败""构建失败并出现此错误:[粘贴错误]。修复它并验证构建成功。解决根本原因,不要抑制错误"
一旦检查存在,决定它如何严格地门控停止:
  • 在一个提示中:让 Claude 在同一条消息中运行检查并迭代,如上表所示。
  • 跨会话:将检查设置为 /goal 条件。一个单独的评估器在每轮之后重新检查它,Claude 会继续工作,直到满足条件。
  • 作为确定性门控Stop hook 将你的检查作为脚本运行,并阻止回合结束,直到通过。Claude Code 会覆盖 hook 并在连续 8 次阻止后结束回合。
  • 通过第二意见验证子智能体动态工作流,检查自己的发现,让一个新模型尝试反驳结果,所以做工作的智能体不是评分的智能体。

每个步骤都以设置换取注意力。提示版本适用于今天的任何任务。/goal 和 Stop hook 版本让无人值守的运行正确完成而不需要你。让 Claude 显示证据而不是断言成功:测试输出、它运行的命令和返回的内容,或结果的截图。审查证据比自己重新运行验证更快,并且适用于你没有观看的会话。


先探索,再计划,然后编码 将研究和计划与实施分开,以避免解决错误的问题。 让 Claude 直接跳到编码可能会产生解决错误问题的代码。使用计划模式将探索与执行分开。推荐的工作流有四个阶段: 1 探索 进入计划模式。Claude 读取文件并回答问题而不进行更改。 claude (plan mode)

read /src/auth and understand how we handle sessions and login.
also look at how we manage environment variables for secrets.

2 计划 让 Claude 创建详细的实施计划。 claude (plan mode)

I want to add Google OAuth. What files need to change?
What's the session flow? Create a plan.

Ctrl+G 在文本编辑器中打开计划,以便在 Claude 继续之前直接编辑。 3 实施 退出计划模式,让 Claude 编码,根据其计划进行验证。 claude (default mode)

implement the OAuth flow from your plan. write tests for the
callback handler, run the test suite and fix any failures.

4 提交 让 Claude 用描述性消息提交并创建 PR。 claude (default mode)

commit with a descriptive message and open a PR

计划模式很有用,但也增加了开销。对于范围明确且修复很小的任务(如修复拼写错误、添加日志行或重命名变量),直接让 Claude 去做。当你不确定方法、更改修改多个文件或你不熟悉正在修改的代码时,计划最有用。如果你可以用一句话描述差异,跳过计划。


在提示中提供特定上下文 你的指令越精确,你需要的纠正就越少。 Claude 可以推断意图,但它无法读懂你的想法。引用特定文件、提及约束、指向示例模式。

策略之前之后
限定任务范围。 指定哪个文件、什么场景以及测试偏好。"为 foo.py 添加测试""为 foo.py 编写一个测试,涵盖用户登出的边缘情况。避免模拟。"
指向来源。 直接让 Claude 指向可以回答问题的来源。"为什么 ExecutionFactory 的 API 这么奇怪?""查看 ExecutionFactory 的 git 历史并总结其 API 是如何形成的"
参考现有模式。 让 Claude 指向代码库中的模式。"添加一个日历小部件""查看主页上现有小部件的实现方式以了解模式。HotDogWidget.php 是一个很好的例子。遵循该模式实现一个新的日历小部件,让用户可以选择月份并向前/向后翻页以选择年份。从头开始构建,不使用代码库中已使用的库之外的库。"
描述症状。 提供症状、可能的位置以及"修复"看起来像什么。"修复登录 bug""用户报告会话超时后登录失败。检查 src/auth/ 中的身份验证流程,特别是 token 刷新。编写一个重现该问题的失败测试,然后修复它"
当你在探索且有能力纠正方向时,模糊的提示可能很有用。像 "你会在这个文件中改进什么?" 这样的提示可以发现你可能没有想到要问的事情。

提供丰富内容 使用 @ 引用文件、粘贴截图/图像,或直接管道数据。 你可以通过多种方式向 Claude 提供丰富的数据:

  • 使用 @ 引用文件 而不是描述代码在哪里。Claude 在响应之前读取文件。
  • 直接粘贴图像。将图像复制/粘贴或拖放到提示中。
  • 提供 URL 用于文档和 API 参考。使用 /permissions 允许常用域名。
  • 管道数据 通过运行 cat error.log | claude 直接发送文件内容。
  • 让 Claude 获取它需要的东西。告诉 Claude 使用 Bash 命令、MCP 工具或通过读取文件自行提取上下文。

配置你的环境 几个设置步骤可以让 Claude Code 在所有会话中显著更有效。有关扩展功能及其使用时间的完整概述,请参阅扩展 Claude Code

编写有效的 CLAUDE.md 运行 /init 根据你当前的项目结构生成入门 CLAUDE.md 文件,然后随着时间的推移进行优化。 CLAUDE.md 是一个特殊文件,Claude 在每次对话开始时读取它。包括 Bash 命令、代码风格和工作流规则。这为 Claude 提供了无法仅从代码推断的持久上下文。/init 命令分析你的代码库以检测构建系统、测试框架和代码模式,为你提供坚实的优化基础。CLAUDE.md 文件没有必需的格式,但保持简短和人类可读。例如: CLAUDE.md

# Code style
- Use ES modules (import/export) syntax, not CommonJS (require)
- Destructure imports when possible (eg. import { foo } from 'bar')

# Workflow
- Be sure to typecheck when you're done making a series of code changes
- Prefer running single tests, and not the whole test suite, for performance

运行 /context 确认 Claude 已加载该文件。CLAUDE.md 每次会话都加载,所以只包含广泛适用的东西。对于仅在某些时候相关的领域知识或工作流,请使用技能代替。Claude 会按需加载它们,而不会膨胀每次对话。保持简洁。对于每一行,问:"删除这会导致 Claude 犯错吗?" 如果不会,就剪掉它。臃肿的 CLAUDE.md 文件会导致 Claude 忽略你的实际指令!

✅ 包含❌ 排除
Claude 无法猜测的 Bash 命令Claude 通过阅读代码可以弄清楚的任何事情
与默认值不同的代码风格规则Claude 已经知道的标准语言约定
测试说明和首选测试运行器详细的 API 文档(改为链接到文档)
存储库礼仪(分支命名、PR 约定)经常变化的信息
项目特定的架构决策冗长的解释或教程
开发者环境怪癖(必需的环境变量)代码库的逐文件描述
常见陷阱或不明显的行为不言而喻的实践,如"编写干净的代码"
如果尽管有规则反对,Claude 仍然继续做你不想要的事情,文件可能太长,规则正在丢失。如果 Claude 问你 CLAUDE.md 中已回答的问题,措辞可能不明确。像对待代码一样对待 CLAUDE.md:当出现问题时审查它,定期修剪它,并通过观察 Claude 的行为是否实际改变来测试更改。你可以通过添加强调(例如 "IMPORTANT" 或 "YOU MUST")来调整指令以提高依从性。将 CLAUDE.md 签入 git,以便你的团队可以贡献。随着时间的推移,该文件的价值会累积。CLAUDE.md 文件可以使用 @path/to/import 语法导入其他文件:
CLAUDE.md
See @README.md for project overview and @package.json for available npm commands.

# Additional Instructions
- Git workflow: @docs/git-instructions.md
- Personal overrides: @~/.claude/my-project-instructions.md

你可以将 CLAUDE.md 文件放在几个位置:

  • 主文件夹 (~/.claude/CLAUDE.md): 适用于所有 Claude 会话
  • 项目根目录 (./CLAUDE.md): 签入 git 与你的团队共享
  • 项目根目录 (./CLAUDE.local.md): 个人项目特定的笔记;将此文件添加到你的 .gitignore 中,这样它就不会与你的团队共享
  • 父目录: 对于 monorepo 很有用,其中 root/CLAUDE.mdroot/foo/CLAUDE.md 都会自动引入
  • 子目录: 当 Claude 读取这些目录中的文件时,会按需引入子 CLAUDE.md 文件

配置权限 使用自动模式让分类器处理批准,/permissions 允许特定命令,或 /sandbox 进行 OS 级隔离。每一个都减少了中断,同时让你保持控制。 默认情况下,Claude Code 请求对可能修改你系统的操作的权限:文件写入、Bash 命令、MCP 工具等。这是安全的但很繁琐。在第十次批准之后,你不再真正审查,你只是点击通过。有三种方法可以减少这些中断:

  • 自动模式: 一个单独的分类器模型审查命令并仅阻止看起来有风险的内容:范围升级、未知基础设施或敌对内容驱动的操作。当你信任任务的一般方向但不想点击每个步骤时最好
  • 权限允许列表: 允许你知道安全的特定工具,如 npm run lintgit commit
  • 沙盒: 启用 OS 级隔离,限制文件系统和网络访问,允许 Claude 在定义的边界内更自由地工作

阅读更多关于权限模式权限规则沙盒

使用 CLI 工具 让 Claude Code 在与外部服务交互时使用 CLI 工具,如 ghawsgcloudsentry-cli。 CLI 工具是与外部服务交互的最具上下文效率的方式。如果你使用 GitHub,安装 gh CLI。Claude 知道如何使用它创建问题、打开拉取请求和阅读评论。没有 gh,Claude 仍然可以使用 GitHub API,但未经身份验证的请求经常达到速率限制。Claude 在学习它不知道的 CLI 工具方面也很有效。尝试像 Use 'foo-cli-tool --help' to learn about foo tool, then use it to solve A, B, C. 这样的提示。

连接 MCP 服务器 运行 claude mcp add 连接外部工具,如 Notion、Figma 或你的数据库。 使用 MCP 服务器,你可以要求 Claude 从问题跟踪器实施功能、查询数据库、分析监控数据、集成来自 Figma 的设计并自动化工作流。

设置 hooks 使用 hooks 处理必须每次零例外发生的操作。 Hooks 在 Claude 工作流的特定点自动运行脚本。与建议性的 CLAUDE.md 指令不同,hooks 是确定性的,保证操作发生。Claude 可以为你编写 hooks。尝试像 "Write a hook that runs eslint after every file edit""Write a hook that blocks writes to the migrations folder." 这样的提示。直接编辑 .claude/settings.json 手动配置 hooks,并运行 /hooks 浏览配置的内容。

创建技能 在 .claude/skills/ 中创建 SKILL.md 文件,为 Claude 提供领域知识和可重用工作流。 技能 使用特定于你的项目、团队或领域的信息扩展 Claude 的知识。Claude 在相关时自动应用它们,或者你可以使用 /skill-name 直接调用它们。通过向 .claude/skills/ 添加带有 SKILL.md 的目录来创建技能: .claude/skills/api-conventions/SKILL.md

---
name: api-conventions
description: REST API design conventions for our services
---
# API Conventions
- Use kebab-case for URL paths
- Use camelCase for JSON properties
- Always include pagination for list endpoints
- Version APIs in the URL path (/v1/, /v2/)

技能还可以定义你直接调用的可重复工作流: .claude/skills/fix-issue/SKILL.md

---
name: fix-issue
description: Fix a GitHub issue
disable-model-invocation: true
---
Analyze and fix the GitHub issue: $ARGUMENTS.

1. Use `gh issue view` to get the issue details
2. Understand the problem described in the issue
3. Search the codebase for relevant files
4. Implement the necessary changes to fix the issue
5. Write and run tests to verify the fix
6. Ensure code passes linting and type checking
7. Create a descriptive commit message
8. Push and create a PR

运行 /fix-issue 1234 调用它。对于具有你想要手动触发的副作用的工作流,使用 disable-model-invocation: true

创建自定义子智能体 在 .claude/agents/ 中定义专门的助手,Claude 可以委托它们执行隔离的任务。 子智能体 在自己的上下文中运行,拥有自己的允许工具集。它们对于读取许多文件或需要专门注意力而不混乱你的主要对话的任务很有用。 .claude/agents/security-reviewer.md

---
name: security-reviewer
description: Reviews code for security vulnerabilities
tools: Read, Grep, Glob, Bash
model: opus
---
You are a senior security engineer. Review code for:
- Injection vulnerabilities (SQL, XSS, command injection)
- Authentication and authorization flaws
- Secrets or credentials in code
- Insecure data handling

Provide specific line references and suggested fixes.

明确告诉 Claude 使用子智能体:"Use a subagent to review this code for security issues."

安装插件 运行 /plugin 浏览市场。插件无需配置即可添加技能、工具和集成。 插件 将技能、hooks、子智能体和 MCP 服务器捆绑到一个来自社区和 Anthropic 的可安装单元中。如果你使用类型化语言,安装一个代码智能插件,为 Claude 提供精确的符号导航和编辑后的自动错误检测。有关在技能、子智能体、hooks 和 MCP 之间选择的指导,请参阅扩展 Claude Code


有效沟通 你与 Claude Code 沟通的方式会显著影响结果的质量。

询问代码库问题 向 Claude 询问你会向高级工程师询问的问题。 在入职新代码库时,使用 Claude Code 进行学习和探索。你可以向 Claude 询问你会向其他工程师询问的同类问题:

  • 日志记录是如何工作的?
  • 如何创建新的 API 端点?
  • foo.rs 第 134 行的 async move { ... } 做什么?
  • CustomerOnboardingFlowImpl 处理哪些边缘情况?
  • 为什么这段代码在第 333 行调用 foo() 而不是 bar()

以这种方式使用 Claude Code 是一种有效的入职工作流,缩短了上手时间并减少了其他工程师的负担。不需要特殊的提示:直接问问题。

让 Claude 采访你 对于更大的功能,让 Claude 先采访你。从最小提示开始,让 Claude 使用 AskUserQuestion 工具采访你。 Claude 会询问你可能还没有考虑的事情,包括技术实施、UI/UX、边缘情况和权衡。在发送提示之前用你的功能替换 [brief description]

I want to build [brief description]. Interview me in detail using the AskUserQuestion tool.

Ask about technical implementation, UI/UX, edge cases, concerns, and tradeoffs. Don't ask obvious questions, dig into the hard parts I might not have considered.

Keep interviewing until we've covered everything, then write a complete spec to SPEC.md.

一旦规范完成,开始一个新会话来执行它。新会话有完全专注于实施的干净上下文,并且你有书面规范可以参考。最有用的规范是自包含的:它们命名涉及的文件和接口,说明什么不在范围内,并以端到端验证步骤结束,证明功能有效。花在使规范精确上的时间比花在观察实施上的时间回报更多。


管理会话 对话是持久且可逆的。善用这一点!

尽早并频繁地纠正方向 一旦你注意到 Claude 偏离轨道,就立即纠正它。 最好的结果来自紧密的反馈循环。虽然 Claude 偶尔会在第一次尝试时完美解决问题,但快速纠正它通常会更快产生更好的解决方案。

  • Esc: 用 Esc 键停止 Claude 的中途操作。上下文被保留,所以你可以重定向。
  • Esc + Esc/rewind: 按 Esc 两次或运行 /rewind 打开回退菜单并恢复以前的对话和代码状态,或从选定消息开始总结。
  • "Undo that": 让 Claude 恢复其更改。
  • /clear: 在不相关的任务之间重置上下文。带有不相关上下文的长会话会降低性能。

如果你在一次会话中对同一问题纠正了 Claude 两次以上,那么上下文就充满了失败的方法。运行 /clear 并使用包含你所学内容的更具体提示重新开始。一个带有更好提示的干净会话几乎总是胜过一个带有累积纠正的长会话。

积极管理上下文 在不相关的任务之间运行 /clear 以重置上下文。 当你接近上下文限制时,Claude Code 会自动压缩对话历史,这会保留重要的代码和决策,同时释放空间。在长会话期间,Claude 的上下文窗口可能会充满不相关的对话、文件内容和命令。这可能会降低性能,有时会分散 Claude 的注意力。

  • 在任务之间频繁使用 /clear 以完全重置上下文窗口
  • 当自动压缩触发时,Claude 总结最重要的内容,包括代码模式、文件状态和关键决策
  • 为了更多控制,运行 /compact <instructions>,如 /compact Focus on the API changes
  • 要仅压缩部分对话,使用 Esc + Esc/rewind,选择一个消息检查点,并选择 从这里开始总结总结到这里。第一个压缩从该点开始的消息,同时保持较早的上下文不变;第二个压缩较早的消息,同时保持最近的消息完整。请参阅恢复与总结
  • 在 CLAUDE.md 中使用像 "When compacting, always preserve the full list of modified files and any test commands" 这样的指令自定义压缩行为,以确保关键上下文在总结中幸存
  • 对于不需要留在上下文中的快速问题,使用 /btw。答案出现在可关闭的覆盖层中,永远不会进入对话历史,所以你可以在不增加上下文的情况下检查细节。

使用子智能体进行调查 用 "use subagents to investigate X" 委托研究。它们在单独的上下文中探索,保持你的主要对话干净以进行实施。 由于上下文是你的基本约束,子智能体是可用的最强大工具之一。当 Claude 研究代码库时,它会读取大量文件,所有这些都消耗你的上下文。子智能体在单独的上下文窗口中运行并返回总结:

Use subagents to investigate how our authentication system handles token
refresh, and whether we have any existing OAuth utilities I should reuse.

子智能体探索代码库,读取相关文件,并返回发现结果,所有这些都不会混乱你的主要对话。你也可以在 Claude 实现某些东西后使用子智能体进行验证:

use a subagent to review this code for edge cases

使用检查点回退 你发送的每个提示都会创建一个检查点。你可以将对话、代码或两者恢复到任何以前的检查点。 Claude 会在每次更改之前自动快照文件,以便检查点可以恢复它们。双击 Escape 或运行 /rewind 打开回退菜单。你可以仅恢复对话、仅恢复代码、恢复两者或从选定消息开始总结。有关详细信息,请参阅检查点。你可以告诉 Claude 尝试一些有风险的事情,而不是仔细计划每一步。如果它不起作用,回退并尝试不同的方法。检查点与对话一起保存,所以你可以关闭终端,稍后恢复会话,仍然可以回退。 检查点仅跟踪通过 Claude 的文件编辑工具进行的更改。通过 Bash 命令或外部进程进行的更改不会被捕获。这不是 git 的替代品。

恢复对话 用 /rename 命名会话并像对待分支一样对待它们:每个工作流都获得自己的持久上下文。 Claude Code 在本地保存对话,所以当任务跨越多个会话时,你不必重新解释上下文。运行 claude --continue 继续最近的会话,或 claude --resume 从列表中选择。给会话一个描述性的名称,如 oauth-migration,以便你以后可以找到它们。有关完整的恢复、分支和命名控制集,请参阅管理会话


自动化和扩展 一旦你对一个 Claude 有效,通过并行会话、非交互模式和扇出模式倍增你的输出。到目前为止,一切都假设一个人、一个 Claude 和一个对话。但是 Claude Code 可以水平扩展。本节中的技术展示了你如何可以完成更多工作。

运行非交互模式 在 CI、pre-commit hooks 或脚本中使用 claude -p "prompt"。添加 --output-format stream-json --verbose 用于流式 JSON 输出。 使用 claude -p "your prompt",你可以非交互式地运行 Claude,没有交互式提示。除非你传递 --no-session-persistence,否则运行仍然会创建可恢复的会话。非交互模式是你将 Claude 集成到 CI 管道、pre-commit hooks 或任何自动化工作流的方式。输出格式让你可以通过编程方式解析结果:纯文本、JSON 或流式 JSON。

# One-off queries
claude -p "Explain what this project does"

# Structured output for scripts
claude -p "List all API endpoints" --output-format json

# Streaming for real-time processing
claude -p "Analyze this log file" --output-format stream-json --verbose

第一个命令打印纯文本。json 格式返回带有 result 字段的单个 JSON 对象。stream-json 格式每行打印一个 JSON 对象,从 init 事件开始。

运行多个 Claude 会话 并行运行多个 Claude 会话以加速开发、运行隔离实验或启动复杂的工作流。 选择适合你想要自己做多少协调的并行方法:

  • Worktrees: 在隔离的 git 检查点中运行单独的 CLI 会话,这样编辑不会冲突
  • 桌面应用: 可视化管理多个本地会话,每个会话在自己的 worktree 中
  • Web 上的 Claude Code: 在隔离 VM 中运行 Anthropic 管理的云基础设施上的会话
  • 智能体团队: 具有共享任务、消息传递和团队负责人的多个会话的自动化协调

除了并行化工作之外,多个会话还支持以质量为中心的工作流。新鲜的上下文改善了代码审查,因为 Claude 不会偏向它刚刚编写的代码。例如,使用编写器/审查器模式:

会话 A(编写器)会话 B(审查器)
Implement a rate limiter for our API endpoints
Review the rate limiter implementation in @src/middleware/rateLimiter.ts. Look for edge cases, race conditions, and consistency with our existing middleware patterns.
Here's the review feedback: [Session B output]. Address these issues.
你可以用测试做类似的事情:让一个 Claude 编写测试,然后另一个编写代码来通过它们。

跨文件扇出 循环调用每个任务的 claude -p。使用 --allowedTools 限定批量操作的权限范围。 对于大型迁移或分析,你可以跨许多并行 Claude 调用分配工作: 1 生成任务列表 让 Claude 列出所有需要迁移的文件(例如,list all 2,000 Python files that need migrating) 2 编写脚本来循环遍历列表

for file in $(cat files.txt); do
  claude -p "Migrate $file from React to Vue. Return OK or FAIL." \
    --allowedTools "Edit,Bash(git commit *)"
done

3 在几个文件上测试,然后大规模运行 根据前 2-3 个文件出问题的地方优化你的提示,然后在完整集合上运行。--allowedTools 标志限制了 Claude 可以做的事情,这在你无人值守运行时很重要。 你也可以将 Claude 集成到现有的数据/处理管道中:

claude -p "<your prompt>" --output-format json | your_command

在开发期间使用 --verbose 进行调试,并在生产中关闭它。

使用自动模式自主运行 对于带有后台安全检查的不间断执行,使用自动模式。分类器模型在命令运行之前审查它们,阻止范围升级、未知基础设施和敌对内容驱动的操作,同时让日常工作无需提示即可继续。

claude --permission-mode auto -p "fix all lint errors"

对于带有 -p 标志的非交互式运行,如果分类器重复阻止操作,自动模式会中止,因为没有用户可以回退。有关阈值,请参阅当自动模式回退时

添加对抗性审查步骤 在将任务视为完成之前,让子智能体在新鲜上下文中审查差异并报告差距。 Claude 无人值守工作的时间越长,在你将工作视为完成之前进行独立检查就越重要。在新鲜的子智能体上下文中运行的审查器只看到差异和你给它的标准,而不是产生变更的推理,所以它根据自己的条件评估结果。对于正确性检查,运行捆绑的 /code-review 技能,它在新鲜子智能体中审查当前差异中的错误并将发现返回会话。要改为根据你的计划检查差异,请自己编写审查提示。命名要检查的工作、要检查的计划以及什么算作发现:

Use a subagent to review the rate limiter diff against PLAN.md. Check that
every requirement is implemented, the listed edge cases have tests, and
nothing outside the task's scope changed. Report gaps, not style preferences.

因为审查器作为子智能体运行,实施会话直接接收差距并可以修复它们并重新审查,而无需你在窗口之间复制发现。对于更长的自主运行,智能体团队可以在许多任务中保持这个循环,同时你抽查记录的发现。 被提示寻找差距的审查器通常会报告一些,即使工作是合理的,因为这是它被要求做的事情。追求每个发现会导致过度工程:额外的抽象层、防御性代码和针对不可能发生的情况的测试。告诉审查器只标记影响正确性或陈述要求的差距,并将其余的视为可选的。


避免常见失败模式 这些是常见错误。及早识别它们可以节省时间:

  • 大杂烩会话。 你从一个任务开始,然后问 Claude 一些不相关的事情,然后回到第一个任务。上下文充满了不相关的信息。

修复: 在不相关的任务之间 /clear

  • 一遍又一遍地纠正。 Claude 做错了什么,你纠正它,它仍然是错的,你再次纠正。上下文被失败的方法污染。

修复: 两次失败的纠正后,/clear 并编写一个包含你所学内容的更好的初始提示。

  • 过度指定的 CLAUDE.md。 如果你的 CLAUDE.md 太长,Claude 会忽略一半,因为重要的规则在噪音中丢失了。

修复: 无情地修剪。如果 Claude 没有指令已经正确做某事,删除它或将其转换为 hook。

  • 信任然后验证的差距。 Claude 产生了一个看起来合理的实现,没有处理边缘情况。

修复: 始终提供验证(测试、脚本、截图)。如果你无法验证它,不要发布它。

  • 无限探索。 你让 Claude "调查"某事而不限定范围。Claude 读取数百个文件,填满上下文。

修复: 狭窄地限定调查范围,或使用子智能体,这样探索不会消耗你的主要上下文。


培养直觉 本指南中的模式不是一成不变的。它们是通常运行良好的起点,但可能不是每种情况的最佳选择。有时你_应该_让上下文累积,因为你深入研究一个复杂问题,历史是有价值的。有时你应该跳过计划,让 Claude 弄清楚,因为任务是探索性的。有时模糊的提示正是正确的,因为你想在约束它之前看看 Claude 如何解释问题。注意什么有效。当 Claude 产生出色的输出时,注意你做了什么:提示结构、你提供的上下文、你所处的模式。当 Claude 挣扎时,问为什么。上下文太吵了吗?提示太模糊了吗?任务对于一次通过来说太大了吗?随着时间的推移,你会培养出任何指南都无法捕捉的直觉。你会知道什么时候具体,什么时候开放,什么时候计划,什么时候探索,什么时候清除上下文,什么时候让它累积。

相关资源

本页有帮助吗? 是不 提示库概述 ⌘I

评论 (0)

暂无评论,快来抢沙发吧!

91学AI

© 2026 91学AI · 按岗位学 AI 与大数据. All rights reserved.