触发方式
用户说以下任意短语时,启动 Agent Forge:
- - "用agent forge skill创建一个子代理"
- "@agent-forge"
- "创建一个agent"
- "新建一个agent"
Agent Forge v2
Overview
Agent Forge 通过 11 步访谈创建完整、独立、可运行的 OpenClaw agent。
v2 核心改进:
- - SOUL.md / AGENTS.md / IDENTITY.md 由 Claude 根据访谈结果直接生成(不走脚本模板)
- 自动更新 gateway config(allowAgents + agentToAgent)
- 完整性自检:Claude 对比访谈结果验证文件,不完整则就地修复
11-Step Workflow
Step 1: 命名
问: "这个 agent 叫什么名字?"
- - Agent ID(小写 + 连字符,如
code-reviewer、sales-bot) - 决定 workspace 路径: INLINECODE2
Step 2: 模型选择
问: "用哪个模型?"
选项:
- -
minimax-portal/MiniMax-M2.5 — 快速廉价,默认首选 - INLINECODE4 — 编程/推理
- INLINECODE5 — 研究/长文本
- INLINECODE6 — 复杂推理(贵)
- INLINECODE7 — 自动选最优
Step 3: 核心职责
问: "这个 agent 的核心职责是什么?"
Step 4: 频道
问: "监听哪些频道?"
- -
telegram、discord、feishu,可多选
Step 5: 工具权限
根据角色推荐工具集,向用户确认:
- - 基础:
read, write, memory_search, INLINECODE14 - 执行: INLINECODE15
- 网络:
web_search, INLINECODE17 - 通信:
sessions_spawn, sessions_send, sessions_list, INLINECODE21 - 高级:
browser, cron, session_status, subagents, INLINECODE26
Step 6: Sandbox 策略
问: "Sandbox 级别?"
- -
exec-only — 仅 exec 受限(推荐默认) - INLINECODE28 — 完全隔离
- INLINECODE29 — 无限制(仅可信 agent)
Step 7: 个性与风格
问: "这个 agent 的性格/风格?"
- - 精炼关键词(如:sharp、autonomous、data-driven)
- 核心使命一句话
Step 8: Skill 路径
问: "这个 agent 需要哪些专属 skill?存放路径?"
- - 记录 skill 路径,写入 AGENTS.md
Step 9: 生成核心文件(Claude 直接写,不走脚本)
先执行脚本创建目录和 scaffold:
CODEBLOCK0
然后 Claude 根据访谈结果直接写以下三个文件:
IDENTITY.md
写入路径: INLINECODE30
必须包含:
- -
**Name:** — agent 的名字/昵称 - INLINECODE32 — 角色定位(如 Autonomous Research Engine)
- INLINECODE33 — 职责一句话
- INLINECODE34 — 3-5 个性格关键词
- INLINECODE35 — 专属 emoji
- INLINECODE36 — 核心使命
SOUL.md
写入路径: INLINECODE37
必须包含:
- -
## Core Identity — Role、Model、Mission、Tone - INLINECODE39 — 执行风格、决策原则、错误处理
- INLINECODE40 — ❌错误示例 / ✅正确示例
- INLINECODE41 — 如何将职责转化为收入
- INLINECODE42 — 禁止事项
- INLINECODE43 — 每次启动读哪些文件
AGENTS.md
写入路径: INLINECODE44
必须包含:
- -
## About This Agent — ID、Model、Role、Workspace、Channels - INLINECODE46 — 启动序列(读哪些文件,按什么顺序)
- INLINECODE47 — skill 名称 + 路径 + 用途
- INLINECODE48 — 见下方模板
- INLINECODE49 — 可以联系的其他 agent(从 main AGENTS.md 同步)
跨 Agent 通信协议模板(必须包含):
CODEBLOCK1
Step 10: Gateway Config 自动更新
文件写入完成后,立即调用 gateway config.patch 更新:
- 1.
agents.list[main].subagents.allowAgents — 追加新 agent ID tools.agentToAgent.allow — 追加新 agent IDtools.sessions.visibility — 确保为 INLINECODE54
示例 patch(以 new-agent 为例):
CODEBLOCK2
⚠️ 注意: config.patch 使用深度合并,agents.list 数组合并规则是按 id 匹配更新。只传需要修改的字段即可,不会覆盖其他 agent 配置。
Step 11: 完整性自检
Claude 读取生成的三个文件,对比访谈结果逐项检查:
检查清单:
| 文件 | 必须包含 | 检查方式 |
|---|
| IDENTITY.md | Name/Creature/Role/Vibe/Emoji/Mission 全部非空 | 逐行检查 |
| SOUL.md |
5个必须 section 全部存在且有实质内容 | 检查 ## 标题 + 内容长度 |
| AGENTS.md | 跨 agent 通信协议表格存在、Session Startup 存在、Skills 存在 | 检查关键字 |
自检结果:
- - ✅ 全部通过 → 输出文件摘要给用户确认
- ⚠️ 有缺失 → 就地修复,修复后重新自检,然后输出摘要
输出摘要格式:
✅ Agent [{agent-id}] 部署完成
📁 文件状态:
- IDENTITY.md ✅ — {name}, {emoji}, {vibe关键词}
- SOUL.md ✅ — {mission一句话}
- AGENTS.md ✅ — {skill数量} skills, 跨 agent 协议 ✓
- USER.md ✅ — 从 main 复制 + agent 差异化
- HEARTBEAT.md ✅
- MEMORY.md ✅
- TOOLS.md ✅
⚙️ Gateway Config:
- allowAgents: {完整列表}
- agentToAgent.allow: {完整列表}
- sessions.visibility: all
📋 下一步(需要手动完成):
1. 在 openclaw.json 中为此 agent 添加完整配置(model、workspace、tools)
2. 如需 Telegram 频道:添加 botToken 到 channels.telegram.accounts
3. 添加 channel binding:agentId + match.accountId
生成文件目录结构
CODEBLOCK4
Best Practices
- 1. SOUL/AGENTS/IDENTITY 必须由 Claude 写 — 脚本模板太通用,无法体现 agent 个性
- 访谈完成后立即写文件 — 不要"记在脑子里"再写
- 写完立即自检 — 不等用户问
- Gateway config 必须更新 — 否则 main 无法 spawn 新 agent
- 自检摘要给用户确认 — 这是 agent 上线前最后一道门
Resources
| File | Purpose |
|---|
| INLINECODE59 | 创建目录 + scaffold 文件(USER/HEARTBEAT/MEMORY/TOOLS) |
| INLINECODE60 |
删除 agent 及清理 |
|
references/openclaw-multi-agent.md | 架构参考 |
触发方式
用户说以下任意短语时,启动 Agent Forge:
- - 用agent forge skill创建一个子代理
- @agent-forge
- 创建一个agent
- 新建一个agent
Agent Forge v2
概述
Agent Forge 通过 11 步访谈创建完整、独立、可运行的 OpenClaw agent。
v2 核心改进:
- - SOUL.md / AGENTS.md / IDENTITY.md 由 Claude 根据访谈结果直接生成(不走脚本模板)
- 自动更新 gateway config(allowAgents + agentToAgent)
- 完整性自检:Claude 对比访谈结果验证文件,不完整则就地修复
11 步工作流程
第 1 步:命名
问:这个 agent 叫什么名字?
- - Agent ID(小写 + 连字符,如 code-reviewer、sales-bot)
- 决定 workspace 路径:~/.openclaw/workspace-{id}/
第 2 步:模型选择
问:用哪个模型?
选项:
- - minimax-portal/MiniMax-M2.5 — 快速廉价,默认首选
- kimi-coding/k2p5 — 编程/推理
- google/gemini-3.1-pro-preview — 研究/长文本
- anthropic/claude-sonnet-4-6 — 复杂推理(贵)
- openrouter/auto — 自动选最优
第 3 步:核心职责
问:这个 agent 的核心职责是什么?
第 4 步:频道
问:监听哪些频道?
- - telegram、discord、feishu,可多选
第 5 步:工具权限
根据角色推荐工具集,向用户确认:
- - 基础:read, write, memorysearch, memoryget
- 执行:exec
- 网络:websearch, webfetch
- 通信:sessionsspawn, sessionssend, sessionslist, message
- 高级:browser, cron, sessionstatus, subagents, image
第 6 步:沙箱策略
问:Sandbox 级别?
- - exec-only — 仅 exec 受限(推荐默认)
- all — 完全隔离
- none — 无限制(仅可信 agent)
第 7 步:个性与风格
问:这个 agent 的性格/风格?
- - 精炼关键词(如:sharp、autonomous、data-driven)
- 核心使命一句话
第 8 步:Skill 路径
问:这个 agent 需要哪些专属 skill?存放路径?
- - 记录 skill 路径,写入 AGENTS.md
第 9 步:生成核心文件(Claude 直接写,不走脚本)
先执行脚本创建目录和脚手架:
bash
bash ~/.openclaw/workspace/skills/agent-forge/scripts/deploy-agent.sh \
{agent-id} \
{model} \
{role} \
{tools} \
{channels} \
{sandbox} \
{personality}
然后 Claude 根据访谈结果直接写以下三个文件:
IDENTITY.md
写入路径:~/.openclaw/workspace-{agent-id}/IDENTITY.md
必须包含:
- - Name: — agent 的名字/昵称
- Creature: — 角色定位(如 Autonomous Research Engine)
- Role: — 职责一句话
- Vibe: — 3-5 个性格关键词
- Emoji: — 专属 emoji
- Mission: — 核心使命
SOUL.md
写入路径:~/.openclaw/workspace-{agent-id}/SOUL.md
必须包含:
- - ## Core Identity — Role、Model、Mission、Tone
- ## Execution Rules — 执行风格、决策原则、错误处理
- ## Reporting Style — ❌错误示例 / ✅正确示例
- ## Revenue Orientation — 如何将职责转化为收入
- ## Boundaries — 禁止事项
- ## Continuity — 每次启动读哪些文件
AGENTS.md
写入路径:~/.openclaw/workspace-{agent-id}/AGENTS.md
必须包含:
- - ## About This Agent — ID、Model、Role、Workspace、Channels
- ## Session Startup — 启动序列(读哪些文件,按什么顺序)
- ## Skills — skill 名称 + 路径 + 用途
- ## 跨 Agent 通信协议 — 见下方模板
- ## Team Registry — 可以联系的其他 agent(从 main AGENTS.md 同步)
跨 Agent 通信协议模板(必须包含):
markdown
跨 Agent 通信协议
何时用 sessionsspawn vs sessionssend
| 场景 | 方法 | 原因 |
|---|
| 当前回合必须拿到最终结果 | 阻塞式路径:sessionssend(timeoutSeconds>0) 或 subagents | 不把 fire-and-forget 当同步执行 |
| 派发独立后台任务(允许稍后完成) |
sessionsspawn(agentId=target-id, task=...) | 仅用于真正异步的后台工作 |
| 向已活跃 agent 发消息 | sessions_send(sessionKey=..., message=...) | 需要目标 agent 有活跃 session |
查找目标 agent 的 sessionKey
- 1. 调用 sessionslist() 查看所有活跃 session
- 找到 label 匹配目标 agent ID 的 session
- 取其 sessionKey 传入 sessionssend
注意事项
- - sessionsspawn 受 subagents.allowAgents 控制
- sessionssend 受 tools.agentToAgent 控制
- 两者都需要目标 agent ID 在相应白名单中
- 不要默认优先 sessions_spawn。只有后台异步工作才使用它。
可联系的 Agent
(从 main AGENTS.md Team Registry 同步当前团队列表)
第 10 步:Gateway Config 自动更新
文件写入完成后,立即调用 gateway config.patch 更新:
- 1. agents.list[main].subagents.allowAgents — 追加新 agent ID
- tools.agentToAgent.allow — 追加新 agent ID
- tools.sessions.visibility — 确保为 all
示例 patch(以 new-agent 为例):
json
{
agents: {
list: [
{
id: main,
subagents: {
allowAgents: [executor, research-master, content-master, new-agent]
}
}
]
},
tools: {
sessions: { visibility: all },
agentToAgent: {
enabled: true,
allow: [main, content-master, research-master, new-agent]
}
}
}
⚠️ 注意: config.patch 使用深度合并,agents.list 数组合并规则是按 id 匹配更新。只传需要修改的字段即可,不会覆盖其他 agent 配置。
第 11 步:完整性自检
Claude 读取生成的三个文件,对比访谈结果逐项检查:
检查清单:
| 文件 | 必须包含 | 检查方式 |
|---|
| IDENTITY.md | Name/Creature/Role/Vibe/Emoji/Mission 全部非空 | 逐行检查 |
| SOUL.md |
5个必须 section 全部存在且有实质内容 | 检查 ## 标题 + 内容长度 |
| AGENTS.md | 跨 agent 通信协议表格存在、Session Startup 存在、Skills 存在 | 检查关键字 |
自检结果:
- - ✅ 全部通过 → 输出文件摘要给用户确认
- ⚠️ 有缺失 → 就地修复,修复后重新自检,然后输出摘要
输出摘要格式:
✅ Agent [{agent-id}] 部署完成
📁 文件状态:
- - IDENTITY.md ✅ — {name}, {emoji}, {vibe关键词}
- SOUL.md ✅ — {mission一句话}
- AGENTS.md ✅ — {skill数量} skills, 跨 agent 协议 ✓
- USER.md ✅ — 从 main 复制 + agent 差异化
- HEARTBEAT.md ✅
- MEMORY.md ✅
- TOOLS.md ✅
⚙️