4m read
Phase 6 Prompt 工程与 AI 协作
Phase 6:Prompt 工程与 AI 协作
Prompt 是你和 AI 之间的接口契约。写得好,AI 是得力助手;写得差,它就是随机生成器。
这个阶段的目标不是写出"完美的 Prompt",而是写出"稳定的 Prompt"——在大部分情况下,AI 都能按你期望的方式行动。
一、System Prompt 的六个部分
一份好的 System Prompt 通常包含:
| 部分 | 作用 | 例子 |
|---|---|---|
| 角色 | AI 是谁 | "你是一个严谨的后端开发助手" |
| 任务 | 要做什么 | "根据需求文档生成代码" |
| 输入 | 会收到什么 | "你会收到 PRD 和接口契约" |
| 输出格式 | 怎么回答 | "用 Markdown 输出,代码块带语言标记" |
| 约束 | 不能做什么 | "不要修改未指定的文件" |
| 示例 | 少样本学习 | 给 1-3 个样例 |
不需要每次都写满六个部分,但角色、任务、输出格式这三项尽量要有。
二、让 AI 正确调用工具
工具描述要具体
不要这样写:
hljs markdown### search
搜索网页
要这样写:
hljs markdown### search
描述:当用户询问时事、或知识库中找不到答案时使用。
参数:
- query: 搜索关键词,5~10 个词(必填)
返回:前 5 条搜索结果的标题和摘要
参数要说明清楚
每个参数都要说明:类型、是否必填、取值范围、示例。
失败时把错误反馈给 AI
工具调用失败后,不要直接报给用户。把错误信息返回给模型,让它决定重试还是换方案。
三、ReAct 模式
ReAct = Reasoning(推理)+ Acting(行动)
text用户:明天下午我想去公园跑步,天气怎么样? Thought: 用户想知道天气。需要先确认地点。 Action: ask_user("你在哪个城市?") 用户:北京 Thought: 需要查北京明天天气。 Action: get_weather(city="北京", date="明天") Observation: 晴,15~28°C Thought: 天气适合跑步。 Final Answer: 明天北京天气不错,适合下午 4~6 点去跑步。
它的好处是:复杂任务被拆成可验证的小步骤,每步都有明确输入输出,出了问题也容易定位。
四、少样本示例
给 AI 看几个例子,比说一百句规则都管用。
hljs markdown## 示例 1
输入:写一个登录 API
输出:
```typescript
app.post('/api/login', async (req, res) => {
// 校验参数
// 查询用户
// 验证密码
// 返回 token
});
text--- ## 五、把重复工作变成 Skill Skill 就是可复用的 Prompt 模板。 ```markdown # Code Review Skill ## 角色 你是严格的代码审查员。 ## 检查项 - 是否有明显 bug - 是否有安全风险 - 是否符合项目命名规范 - 是否有重复代码 ## 输出格式 1. 总体评价 2. 问题列表(按严重程度) 3. 修改建议
保存为 skills/code-review.md,每次需要时调用。适合 Skill 化的工作:
- 代码审查
- 按固定风格回复邮件
- 会议记录转提案
- 生成教学图表
不适合 Skill 化的:开放性创作、探索性研究。
六、Prompt 评估与迭代
评估维度
| 维度 | 方法 |
|---|---|
| 遵循度 | 跑 20 条测试用例 |
| 准确性 | 检查工具参数是否正确 |
| 稳定性 | 同一输入跑 5 次 |
| 简洁性 | 人工评分 |
迭代循环
写 Prompt → 跑测试 → 分析失败 → 修改 Prompt → 再测试
七、Prompt 版本管理
不要把 Prompt 写死在代码里。
textprompts/ ├── system.v1.md ├── system.v2.md └── skills/ ├── code-review.md └── email-reply.md
每次修改:复制新版本、记录原因、跑对比测试、通过后再切换。
八、给 AI 的输入
hljs markdown## 项目背景
[粘贴 PRD 和架构]
## 请设计 System Prompt
要求:
1. 角色明确
2. 能调用以下工具:[列出工具]
3. 输出格式统一
4. 遇到不确定时询问用户
5. 敏感操作需确认
## 请设计 Skill
- [列出 2-3 个重复性工作]
九、什么时候算做完了
- System Prompt 覆盖角色、任务、格式、约束
- 工具描述清晰,参数完整
- 有 3 个以上少样本示例
- 已设计至少 2 个 Skill
- 跑过 20 条测试用例
十、几个常见错误
Prompt 太简短
- 后果:AI 输出不稳定
- 修正:补充约束和示例
工具描述模糊
- 后果:AI 乱调用工具
- 修正:加使用场景和参数说明
不测试 Prompt
- 后果:上线后行为异常
- 修正:跑测试用例
Prompt 写死在代码
- 后果:难迭代
- 修正:作为文件管理
十一、输出文件
text/prompts/ ├── system.md └── skills/ ├── code-review.md ├── email-reply.md └── meeting-summary.md /docs/ └── PROMPTS.md
十二、下一步
Prompt 确定后,接入外部工具和 RAG。
→ Phase 7 工具集成 RAG 与记忆