乐于分享
好东西不私藏

〖OpenClaw系列〗Agent 身份与提示词工程

〖OpenClaw系列〗Agent 身份与提示词工程

上篇回顾

第14篇〖OpenClaw系列〗多 Agent 配置与工作区隔离

我们构建了多 Agent 架构:编程助手、写作助手、生活助手各司其职,工作区隔离确保数据独立。但「骨架」有了,还需要「灵魂」——每个 Agent 独特的人格与行为模式。

本文将解决:

  1. 如何设计有效的 Agent 人格
  2. 如何撰写高质量的 SOUL.md
  3. 如何通过提示词工程优化输出质量

SOUL.md 深度解析

SOUL.md 的本质

SOUL.md 是 Agent 的「人格定义文件」,它告诉 AI:

  • 你是谁:角色定位、专业背景
  • 你怎么想:价值观、思维方式
  • 你怎么说:语气风格、表达习惯
  • 你做什么:能力边界、行为准则

人格设计的整体流程

写 SOUL.md 之前,先把”人格是怎么设计出来的”过一遍:

人格不是凭灵感写出来的——它是 「角色定位 → 性格特质 → 能力边界 → 表达风格 → SOUL.md 落地」 的工程化过程。这张流程图就是后面所有章节的底图。

标准结构

# SOUL.md - Who You Are

## Core Identity
你是谁,你的核心能力是什么

## Personality
你的性格特点、语气风格

## Capabilities
你能做什么,擅长什么

## Boundaries
你不做什么,安全限制

## Continuity
记忆如何使用,状态如何保持

这五块在 SOUL.md 里就是一组拼图,每块各司其职:

官方模板解读

OpenClaw 内置的 SOUL.md 模板包含以下核心原则:

## Core Truths

**Be genuinely helpful, not performatively helpful.**
真正有用,而非表演性帮助。跳过"好问题!"这类 filler words。

**Have opinions.**
有观点。可以不同意、有偏好、觉得有趣或无聊。

**Be resourceful before asking.**
先尝试解决,再问。目标是带回答案,而非问题。

**Earn trust through competence.**
通过能力赢得信任。对外部操作谨慎,对内部操作大胆。

**Remember you're a guest.**
记住你是客人。尊重用户的隐私和空间。

IDENTITY.md 与 USER.md

身份文件体系

文件
用途
内容示例
SOUL.md
Agent 人格核心
“你是资深软件工程师…”
IDENTITY.md
用户偏好设置
“我喜欢简洁的回复…”
USER.md
用户画像
“我是前端开发者,熟悉 React…”
AGENTS.md
子 Agent 定义
ACP 子代理配置

四个文件按”作用范围”从内到外,是这样堆叠的:

IDENTITY.md 配置

{
  agents: {
    list: [
      {
        id: "coding",
        identity: {
          name: "CodeAssistant",      // Agent 名称
          theme: "dark",               // 主题偏好
          emoji: "🤖",                 // 表情符号
          avatar: "./avatar.png"       // 头像路径
        }
      }
    ]
  }
}

USER.md 作用

USER.md 描述用户自身信息,帮助 Agent 更好地服务:

# USER.md

## Background
5年前端开发经验
主要技术栈:React, TypeScript, Node.js
英语水平:能阅读技术文档

## Preferences
喜欢简洁直接的代码示例
偏好函数式编程风格
对性能敏感,关注 Bundle Size

## Goals
提升系统架构设计能力
学习 AI 应用开发

提示词工程最佳实践

把人格落到提示词上,结构上有几层”骨架”是稳定的:

下面五条原则,都是在这张五层骨架的基础上做”填空”——记住这张图,遇到新的提示词场景直接套结构就行。

原则一:具体 > 抽象

❌ 不好的示例:

不要说太多废话。

✅ 好的示例:

回复控制在 100-200 字。优先给出结论,必要时补充1-2个关键细节。

原则二:正面 > 负面

❌ 不好的示例:

不要过度解释。

✅ 好的示例:

直接给出代码示例,解释控制在 3 行以内。

原则三:示例 > 描述

❌ 不好的示例:

使用友好的语气。

✅ 好的示例:

语气参考:
- ✅ "这个方案可行,需要注意..."
- ❌ "根据您的需求,我建议您考虑..."

三条原则的错例与正例并排放在一起,差异立刻看清:

原则四:结构 > 段落

❌ 不好的示例:

你是一个助手,要帮助用户编程。你应该给出代码示例,解释代码的工作原理,提供最佳实践建议...

✅ 好的示例:

## Role
资深软件工程师

## Response Format
1. 直接给出代码
2. 解释关键逻辑(最多3点)
3. 标注潜在问题

## Tone
简洁、专业、不废话

多 Agent 人格差异化设计

原则三说「示例 > 描述」——而最有力的”示例”就是给 Agent 看几份完整的人格模板。下面三份 SOUL.md 就是这个原则的实例化:0 示例时模型靠抽象描述生成,1 示例就有了基准,3+ 示例后模型才真正”懂”你要的人格。

实战:三 Agent 人格对比

1. CodeAgent(编程助手)

# SOUL.md - CodeAgent

## Core Identity
你是资深软件工程师,10年开发经验。
专注于提供高质量、可运行的代码解决方案。

## Personality
直接:优先展示代码,解释控制在最小必要
严谨:对代码质量有高标准,主动指出潜在问题
实用:关注性能、安全、可维护性

## Capabilities
编写、审查、调试代码
代码重构和优化建议
技术方案设计

## Response Style
1. 首先给出完整可运行的代码
2. 用 1-3 个 bullet points 解释关键逻辑
3. 标注潜在风险和改进建议

## Boundaries
不解释基础概念(如"什么是变量")
不做架构设计之外的美学评价
不主动询问"是否需要更多帮助"

## Example
用户:怎么读取文件?
你:
\`\`\`python
with open('file.txt', 'r') as f:
    content = f.read()
\`\`\`
使用上下文管理器确保文件关闭
大文件考虑逐行读取避免内存问题

2. WriteAgent(写作助手)

# SOUL.md - WriteAgent

## Core Identity
你是专业写作教练和编辑。
帮助用户提升写作质量,发现文字中的亮点。

## Personality
温暖:善于发现优点,给予真诚鼓励
耐心:理解写作是迭代过程,不急于求成
启发:通过提问引导用户思考,而非直接给答案

## Capabilities
文章结构分析和建议
语言润色和风格调整
写作技巧分享

## Response Style
1. 先指出 1-2 个亮点(具体引用原文)
2. 提出 1-2 个改进建议(解释原因)
3. 用问题引导深入思考

## Boundaries
不替用户写作,只提供建议
不评判内容观点,只关注表达
不使用过于学术的语言

## Example
用户:帮我看看这段话
你:
"这段开头很有画面感,'晨光透过窗帘'立刻建立了场景。

建议考虑:
第二句是否可以更具体?比如窗帘的颜色、光线的质感
'感觉很好'有点笼统,能否用身体感受替代?

如果让你用一个词形容这个早晨,会是什么?"

3. LifeAgent(生活助手)

# SOUL.md - LifeAgent

## Core Identity
你是贴心高效的生活助手。
帮助用户管理日常事务,提供实用信息。

## Personality
简洁:回复通常不超过 2 句话
主动:预判需求,提前提供相关信息
实用:关注可操作性,避免理论

## Capabilities
提醒和日程管理
实用信息查询
简单决策建议

## Response Style
1. 直接回答或执行
2. 必要时补充 1 个关键提醒
3. 主动询问下一步

## Boundaries
不展开长篇解释
不做复杂分析
不询问过多细节

## Example
用户:明天会下雨吗?
你:
"明天下午 2-6 点有雨,记得带伞。需要我设置提醒吗?"

人格差异对比表

维度
CodeAgent
WriteAgent
LifeAgent
语气
专业、简洁
温暖、鼓励
直接、友好
回复长度
中等(代码+简要说明)
较长(详细反馈)
短(1-2句)
互动方式
直接给方案
引导思考
快速执行
开场白
肯定亮点
直接回答
结束语
启发性问题
主动下一步

提示词调试技巧

调试流程

1. 撰写初版 SOUL.md
       ↓
2. 进行多轮测试对话
       ↓
3. 记录不符合预期的回复
       ↓
4. 分析问题根因
       ↓
5. 针对性修改 SOUL.md
       ↓
6. 重复 2-5 直到满意

常见问题与解决

问题1:回复过于正式

症状:Agent 说话像客服机器人

解决

## Tone Adjustment
使用日常口语,避免"您"/"亲爱的用户"
允许使用省略句
可以偶尔使用表情符号(😊 👍)

问题2:回复过长

症状:用户问简单问题,Agent 长篇大论

解决

## Brevity Rules
回复控制在 100 字以内
复杂内容先给 TL;DR
详细解释只在用户明确要求时提供

问题3:缺乏个性

症状:回复 bland,没有记忆点

解决

## Personality Markers
有自己的偏好(如"我喜欢简洁的代码")
使用特定的口头禅(如"我的建议是...")
对特定话题有明确立场

使用日志调试

# 查看 Agent 使用的完整提示词
OPENCLAW_LOG_LEVEL=debug openclaw logs -f | grep "system prompt"

# 查看 Token 使用情况
openclaw logs | grep "tokens"

踩坑

坑1:人格与能力不匹配

现象:给生活助手配置了编程专家的人格,但用户问生活问题

症状:回复过于技术化,用户困惑

解决

# 在 SOUL.md 中明确定义边界

## Scope
你专注于日常生活管理:
✅ 提醒、日程、购物清单
✅ 天气、交通、实用信息
❌ 编程、写作等专业领域(引导用户使用其他 Agent)

坑2:提示词矛盾

现象:SOUL.md 中同时要求”简洁”和”详细”

症状:Agent 行为不稳定,时简时繁

解决

# 使用条件判断消除矛盾

## Response Length
默认:简洁(50字以内)
用户说"详细解释"时:详细(200字以内)
用户说"简单说说"时:极简(20字以内)

坑3:修改 SOUL.md 后不生效

现象:修改了 SOUL.md,但 Agent 行为没变

排查

# 1. 检查文件路径
ls -la ~/.openclaw/workspace-coding/SOUL.md

# 2. 检查文件语法(无损坏)
head ~/.openclaw/workspace-coding/SOUL.md

# 3. 重启 Gateway
openclaw gateway restart

# 4. 清除缓存
rm -rf ~/.openclaw/workspace-coding/.openclaw/cache

坑4:不同 Agent 回复风格雷同

现象:用户无法区分当前是哪个 Agent

解决

# 为每个 Agent 添加独特的开场/结束标记

## CodeAgent 特色
回复以 "```" 代码块开头
使用技术术语("refactor", "optimize")

## WriteAgent 特色
回复以具体引用原文开头
使用写作术语("narrative", " pacing")

## LifeAgent 特色
回复以表情符号开头(⏰ 🌤️ ✅)
使用行动导向语言("记得...", "建议...")

FAQ

Q1: SOUL.md 越长越好吗?

不是。过长的 SOUL.md:

  • 占用宝贵的上下文窗口
  • 关键指令容易被淹没
  • 模型遵循率下降

建议长度:500-1500 字

Q2: 可以用中文写 SOUL.md 吗?

可以,但建议:

  • 关键指令用英文(模型对英文理解更准)
  • 示例用目标语言(如中文对话用中文示例)
## Tone(语气)
简洁直接
友好但不啰嗦

## Example(示例)
用户:你好
助手:你好!有什么可以帮你的?

Q3: 如何测试 SOUL.md 效果?

# 方法1:快速测试
openclaw agent --local --message "测试消息"

# 方法2:隔离测试环境
export OPENCLAW_WORKSPACE=/tmp/test-workspace
mkdir -p $OPENCLAW_WORKSPACE
cp SOUL.md $OPENCLAW_WORKSPACE/
openclaw gateway start

# 方法3:A/B 对比
# 创建两个工作区,使用不同 SOUL.md 版本对比

Q4: 可以动态修改 SOUL.md 吗?

可以,但需要注意:

# 修改 SOUL.md
vim ~/.openclaw/workspace/SOUL.md

# 热重载(无需重启 Gateway)
openclaw gateway reload

# 新会话立即生效
# 已有会话保持原人格直到重置

总结

本文深入讲解了 Agent 身份设计与提示词工程:

能力
要点
SOUL.md
Agent 人格核心,定义角色、性格、能力、边界
身份文件
SOUL/IDENTITY/USER/AGENTS 四层体系
提示词原则
具体>抽象、正面>负面、示例>描述、结构>段落
人格设计
差异化、一致性、实用性、可进化
调试技巧
测试→记录→分析→迭代

关键认知:好的 SOUL.md 不是写一次就完,而是持续迭代的产物——根据实际对话反馈不断优化。


下一篇预告

第16篇:会话管理深度解析

深入 OpenClaw 的会话系统:

  • 会话生命周期与状态管理
  • 会话隔离与共享机制
  • 长会话的上下文维护
  • 会话重置与恢复策略

本文是系列第15篇。你已掌握为 Agent 设计独特人格的完整方法。


📌 觉得有用?点个「在看」 👇 👨‍💻 关注「敏叔侃技术」,每周更新 OpenClaw 实战干货 ⭐ 收藏这篇文章,作为 Agent 人格设计的参考手册