深色模式
Prompt 工程
是什么
通过精心设计的输入文本(尤其是 system prompt),约束模型的角色、行为边界、输出格式与推理方式。
为什么需要
Agent 的"性格"和"纪律"几乎全写在 prompt 里:不做越权操作、按固定 JSON 输出、遇到不确定时反问——这些都靠 prompt 立规矩。
核心概念
- 系统提示(System Prompt):角色 + 目标 + 约束 + 输出规范 + 边界("不知道就说不知道")。
- Few-shot:给 1~3 个示例,显著提升格式稳定性与风格一致性。
- 结构化约束:明确"必须使用工具""必须返回 JSON""先思考再行动"。
- 提示版本管理:prompt 是可迭代的"代码",应纳入版本控制并做 A/B。
最小范式
text
你是一个 Kubernetes 运维 Agent。
# 目标
帮助用户排查与修复集群问题。
# 约束
1. 优先使用工具获取真实状态,不要凭空猜测。
2. 只执行只读或用户明确确认的操作。
3. 回答使用中文,关键命令用代码块给出。
# 输出格式
先给结论,再给原因,最后给操作步骤。1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
实用技巧
- 把"禁止项"写清楚:比"请尽量..."有效得多。"禁止删除命名空间""禁止暴露密钥"。
- 让模型先思考:加入"请逐步推理,但只输出最终结论"可减少幻觉。
- 输出格式用示例而非纯描述:给一个 JSON 样例比写三段规则更稳。
常见陷阱
- 歧义指令:"尽快处理"——快到什么程度?谁确认?模型会自行补默认,常常出错。
- 过长 system prompt:挤占上下文、稀释重点,关键信息反而被忽略。
- Prompt 注入:用户输入可能覆盖系统指令(详见 11-safety-guardrails)。
- 泄露系统提示:把敏感规则写进可被用户读到的地方。
参考
- OpenAI Prompt Engineering Guide
- Anthropic "Claude Prompt Engineering" 文档
- 各厂商官方最佳实践