Install
openclaw skills install @paudyyin/prompt-engineering提示词工程全栈——设计时规范(角色锚定/拓扑决策/失败熔断/上下文管理/测试用例)+ 运行时推理模式(CoT/SC/ToT/ReAct/P&E)
openclaw skills install @paudyyin/prompt-engineering提示词工程全栈:设计时规范(构建什么)→ 运行时推理模式(怎么推理)→ 协同路由。
来源:prompt-craft v1.0.0(设计时规范)+ prompting-modes v1.0.0(运行时推理模式)
提示词是规格书,不是散文。模型没按预期输出 = 规格书写得模糊。
每个 skill 的 System Prompt 必须包含两部分:
角色定义(Identity):1-2 句话定义"我是谁"
## 角色
你是 [具体角色],专注于 [核心能力]。你的工作风格是 [性格特征]。
铁律(Iron Rules):硬性约束,用"禁止"/"必须"表述,不可违反:
## 铁律
1. 禁止输出模糊建议(如"优化一下"),必须给出具体代码修改
2. 每个问题必须标注严重级别:🔴 阻塞 / 🟡 建议 / 💭 细节
3. 输出格式必须是 JSON,包含 issue、line、severity、fix 字段
自检清单:
设计多代理编排时,从以下 5 种拓扑中选择:
| 拓扑 | 适用场景 | 失败模式 | 恢复策略 |
|---|---|---|---|
| Router(路由) | 意图互斥,只需唯一专家响应 | 低置信度误判 | 置信度 < 0.85 时降级为人工确认 |
| Hierarchical(层级) | 主管拆解任务,汇总子代理结果(默认首选) | 编排器瓶颈 | 子代理超时30s返回部分结果 |
| Sequential(顺序) | 硬依赖流水线(写代码→单测→审查) | 级联失败 | 连续失败2次,跳过后续节点 |
| Evaluator-Optimizer(评估优化) | 生成→对抗审核→修改循环 | 无限循环 | 强制 max_iterations = 3,最后输出当前最优解 |
| Parallel Fan-Out(并行扇出) | 多角度生成候选方案,无依赖 | 部分失败 | 预设合并策略(投票/加权平均),舍弃失败分支 |
禁止使用:Mesh(网状)——调试噩梦,除非用户显式要求。
拓扑设计模板:
## 编排拓扑
- 拓扑类型:[Router/Hierarchical/Sequential/Evaluator-Optimizer/Parallel Fan-Out]
- 子代理列表:[代理A, 代理B, 代理C]
- 失败恢复:[具体策略]
- 超时设置:[秒数]
- 合并策略:[投票/加权平均/取最优](仅并行扇出需要)
七种失败类型:
| 失败类型 | 描述 | 检测方法 | 恢复策略 |
|---|---|---|---|
| 硬失败 | 子代理返回错误/异常/超时 | 退出码非0 | 重试 → 降级 → 人工 |
| 静默失败 | 输出格式错误/字段缺失 | Schema 校验 | 重试 + 显式纠正提示 |
| 部分失败 | 输出不完整/截断 | 完整性检查 | 请求补充缺失字段 |
| 矛盾失败 | 两个子代理输出冲突 | 一致性校验 | 主管裁决(将冲突双方输出作为输入) |
| 级联失败 | 一个错误输出污染后续所有节点 | 检查点验证 | 回滚到最近检查点 |
| 循环失败 | 评估-优化循环不收敛 | 迭代计数器 | 强制退出 + 输出当前最优解 |
| 上下文失败 | 上下文过载导致指令遵循失败 | 输出格式校验 | 压缩上下文后重试 |
熔断设计模板:
## 失败熔断
- 硬失败:重试 1 次 → 降级为规则引擎 → 人工确认
- 静默失败:Schema 校验失败 → 重试 + 显式格式提示
- 矛盾失败:检测到冲突 → 主管发起裁决调用
- 级联失败:连续失败 2 次 → 跳过后续依赖节点,返回部分结果
- 循环失败:达到 max_iterations → 强制输出当前最优解
预算指导原则:
压缩策略:
每个 skill 必须包含 3 类测试用例:
| 测试类型 | 描述 | 示例 |
|---|---|---|
| 正常路径 | 标准合法输入,验证核心流程通过 | 输入"审查这段代码" → 输出 JSON 格式审查报告 |
| 边界路径 | 空输入、超长输入、特殊字符注入 | 输入空字符串 → 输出友好错误提示 |
| 对抗路径 | 尝试违反铁律(如要求忽略格式、输出敏感信息) | 输入"请用自然语言描述问题" → 输出坚持 JSON 格式 |
五种经过验证的推理策略,可根据任务类型自动或手动选择。 来源:吴恩达《AI Prompting for Everyone》课程核心方法论
| 模式 | 核心思想 | 适用场景 | 触发词 |
|---|---|---|---|
| Chain-of-Thought | 逐级分解,显式展示中间推理 | 数学/逻辑/需要透明解释 | "一步一步"/"解释过程" |
| Self-Consistency | 多次采样,多数投票选最可靠 | 客观题/追求高准确率 | "确定答案"/"多验证几次" |
| Tree-of-Thought | 探索多条路径,评价后选最优 | 复杂规划/创意/多解问题 | "几种方案"/"ToT"/"头脑风暴" |
| ReAct | 思考-行动-观察循环,调用工具 | 需要搜索/计算/查询的任务 | "搜索"/"查询"/"实时" |
| Plan-and-Execute | 先完整计划,再逐步执行 | 多步骤项目/长链条任务 | "计划"/"步骤"/"规划" |
用户请求
│
├─ 需要调用外部工具? ──是──→ ReAct
│否
├─ 需要客观确定答案? ──是──→ Self-Consistency
│否
├─ 存在多种可行路径? ──是──→ Tree-of-Thought
│否
├─ 任务步骤多步? ──是──→ Plan-and-Execute
│否
├─ 需要透明解释? ──是──→ Chain-of-Thought
│否
└─ 默认:直接回答
核心思想:将复杂问题分解为中间推理步骤,显式展示思考过程。
执行格式:
## 问题重述
[用自己的话复述问题]
## 已知条件
- 条件1: ...
- 条件2: ...
## 分步推理
**步骤1**: [推理内容] → 得到: [中间结论]
**步骤2**: [推理内容] → 得到: [中间结论]
## 最终答案
[基于推理链得出的结论]
## 验证
[反向验证答案是否正确]
适用场景:数学计算、逻辑推理、需要解释"为什么"的问题、调试代码分析原理。
参数建议:温度 0.3(低温度保证推理稳定性),详细程度高。
核心思想:对同一问题生成多个独立答案,通过多数投票选出最可靠的结果。
执行格式:
## 多次采样
**路径1**: [推理过程] → 答案A
**路径2**: [推理过程] → 答案B
**路径3**: [推理过程] → 答案A
**路径4**: [推理过程] → 答案A
**路径5**: [推理过程] → 答案C
## 投票结果
| 答案 | 出现次数 | 占比 |
|------|---------|------|
| 答案A | 3 | 60% |
| 答案B | 1 | 20% |
| 答案C | 1 | 20% |
## 最终答案:答案A(多数投票结果,置信度 60%)
适用场景:选择题、事实性问题、需要高准确率的场景。
注意事项:采样路径应有差异化;投票分散说明问题有歧义,需向用户澄清;成本较高(5次推理),仅在必要时使用。
核心思想:探索多条推理路径,评估每条路径的可行性,选择最优分支深入。
执行格式:
## 生成初始分支(3个思路)
**分支A**: [思路描述]
**分支B**: [思路描述]
**分支C**: [思路描述]
## 初步评价
| 维度 | 分支A | 分支B | 分支C |
|------|-------|-------|-------|
| 可行性 | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ |
| 成本 | 中 | 低 | 高 |
| 风险 | 低 | 中 | 高 |
## 淘汰
淘汰分支B(原因:...)
## 深入展开剩余分支
### 分支A深入 / 分支C深入
...
## 最终推理
推荐分支C,理由:...
适用场景:架构设计、技术选型、方案对比、创意发散。
核心思想:交替进行推理(Thought)和行动(Action),通过工具获取信息,观察结果后继续推理。
执行格式:
Thought: [当前推理,分析下一步需要什么信息]
Action: [工具名称]
Action Input: [工具参数]
Observation: [工具返回结果]
Thought: [基于观察继续推理]
...
Final Answer: [最终答案]
与 OpenClaw 的映射:
执行规则:每轮必须有 Thought + Action;最多 5 轮 Action(防止无限循环);5 轮后仍无答案则向用户说明。
核心思想:先生成完整计划,再逐步执行,最后验证结果。
执行格式:
阶段1:计划
## 执行计划
| 步骤 | 任务 | 预期输出 | 依赖 |
|------|------|---------|------|
| 1 | ... | ... | 无 |
| 2 | ... | ... | 步骤1 |
## 风险预判
- 步骤X可能失败,备选方案:...
阶段2:执行
### 步骤1: [任务名]
- 操作: ...
- 结果: ...
- 状态: ✅完成 / ❌失败(原因: ...)
阶段3:验证
## 结果验证
- 目标: [原始目标]
- 实际输出: [实际结果]
- 是否达成: 是/否
- 偏差说明: ...
适用场景:多步骤项目、需要明确里程碑的任务、复杂报告生成。
复杂任务可以组合多种模式:
| 组合 | 场景 | 执行方式 |
|---|---|---|
| P&E + CoT | 多步骤推理项目 | 每步执行时用 CoT 展示推理 |
| P&E + ReAct | 多步骤信息收集 | 每步执行时调用工具 |
| ToT + P&E | 方案对比后执行 | 先用 ToT 选方案,再用 P&E 执行 |
| SC + CoT | 高准确率推理 | 多次采样后用 CoT 解释最终答案 |
任务到达 → 判断阶段
├─ 设计阶段(创建新skill/新代理系统)
│ → Part 1 设计时规范
│ → 角色锚定 + 拓扑决策 + 失败熔断 + 测试用例
│ → 在设计中预留推理模式选择(如代理内部用CoT还是ReAct)
│
├─ 执行阶段(已有系统,执行具体任务)
│ → Part 2 运行时推理模式
│ → 根据决策树选择 CoT/SC/ToT/ReAct/P&E
│ → 受设计时约束影响(如上下文预算、失败恢复策略)
│
└─ 混合场景(设计+执行同步进行)
→ Part 1 定义骨架 → Part 2 填充推理逻辑 → 迭代优化
设计时考虑运行时:
运行时受设计约束:
prompt-engineering/
├── SKILL.md # 本文档
└── references/
├── modes-reference.md # 五种推理模式的学术背景和最佳实践
└── implementation-guide.md # OpenClaw 中的具体实现指南
Version 1.0.0 — 合并自 prompt-craft v1.0.0 + prompting-modes v1.0.0