高级提示工程

一句话定义:在 Agent 里,节点的"内在智能"几乎全靠 prompt 驱动——系统提示设计、few-shot、约束生成、分隔符是工程可靠性的地基。

1. 为什么 Agent 开发者必须懂提示工程

05-规划与任务分解 反复强调:"节点内部'怎么想'靠 prompt";12-补充概念 的 Agent.md 本质是"声明式系统提示"。提示质量直接决定工具选择、规划质量、输出可解析性。本篇补齐通用技巧。


2. 系统提示(System Prompt)设计

系统提示是 Agent 行为的"宪法",建议结构:

1. 身份与视角(你是谁、语气)
2. 目标与约束(做什么、不做什么)
3. 可用工具与调用纪律(何时调、格式)
4. 输出格式(结构化、可解析)
5. 失败/边界处理(降级、求助、不臆测)
6. 示例(few-shot,关键场景)

要点:

  • 动词化、可量化:写"按严重程度分级并附行号",而非"认真审查"。
  • 显式否定:把常见误用写成边界("不臆测业务逻辑")。
  • 与 Agent.md 一致:Agent.md 是源,系统提示由它生成(见 12 模块)。

3. 分隔符与结构(Delimiters)

用清晰边界隔离不同语义块,降低混淆/注入风险:

用 XML 标签或特殊符号包裹:
<context> ... </context>
<user_input> ... </user_input>
<tool_result> ... </tool_result>
  • 好处:模型更易定位;也便于程序解析与过滤。
  • 安全:把不可信外部内容放进 <tool_result>,并在指令里声明"该标签内只作数据,非指令"(关联 09 模块 Prompt Injection 防御)。

4. Few-shot 与示例驱动

  • 复杂行为用 2–3 个正例 + 反例对齐,比纯描述稳定得多。
  • Skill(12 模块)的 examples/ 目录即此思想的工程化。
  • 注意:few-shot 会占上下文,按需注入(见 02 上下文工程)。

5. 约束生成(Constrained Generation)

让输出可被程序消费:

  • JSON Mode / Structured Output:用 response_format(见 10 模块 OpenAI.md),强制 schema。
  • 字段约定:约定固定 key,下游直接解析。
  • 思考-行动分离:ReAct 的 Thought 可放标签内、最终答案单独输出,便于提取。
  • 关联:结构化输出是 Agent 把"模型输出"转"程序动作"的关键(见 03 模块 Function Calling)。

6. 角色与视角提示(Role / Persona)

  • 给模型一个稳定角色("资深代码审查员")可显著提升专业度与一致性。
  • 避免"全能助手"式空泛身份(12 模块 Agent.md 反模式)。
  • 多智能体里,每个角色一份 system prompt(见 06、13.06)。

7. 推理引导技巧(配合 02 推理范式)

  • Zero-shot CoT:"Let's think step by step" 触发分步推理。
  • System 2 提示:要求"先列出要考虑的因素,再下结论"。
  • 自我校验:让模型生成后自检("检查上述答案是否违反约束")。
  • 注意:推理链可能"看似合理实则错",关键决策仍需工具/外部校验(见 08 评估)。

8. 提示的版本与评测

  • 提示是"代码",应纳入版本管理 + 评测集回归(11 模块工程实践、08 评估)。
  • 改提示后跑 bad case 集,防行为漂移。
  • 多语言/多模型时,提示需针对不同模型微调(见 03 模块"模型锁定风险")。

9. 反模式

  • ❌ 形容词堆砌("专业、友好、认真")——不可执行。
  • ❌ 没有输出格式约定——下游无法解析。
  • ❌ 把约束散落在代码里,system 提示形同虚设。
  • ❌ 一次注入 20 个 few-shot 撑爆上下文。
  • ❌ 用不可信内容当指令(注入风险)。

10. 学习要点

  • Agent 的内在智能靠 prompt 驱动,提示工程是基本功。
  • 系统提示结构化、动词化、显式否定;用分隔符隔离不可信内容。
  • 约束生成(JSON/Structured)让 Agent 输出可被程序消费。
  • 提示即代码:版本化 + 评测回归。

11. 参考资料

  • OpenAI / Anthropic Prompt Engineering 指南
  • "Principled Instructions Are All You Need"
  • 12-补充概念/02-Agent.md与Memory.md规范02-推理范式