提示工程

更好的提示,更好的代码。

AI生成代码的质量几乎完全取决于你提出的需求和表达方式。本指南涵盖了在Claude Code中持续产出更好结果的模式。

从任务范围界定到系统提示,从迭代优化到按角色定制的指令。你可以在下一次编程会话中立即应用的实用技巧。

为什么提示工程对编程很重要

当你要求一位人类开发者'构建一个登录页面'时,他们会提出澄清性问题: 使用哪个认证提供商?需要哪些字段?是否需要支持OAuth?错误消息怎么处理?加载状态呢?

AI编程代理会尝试自行回答所有这些问题。有时它们猜对了。通常它们猜出了合理但并非你想要的结果。'合理'与'完全正确'之间的差距,正是提示工程所弥补的。

好的提示不需要很长。它们需要对重要的事情具体,对不重要的事情保持沉默。这种平衡就是本指南的主题。

五个核心原则

无论任务是什么,都能改善结果的模式。

1

明确结果,而非步骤

不要说'创建一个React组件,然后添加状态,然后添加样式',而是描述最终结果: '构建一个可折叠的侧边栏,显示项目名称,支持拖拽重新排序,并使用我们现有的Tailwind主题。'让代理决定如何实现。

Avoid

创建一个组件。添加useState。添加一个切换按钮。用Tailwind设置样式。

Better

构建一个可折叠的侧边栏组件,按名称列出项目。它应该支持拖拽重新排序,并匹配我们的深色主题 (bg-[#111318], border-[#262b38])。折叠状态应在页面重新加载后保持。

2

清晰界定工作范围

代理在知道边界时表现最好。指定要修改(或避免修改)的文件,要遵循的模式,以及'完成'的标准。没有边界的任务会导致难以审查的大范围变更。

Avoid

重构认证系统。

Better

重构 src/api/auth/login.ts 中的登录处理程序,将密码哈希从sha256改为bcrypt。不要更改JWT逻辑或会话cookie处理。更新 tests/auth/ 中的相关测试。

3

提供相关上下文

Claude Code可以读取你的项目文件,但无法读取你的想法。如果你遵循某种约定、偏好某个库或已经建立了某种模式,请说明。这可以避免返工。

Avoid

添加表单验证。

Better

使用zod为注册表单添加验证(我们已在 src/forms/settings.ts 的设置表单中使用了它)。在每个字段下方显示内联错误消息。遵循与登录表单相同的错误样式。

4

每个提示一个任务

复合提示('构建API、编写测试、更新文档并部署')迫使代理同时处理太多目标。将复杂工作拆分为顺序的、专注的任务。每个任务都建立在前一个结果之上。

Avoid

构建用户资料页面、编写API端点、添加测试、更新README,顺便修复导航栏。

Better

构建 GET /api/user/profile 端点。返回 id、name、email 和 plan 字段。使用现有的认证中间件进行身份验证。

5

迭代,不要重来

如果第一次结果不对,优化提示而不是从头开始。Claude保留完整的对话上下文。说明哪里不对、需要改什么、保留什么。迭代比重新发明更快。

Avoid

这不对。重新开始,用不同的方式构建组件。

Better

布局很好,但移动端断点不对。在768px以下,将卡片垂直堆叠而不是使用网格。其他部分保持不变。

系统提示: 持久的上下文

系统提示在你说任何话之前就设定了代理的基准行为。它们是AI编程中最被低估的工具。

系统提示告诉代理它是谁、应该关注什么、应该避免什么。它适用于会话中的每条消息。可以把它想象成代理的职位描述。

AgentsRoom内置了14个按角色定制的系统提示,每种代理类型一个。前端代理的提示让它专注于组件、可访问性和响应式设计。QA代理的提示让它关注边界情况并编写全面的测试。你可以自定义这些提示或编写自己的。

示例: 前端代理系统提示

你是一名资深前端开发者。专注于React组件、CSS/Tailwind样式、可访问性(WCAG AA)和响应式设计。优先使用项目现有的组件库,而不是创建新组件。优先使用组合而非继承。编写语义化HTML。不要修改后端文件。

编写有效的系统提示

  • 定义角色及其边界。代理应该关注什么?应该忽略什么?
  • 提及具体的技术和版本。'React 19 with Server Components' 比 '现代React' 更好。
  • 引用项目约定。'使用Zustand管理状态' 告诉代理不要使用Redux或Context。
  • 设定质量期望。'使用严格模式编写TypeScript,不允许any类型' 可以防止走捷径。
  • 包含否定约束。'不要修改 /api/ 中的文件' 让代理保持在自己的职责范围内。

CLAUDE.md: 项目级上下文

最有效的提示不是在聊天中输入的,而是保存在你的代码仓库中。

CLAUDE.md 是项目根目录下的一个markdown文件,Claude Code会自动读取它。它包含项目结构、约定、技术栈详情和适用于项目中每个代理会话的指南。

不必在每次对话中重复'我们使用Tailwind CSS 4、Prisma ORM和Next.js 16',只需在CLAUDE.md中写一次。每个代理都会继承这些上下文。AgentsRoom包含一个内置的CLAUDE.md编辑器,你无需离开应用即可更新。

一个写得好的CLAUDE.md比几十个精心编写的单独提示更有价值。它会不断积累: 每次会话都从中受益。

构建提示库

停止重复编写相同的指令。保存有效的提示并重复使用。

如果你发现自己在不同项目中输入同类请求('为这个文件编写单元测试'、'将这段代码重构为仓储模式'、'为所有API路由添加错误处理'),请将其保存为可重用的提示。

AgentsRoom包含两级提示库功能: 用于项目特定任务的项目级提示,以及用于你在所有地方都使用的模式的全局提示(云同步)。

适合加入提示库的内容: 代码审查清单、测试编写模板、迁移脚本、组件脚手架指令、安全审计步骤。任何你会放在团队wiki中作为标准流程的内容。

提示库示例

编写单元测试

为[文件]编写单元测试。使用vitest。覆盖正常路径、边界情况(空输入、null、无效类型)和错误处理。模拟外部依赖。目标是分支覆盖率超过90%。

代码审查

审查当前git diff中的变更。检查: 未使用的导入、缺失的错误处理、类型安全问题、潜在的竞态条件和命名不一致。为发现的每个问题提供修复建议。

API端点

为[资源]创建一个REST端点。包括使用zod的输入验证、适当的错误响应(400、401、404、500)、请求/响应的TypeScript类型和描述端点的JSDoc注释。遵循 src/api/ 中的现有模式。

高级模式

超越单个提示的复杂任务技巧。

提示链

将大型任务分解为有序的步骤。用第一步启动第一个代理,等待完成,然后用第二步启动下一个代理(引用第一步的输出)。每个步骤更小、更专注。例如: 代理1设计数据库模式,代理2使用该模式编写API,代理3针对API编写测试。

跨代理审查

一个代理完成后,让另一个代理检查其输出。'审查前端代理刚才在 src/components/ 中所做的更改。检查可访问性问题和缺失的错误状态。'具有不同角色的新代理能发现原始代理遗漏的问题。

渐进式约束

先用宽泛的提示看代理如何处理问题。然后在后续消息中添加约束: '结构不错,但使用server components而不是client components。' '保留hook,但移除useEffect,改用React Query mutation。'每次迭代都更接近你想要的解决方案。

参考实现

将代理指向现有代码: '按照 src/pages/profile.tsx 的模式构建设置页面。相同的布局结构、相同的表单处理、相同的错误显示。'这通常比用文字描述模式更有效。

常见错误

持续产生较差结果的模式。

过度指定实现细节

告诉代理确切要写哪些函数、如何命名变量、以什么顺序实现。这种微观管理消除了代理找到更好方案的能力。描述结果,而非过程。

没有范围边界

要求代理'改进代码库'而不加任何约束。没有边界,代理可能会重构你不想修改的文件,更改其他代码依赖的API,或在低优先级改进上花费token。

忽略现有代码

没有提及项目中已存在的模式、工具函数或组件。代理会创建一个新的。一句简单的'我们在 src/hooks/ 中已经有一个useAuth hook'可以避免大量返工。

复合超大提示

在一条消息中塞入五个任务。代理会尝试全部完成,但在同时处理多个竞争目标时质量会下降。将它们拆分为顺序的、专注的请求。

常见问题

编程提示应该多长?+
大多数有效的编程提示为2到5句话。足够长以指定结果、范围和关键约束。足够短以使代理不会在细节中迷失。如果你的提示是一整段话,考虑是否有些上下文应该放在CLAUDE.md或系统提示中。
针对Opus和Sonnet应该写不同的提示吗?+
略有不同。Opus更善于处理模糊性,能从更少的上下文中推断意图。Sonnet从更明确的指令和更清晰的范围边界中获益更多。对于两种模型,明确预期结果都能改善输出。
AgentsRoom如何帮助提示工程?+
三个方面: 为14种代理类型内置按角色定制的系统提示,用于保存和重用有效提示的提示库,以及用于项目级上下文的CLAUDE.md编辑器。这些层次意味着你花更少的时间编写单独的消息,因为基础上下文已经很好了。
可以在团队中共享提示吗?+
可以。AgentsRoom在两个位置存储提示: 项目级提示在 .agentsroom/prompts.json 中(版本控制,通过git共享),个人提示在 prompts-personal.json 中(gitignore中)。全局提示通过云在你所有设备间同步。
系统提示和CLAUDE.md有什么区别?+
CLAUDE.md 是每个代理自动读取的项目上下文: 技术栈、结构、约定。系统提示是代理特定的行为指令: 角色、关注领域、约束。它们相互补充。CLAUDE.md说'这个项目使用Next.js 16和Prisma。'系统提示说'你是一名专注于API路由的后端开发者。'

写出更好的提示,交付更好的代码

AgentsRoom内置系统提示、提示库和CLAUDE.md编辑功能。更少时间编写提示,更多时间构建产品。

免费下载 macOS 版

配套应用:随时随地监控你的 Agent

使用 Claude、Codex、Gemini CLI 或其他 AI 提供商。

获取扩展
Chrome Web Store

把 Bug 和需求直接发送到您的公开待办清单。

多项目管理
多供应商
多代理运行
实时状态
文件差异与提交
移动应用
实时预览
代理团队
浏览器自动化
Backlog 驱动开发
提示词库
技能库