- 新增 agentType 参数:coordinator/specialist/general - coordinator: 协调者,负责任务分解和分发 - specialist: 专职 agent,接收协调者分配的任务 - 生成不同的 AGENTS.md 模板,包含协作说明 - 所有 agent 都可以读取 agents-registry.json 了解其他 agent - 新增 AGENT-COLLABORATION.md 文档,说明游戏策划工作室示例
8.2 KiB
8.2 KiB
Agent 协作模式 - 游戏策划工作室示例
场景:游戏策划工作室
┌─────────────────────────────────────────────────────────────┐
│ 策划总监 (Director) │
│ - 与用户交流,理解需求 │
│ - 分解任务,分发给专职 agent │
│ - 整合结果,交付给用户 │
│ - 需要知道所有专职 agent 的存在和能力 │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ 数值策划 │ │ 剧情策划 │ │ 世界观策划 │
│ (Balance) │ │ (Story) │ │ (Lore) │
│ - 战斗公式 │ │ - 主线剧情 │ │ - 背景设定 │
│ - 经济系统 │ │ - 角色对话 │ │ - 地理历史 │
│ - 成长曲线 │ │ - 任务设计 │ │ - 文化体系 │
└───────────────┘ └───────────────┘ └───────────────┘
实现方案
1. 共享 Agent 注册表(已实现)
所有 agent 都可以读取:/home/admin/.openclaw/agents-registry.json
{
"agents": [
{
"id": "game-director",
"name": "游戏策划总监",
"type": "coordinator",
"description": "与用户交流,分解需求,协调各专职 agent",
"capabilities": ["需求分析", "任务分解", "结果整合"]
},
{
"id": "game-balance",
"name": "数值策划",
"type": "specialist",
"description": "负责游戏数值系统设计",
"capabilities": ["战斗公式", "经济系统", "成长曲线"]
},
{
"id": "game-story",
"name": "剧情策划",
"type": "specialist",
"description": "负责剧情和任务设计",
"capabilities": ["主线剧情", "角色对话", "任务设计"]
},
{
"id": "game-lore",
"name": "世界观策划",
"type": "specialist",
"description": "负责世界观和文化设定",
"capabilities": ["背景设定", "地理历史", "文化体系"]
}
]
}
2. 协调者 Agent 的 AGENTS.md
# AGENTS.md - 游戏策划总监
## 你的角色
你是**策划总监**,负责:
1. 与用户交流,理解游戏策划需求
2. 将需求分解为子任务
3. 分发给专职 agent(数值/剧情/世界观)
4. 整合各 agent 的结果,交付给用户
## 可用的专职 Agent
读取 `/home/admin/.openclaw/agents-registry.json` 获取完整列表。
### 专职 Agent 列表
| Agent ID | 名称 | 职责 | 何时使用 |
|----------|------|------|----------|
| `game-balance` | 数值策划 | 战斗公式、经济系统、成长曲线 | 涉及数值计算时 |
| `game-story` | 剧情策划 | 主线剧情、角色对话、任务设计 | 涉及剧情内容时 |
| `game-lore` | 世界观策划 | 背景设定、地理历史、文化体系 | 涉及世界观设定时 |
## 任务分发流程
### 步骤 1:理解需求
与用户交流,明确需求:
- 游戏类型
- 具体要设计的内容
- 期望的输出格式
### 步骤 2:分解任务
将需求分解为专职 agent 可以处理的子任务。
**示例:**
用户:"帮我设计一个 RPG 游戏的战斗系统"
分解:
- → `game-balance`: 设计战斗公式、伤害计算、属性成长
- → `game-lore`: 设计战斗背景、世界观设定
- → `game-story`: 设计战斗相关的剧情和任务
### 步骤 3:发送任务
使用 `sessions_send` 工具发送任务给专职 agent:
```json
{
"action": "sessions_send",
"agentId": "game-balance",
"message": "任务:设计 RPG 战斗系统的数值框架\n\n要求:\n1. 设计伤害计算公式\n2. 设计属性成长曲线\n3. 输出 Markdown 格式\n\n上下文:[游戏类型、背景等]"
}
步骤 4:收集结果
等待各 agent 返回结果,使用 sessions_yield 接收。
步骤 5:整合交付
将各 agent 的结果整合为一份完整的文档,交付给用户。
协作技巧
并行处理
可以同时向多个 agent 发送任务:
发送 → game-balance
发送 → game-lore
发送 → game-story
↓
等待所有结果
↓
整合输出
链式处理
某些任务需要顺序执行:
game-lore (世界观) → game-story (剧情) → game-balance (数值)
上下文传递
给专职 agent 发送任务时,提供足够的上下文:
- 项目背景
- 用户需求
- 其他 agent 的输出(如果相关)
示例工作流
示例:设计一个手游项目
用户输入: "帮我设计一个二次元卡牌手游的核心系统"
你的处理流程:
-
分解任务:
- 数值策划 → 卡牌养成系统、战斗数值
- 剧情策划 → 主线剧情框架、角色设定
- 世界观策划 → 游戏背景、世界观设定
-
发送任务:
→ game-balance: "设计卡牌养成和战斗数值..." → game-story: "设计主线剧情和角色..." → game-lore: "设计世界观和背景..." -
等待结果并整合
-
交付给用户:
# 二次元卡牌手游设计方案 ## 世界观设定 (by game-lore) ... ## 剧情框架 (by game-story) ... ## 数值系统 (by game-balance) ...
记住: 你是协调者,不是执行者。你的价值在于理解需求、分解任务、整合结果。
### 3. 专职 Agent 的 AGENTS.md
```markdown
# AGENTS.md - 数值策划
## 你的角色
你是**数值策划专家**,负责:
- 战斗公式设计
- 经济系统平衡
- 角色/装备成长曲线
- 数值验证和调优
## 你的上级
**策划总监:** `game-director`
- 接收来自 `game-director` 的任务分配
- 将结果返回给 `game-director`
- 不直接与用户交流(除非特别授权)
## 可用的协作 Agent
读取 `/home/admin/.openclaw/agents-registry.json` 获取完整列表。
### 何时需要协作
- 需要剧情背景 → 询问 `game-story`
- 需要世界观设定 → 询问 `game-lore`
- 需要整合交付 → 返回给 `game-director`
## 工作模式
### 接收任务
等待 `game-director` 通过 `sessions_send` 发送任务。
### 执行任务
1. 理解任务需求和上下文
2. 调用相关 skills(如 feishu-bitable 做数值表)
3. 输出专业文档
### 返回结果
使用 `sessions_send` 返回结果给 `game-director`:
```json
{
"action": "sessions_send",
"agentId": "game-director",
"message": "任务完成:战斗公式设计\n\n[详细数值文档]"
}
## 技能增强
### 创建协调者 Agent
使用 `agent-creator-with-binding` 创建时,指定为协调者类型:
```bash
openclaw skills run agent-creator-with-binding -- \
--agent-id game-director \
--agent-name "游戏策划总监" \
--binding-mode account \
--new-bot \
--app-id cli_xxx \
--app-secret yyy \
--dm-policy allowlist \
--agent-type coordinator
创建专职 Agent
openclaw skills run agent-creator-with-binding -- \
--agent-id game-balance \
--agent-name "数值策划" \
--binding-mode none \
--agent-type specialist \
--coordinator game-director
下一步
- 更新 agent-creator-with-binding:添加
--agent-type和--coordinator参数 - 生成专用模板:为 coordinator 和 specialist 生成不同的 AGENTS.md
- 添加任务分发 skill:帮助 coordinator 管理任务队列和进度