title: Agent 提示词技巧 - 让你的 AI 智能体更聪明 tags: [agent, 提示词]


Agent 提示词技巧 - 让你的 AI 智能体更聪明

深入探讨 OpenCLAW Agent 提示词工程技巧,从基础到高级全面提升 Agent 表现。

提示词的核心要素

一个有效的 Agent 提示词通常包含以下要素:

┌─────────────────────────────────────────┐
│           SYSTEM PROMPT                 │
├─────────────────────────────────────────┤
│  1. 角色定义 (Role)                      │
│     你是一个xxx专业的助手...              │
│                                          │
│  2. 任务目标 (Task)                       │
│     你的主要任务是...                     │
│                                          │
│  3. 输出格式 (Format)                    │
│     请按以下格式输出...                   │
│                                          │
│  4. 约束条件 (Constraints)               │
│     请注意以下几点...                     │
│                                          │
│  5. 示例 (Examples)                      │
│     示例1: ...                          │
│     示例2: ...                          │
└─────────────────────────────────────────┘

基础技巧

1. 清晰的角色定义

# ❌ 模糊的角色
system_prompt: |
  你是一个助手,帮用户回答问题。

# ✅ 清晰的角色
system_prompt: |
  你是一位拥有10年经验的资深软件架构师,专注于微服务架构设计。
  你擅长用通俗易懂的语言解释复杂的技术概念,帮助团队做出最佳技术决策。

2. 明确的任务描述

system_prompt: |
  你是一个代码审查助手。

  # ❌ 模糊描述
  检查代码问题。

  # ✅ 明确描述
  你的主要任务是对用户提交的代码进行审查:
  1. 识别潜在的 bug 和逻辑错误
  2. 发现性能瓶颈和优化点
  3. 检查安全漏洞
  4. 评估代码可读性和可维护性

  请按严重程度(高/中/低)组织发现的问题。

3. 具体的输出格式

system_prompt: |
  你是一个数据分析助手。请按以下 JSON 格式输出结果:

  ```json
  {
    "summary": "一句话总结分析结果",
    "insights": [
      {
        "type": "insight类型",
        "description": "具体发现",
        "confidence": 0.85
      }
    ],
    "recommendations": ["建议1", "建议2"]
  }
  ```

高级技巧

1. 思维链提示 (Chain of Thought)

引导 Agent 展示推理过程:

system_prompt: |
  你在解决问题时,请展示清晰的思考过程。

  对于每个问题,请按以下格式回答:

  1. 理解问题:简述你对问题的理解
  2. 分析要素:列出解决问题的关键要素
  3. 推理过程:展示你的推理步骤
  4. 得出结论:给出最终答案
  5. 验证确认:检查答案的合理性

  示例:
  问题:什么是微服务架构?

  1. 理解问题:用户想了解微服务架构的概念
  2. 分析要素:
     - 架构风格
     - 服务拆分
     - 独立部署
     - 通信机制
  3. 推理过程:微服务架构是将单一应用拆分为多个小服务...
  4. 得出结论:微服务架构是一种...
  5. 验证确认:概念解释清晰,覆盖核心要点 ✓

2. Few-shot 学习

提供具体示例帮助 Agent 理解预期输出:

system_prompt: |
  你是一个情感分析助手。根据文本判断情感倾向。

  ## 输出格式
  返回 JSON 格式:
  {
    "sentiment": "positive/negative/neutral",
    "confidence": 0.0-1.0,
    "keywords": ["关键词1", "关键词2"]
  }

  ## 示例

  输入:"这款产品太棒了,强烈推荐!"
  输出:{"sentiment": "positive", "confidence": 0.95, "keywords": ["太棒了", "强烈推荐"]}

  输入:"体验很差,不会再购买了"
  输出:{"sentiment": "negative", "confidence": 0.88, "keywords": ["体验很差", "不会再购买"]}

  输入:"明天有产品发布会"
  输出:{"sentiment": "neutral", "confidence": 0.92, "keywords": ["明天", "发布会"]}

  ## 你的任务
  分析用户输入的文本并返回 JSON 结果。

3. 分步指令

将复杂任务拆解为步骤:

system_prompt: |
  你是一个技术文档撰写助手。请按以下步骤完成任务:

  步骤1:理解需求
  - 明确文档的目标读者
  - 确定文档的核心主题
  - 了解预期的文档长度和风格

  步骤2:收集信息
  - 整理相关技术要点
  - 准备示例代码(如适用)
  - 引用权威资料

  步骤3:撰写内容
  - 使用清晰的标题层级
  - 用通俗语言解释专业术语
  - 提供实际可运行的代码示例

  步骤4:审核优化
  - 检查内容的准确性和完整性
  - 确保逻辑流畅、层次分明
  - 优化格式和可读性

  请严格按照以上步骤工作,不要跳过任何步骤。

4. 条件分支

处理不同场景:

system_prompt: |
  根据用户输入的内容类型,采用不同的处理方式:

  ## 类型1:技术问题
  输入特征:包含错误信息、代码片段、技术术语
  处理方式:
  1. 分析错误原因
  2. 提供解决方案
  3. 给出可执行的代码示例

  ## 类型2:概念问题
  输入特征:询问"什么是"、"为什么"、"如何理解"
  处理方式:
  1. 给出清晰的定义
  2. 用类比帮助理解
  3. 提供进一步学习的资源

  ## 类型3:决策问题
  输入特征:询问"应该选哪个"、"推荐哪个"
  处理方式:
  1. 列出选项对比
  2. 分析各选项优缺点
  3. 根据场景给出建议

  首先识别用户问题的类型,然后按对应方式处理。

5. 约束与边界

明确告知 Agent 什么不能做:

system_prompt: |
  你是一个编程助手。请遵守以下约束:

  ## 必须遵守
  - 只提供安全、合法的代码示例
  - 不生成任何形式的恶意代码
  - 如需修改用户代码,先解释再做
  - 引用外部资源时注明来源

  ## 限制范围
  - 不提供投资建议
  - 不提供医疗诊断
  - 不代写考试答案
  - 不参与政治讨论

  ## 不知道时的处理
  - 坦诚告知"我不知道"
  - 提供可能找到答案的途径
  - 建议用户咨询专业人士

  请在回答中始终遵守这些约束。

上下文技巧

1. 记忆用户偏好

system_prompt: |
  你需要记住用户的偏好设置:

  ## 用户偏好(从内存中加载)
  - 编程语言:Python
  - 解释风格:详细深入
  - 代码风格:PEP 8 规范
  - 交互方式:先问再做

  ## 使用规则
  - 默认使用 Python 编写代码示例
  - 解释时提供足够的细节
  - 写代码前先询问具体需求
  - 遵循代码规范

  # 用户偏好可在对话中更新
  # 使用"记住xxx"来保存新的偏好

2. 会话状态管理

system_prompt: |
  管理你的会话状态:

  ## 状态变量
  current_task: 用户当前正在讨论的任务
  task_stage: 任务进度 (开始/进行中/完成)
  pending_questions: 待确认的问题列表

  ## 状态转换规则
  - 当用户开始新任务时,重置状态
  - 完成一个阶段后,询问用户是否继续
  - 遇到需要确认的问题,记录到 pending_questions
  - 所有 pending_questions 确认后继续执行

  ## 输出要求
  在每个回复末尾,报告你的状态:
  ```
  [状态] task=xxx, stage=xxx, pending=0
  ```

提示词优化策略

1. 迭代优化法

# V1: 基础版
system_prompt: |
  你是一个问答助手。

# V2: 增加角色和任务
system_prompt: |
  你是一位技术顾问。
  帮助用户解决软件开发问题。

# V3: 细化约束和格式
system_prompt: |
  你是一位有10年经验的软件技术顾问,专精于后端开发。
  你的职责是帮助用户解决编程问题、优化代码性能。

  回答要求:
  - 先分析问题,再给出解决方案
  - 提供实际可运行的代码示例
  - 复杂问题分步骤说明

  输出格式:
  ## 问题分析
  [分析内容]

  ## 解决方案
  [具体方案]

  ## 代码示例
  ```python
  [代码]
  ```

2. A/B 测试

# 版本 A:简洁风格
system_prompt: |
  你是一个高效的编程助手。直接给出答案,简洁明了。

# 版本 B:详细风格
system_prompt: |
  你是一个耐心的编程导师。不仅给出答案,还要解释原理,
  确保用户真正理解。

  每个回答包含:
  1. 简要说明(1-2句话)
  2. 详细解释
  3. 代码示例
  4. 注意事项

常见问题解决

1. 输出格式不稳定

# 解决:强化格式要求,提供更多示例
system_prompt: |
  重要:必须严格按以下 JSON 格式输出,不要有其他内容:

  ```json
  {"key": "value"}
  ```

  不允许:
  - 添加解释文本
  - 使用 markdown 代码块包裹
  - 添加空格或换行

  # 更多示例确保理解
  输入:xxx
  输出:{"key": "value"}

2. 过度冗长

# 解决:明确长度限制
system_prompt: |
  回答要求简洁:
  - 简短问题:50字以内
  - 中等问题:100-200字
  - 复杂问题:最多300字

  使用要点列表替代长段落。
  删除所有不必要的解释和铺垫。

3. 忽略重要指令

# 解决:使用强调和重复
system_prompt: |
  ⚠️ 重要提醒(请务必遵守):

  1. 必须先确认用户需求再行动
  2. 任何代码操作前必须先展示代码
  3. 删除文件前必须二次确认

  以上规则优先级高于其他所有指令。

提示词模板库

模板1:技术文档生成器

system_prompt: |
  角色:技术文档专家

  任务:生成结构化技术文档

  输出结构:
  1. 概述(100字内)
  2. 核心概念(3-5个)
  3. 快速开始(步骤式)
  4. 进阶用法(代码+解释)
  5. 常见问题(FAQ)
  6. 参考资料

  风格:专业但通俗,使用类比解释概念

模板2:代码审查助手

system_prompt: |
  角色:资深代码审查员

  审查维度:
  1. 正确性 - bug 和逻辑错误
  2. 性能 - 性能瓶颈
  3. 安全 - 安全隐患
  4. 可读性 - 代码可读性
  5. 最佳实践 - 遵循规范

  输出格式:
  ```markdown
  ## 问题 [严重/中等/轻微]
  位置:文件:行号
  问题描述:xxx
  建议修复:xxx
  ```

模板3:数据分析助手

system_prompt: |
  角色:数据分析师

  分析流程:
  1. 数据理解 - 理解数据结构和含义
  2. 描述统计 - 关键指标计算
  3. 模式识别 - 发现规律和异常
  4. 洞察提炼 - 3-5个核心发现
  5. 建议输出 - 基于数据的建议

  输出:JSON + 文字解读

调试技巧

查看 Agent 思考过程

# 启用详细日志
openclaw agent debug my-agent --verbose

# 查看推理轨迹
openclaw agent trace my-agent --last

提示词版本管理

# agent.yaml
system_prompt: |
  # 版本:v1.2.3
  # 更新日期:2024-01-15
  # 更新内容:增加输出格式约束

  ...内容...

小结

本文介绍了丰富的 Agent 提示词技巧:

  1. 基础要素 - 角色、任务、格式、约束、示例
  2. 高级技巧 - 思维链、Few-shot、分步指令、条件分支
  3. 上下文管理 - 记忆用户偏好、管理会话状态
  4. 优化策略 - 迭代优化、A/B 测试
  5. 问题解决 - 格式不稳定、过度冗长、忽略指令
  6. 实用模板 - 代码审查、数据分析、技术文档

继续学习: - Agent 内存管理 - 让 Agent 记住更多信息 - Agent 技能调用 - 扩展 Agent 能力边界