Agent Add

Other

可能是最好的新增 agent 的技能! 用 AI 新建 agent 往往会碰到各种不可预测的情况,md 文档混乱,目录混乱等等。 但 openclaw 其实已经建立了一整套建立 新agent 的终端命令,能规范的配置 md文件 和 workspace。 这个技能可以让 AI 严格按 OpenClaw 官方规范创建...

Install

openclaw skills install agent-add

Agent Add — 新建 OpenClaw Agent

这是按照 OpenClaw 官方规范建立新 agent 的技能。全程遵循 openclaw agents add CLI 命令的标准化流程,确保新建 agent 后自动生成完整的 workspace 和一系列精炼的 .md 引导文档,让 AI 更好地配合人类工作。

流程

第一步:逐个确认信息(严格一问一答)

用户如果需要添加 agent,务必严格分开问、一个一个问。每个问题发出后,等用户回复并确认,再问下一个。不要一次性问多个问题,不要把最后一个问题和汇总合并。

关键规则: 每问一个问题 → 等用户回复 → 确认收到 → 再问下一个。5 个问题全部确认完毕后再进入第二步汇总。

问题 1:Agent 名字

请给这个 agent 起个名字。这个名字会决定:

  • 工作目录的名称
  • 界面中选择 agent 时显示的名字
  • 在群里 @召唤 这个 agent 时使用的名字

建议: 尽量简短好记,2-4 个字或英文单词。例如:助手coder小秘

收到回复后确认: "好的,agent 名字确定为 {name}。"

问题 2:Agent 的定位描述

请描述一下这个 agent 的定位。可以参考以下格式:

  • 用途: 这是我的___,用来___
  • 昵称/称呼: (可选)
  • 性格/风格: 严谨 / 幽默 / 简洁 / 温暖 / 专业...
  • 图标 emoji: 选一个代表它的符号

图标建议(根据 agent 名字 {name} 推荐,仅供参考,可以自己选):

(根据名字的类型动态推荐 5-8 个相关 emoji,不要固定列同一批。例如:

  • 教育/老师类:🎓 📚 ✏️ 🍎 🧑‍🏫
  • 代码/技术类:💻 🔧 ⚙️ 🐛 🖥️
  • 写作/文案类:✍️ 📝 📖 🖊️ 📰
  • 数据/分析类:📊 📈 📉 🔢 🧮
  • 日常/助手类:📋 ✅ ⚡ 🤖 💡
  • 设计/创意类:🎨 🎭 🖼️ ✨ 🎬)

示例:

  • "这是我的代码审查助手,用来 review PR 和检查 bug,风格严谨简洁,图标用 🔍"
  • "这是我的日常秘书,帮我管理日程和邮件,语气温暖友好,图标用 📋"
  • "这是我的数据分析 agent,处理报表和可视化,专业高效,图标用 📊"

收到回复后确认: "好的,定位描述已记录。"

问题 3:Avatar 头像选择

根据用户的定位描述,从技能目录 avatars/ 下的 35 个 SVG 头像中智能推荐 3-5 个最相关的

展示方式(编号 + 图像预览):

  1. 先用 exec 调用 rsvg-convert 把推荐的每个 SVG 转成 200x200 PNG 预览图
  2. 预览图存到技能目录的 avatars/ 子目录下,命名为 {原文件名}-preview.png
  3. MEDIA 附件发送这些预览图(路径在 ~/.openclaw/skills/ 下,在允许范围内)
  4. 每条 MEDIA 附带编号和文件名
  5. 用户通过回复编号来选择

转换命令示例:

rsvg-convert -w 200 -h 200 {baseDir}/avatars/{filename}.svg -o {baseDir}/avatars/{filename}-preview.png

请为这个 agent 选择一个头像。以下是推荐的选项(带预览图):

(对每个推荐头像,发送 MEDIA:{baseDir}/avatars/{filename}-preview.png,并标注编号和文件名)

回复编号即可(如 "1")。如果不选或说跳过,将自动使用第 1 个。

推荐原则:根据定位关键词匹配最相关的职业/角色头像。例如教育类推荐 teacher、医护类推荐 doctor/nurse、技术类推荐 worker、写作类推荐 writer/journalist 等。

收到回复后确认: "好的,头像确定为 {avatarFile}。"

  • 用户回复编号 → 确认对应文件名
  • 用户说跳过/不选 → 自动使用推荐的第 1 个,并告知用户

问题 4:模型选择

先用 session_status 获取当前会话使用的模型,再从 openclaw.json 读取 agents.defaults.model.primary 作为默认模型。

请选择这个 agent 使用的模型。可选:

  • 当前主 agent 正在使用的模型: {currentModel}(推荐,和现有 agent 一致)
  • 默认模型: {defaultModel}

先选一个能用的就行,后面随时可以换模型。

收到回复后确认: "好的,模型确定为 {model}。"

问题 5:Workspace 目录

计算规则(按实际使用方式):

  1. 先找到 main agent workspace 的父目录
  2. 新 agent 的 workspace = {父目录}/workspace-{agentId}
  3. 也就是和 main 的 workspace 平级,在同一目录下

例如 main workspace 是 /data1/.openclaw/workspace,则:

  • 父目录 = /data1/.openclaw/
  • 新 workspace = /data1/.openclaw/workspace-{agentId}

新 agent 的 workspace 将创建在以下位置:

{实际计算出的路径,例如 /data1/.openclaw/workspace-xiaolaoshi}

这个目录和 main agent 的 workspace 平级。确认使用这个默认路径,还是指定其他路径?

收到回复后确认: "好的,workspace 路径确定为 {workspacePath}。"


⚠️ 注意:问题 5 确认后,等用户回复,再单独进入第二步汇总。不要把问题 5 和汇总合并在一起问。

第二步:汇总确认

五个问题全部逐个确认后,给用户展示完整汇总:

📋 即将创建的新 Agent:

- Agent ID: {agentId}
- 显示名称: {name}
- 定位: {description}
- 头像: {avatarFile}
- 模型: {model}
- Workspace: {workspacePath}
- 图标 emoji: {emoji}

确认以上信息?(回复"确认"或指出需要修改的地方)

用户确认后,告知即将生成的文档列表:

📁 新 agent 的 workspace 中将包含以下 OpenClaw 精炼文档:

这些文档规范了 AI 的行为准则,能让 AI 更好地帮助人类工作。
建议让 AI 按照各自规范自动填充内容,尽量不要手动删除。

| 文件 | 定位 | 核心职责 | 生命周期 |
|------|------|---------|---------|
| AGENTS.md | 🏛️ 行为宪法 | 操作规则、优先级、记忆使用指令 | 持久存在 |
| BOOTSTRAP.md | 👶 出生证明 | 首次运行仪式,引导填充 IDENTITY/USER/SOUL | 一次性,完成后自毁 |
| IDENTITY.md | 🪪 身份证 | 名字、类型、emoji | Bootstrap 创建,后续可更新 |
| USER.md | 📇 用户速查卡 | 用户名、称呼、时区 | Bootstrap 创建,持续更新 |
| SOUL.md | 🎭 灵魂/人格 | 语气、立场、边界、幽默感 | 持久存在,随时打磨 |
| TOOLS.md | 🛠️ 工具说明书 | 本地工具惯例与配置备忘 | 持久存在 |
| MEMORY.md | 🧠 精选长期记忆 | 事实、偏好、决策摘要 | 持久存在 |
| HEARTBEAT.md | 🔁 定时任务清单 | Heartbeat 检查待办项 | 持久存在(可选) |

第三步:执行创建

用户最终确认后,先执行脚本注册 agent(传入所有确认的信息):

{baseDir}/scripts/agent-add.sh <agentId> <name> <workspacePath> <model> <description> <emoji> <avatarFile>

参数说明:

  • agentId — agent 唯一标识
  • name — 显示名称
  • workspacePath — workspace 绝对路径
  • model — 模型 id
  • description — 定位描述(用户问题2的完整回答)
  • emoji — 图标 emoji
  • avatarFile — avatar 文件名(如 teacher-female.svg

脚本会自动完成:

  1. 执行 openclaw agents add 命令
  2. openclaw agents list 验证添加成功
  3. 检查 workspace 中的 .md 文件是否存在,缺失则从 main workspace 补充
  4. {baseDir}/history/history.md 中记录本次创建

第四步:初始化文档内容(按区块追加,不覆盖)

脚本执行完成后,用 edit 工具对以下文件做精准编辑不是全盘覆盖

核心原则: 原始模板里的通用约束(Core Truths、Boundaries、Continuity、Related 等)是 OpenClaw 精炼过的行为准则,必须保留。只按类别追加/替换与新 agent 定位相关的内容。

IDENTITY.md — 只替换字段值,保留结构和 Notes/Related

edit 工具做精确替换:

  • **Name:** 后面的空值替换为 agent 名字
  • **Creature:** 替换为 agent 的类型描述(例如 "AI 学习助手")
  • **Vibe:** 替换为风格描述
  • **Emoji:** 替换为选定的 emoji
  • **Avatar:** 替换为 avatars/{avatarFile}(如果脚本已复制头像文件,则此处已由脚本处理;否则手动写入)
  • 保留原有的 Notes、Related 等所有其他区块不变

SOUL.md — 在原有结构上追加定位内容,不删通用约束

edit 工具:

  • 保留原有的 Core Truths、Boundaries、Vibe、Continuity、Related 全部不变
  • read 查看原始 SOUL.md 有哪些类别(H2/H3 标题)
  • 优先在已有类别下追加/替换内容,例如把 ## 定位 下的内容替换为新 agent 的定位
  • 除非某个类别原始完全没有,并且确实需要,才新增类别。不要凭空创造大量新章节
  • 沟通风格部分:如果原有 ## Vibe / 沟通风格 存在,在其中追加新 agent 的语言/语气要求

USER.md — 只替换用户相关字段,保留结构

edit 工具:

  • **name:** 替换为用户名字(如果用户有特别指定的话,否则保留原始的 老杨)
  • 保留原有的 Notes、Related 等所有其他区块不变

⚠️ 关键: 每个文件用 edit 做精准替换(oldText/newText),不要用 write 全盘覆盖。先 read 看原始内容,再决定怎么 edit。

第五步:完成提示

文档初始化完成后,告诉用户:

✅ Agent {name} 已创建成功!

Workspace: {workspacePath}

已完成的工作:

  • Agent 注册到 OpenClaw(ID: {agentId})
  • Workspace 初始化,包含所有必要文档
  • IDENTITY.md — 身份信息已写入
  • SOUL.md — 定位和风格已配置(保留原始通用约束)
  • USER.md — 用户信息已更新

是否现在重启 gateway 使新 agent 生效? 运行 openclaw gateway restart 即可。

注意事项

  • Agent ID 使用小写字母、数字和连字符(如 my-agent
  • 显示名称可以是中文或任意语言
  • Workspace 路径必须是一个空目录或不存在的路径(脚本会创建)
  • 模型选择影响 agent 的推理能力和速度,根据用途合理选择