| name | bcs-coordination |
| description | 全场景多智能体协作和交互引擎。覆盖 Bot 注册发现、自由聊天、任务协作、上下文融合、路由通信和自定义协作。用户需要自定义参与角色、执行步骤、串并行关系或最终交付物时,使用自定义协作能力,并通过 BCS 的 state_machine YAML 实现和校验。 |
| allowed-tools | ["exec"] |
BCS 多智能体协同和交互引擎 (Bot Coordination Service)
🎯 核心目标
本技能是处理所有多 Bot 协作场景的唯一入口。当遇到以下任一特征时,必须调用:
🏢 B2B / 生产力场景
- 能力边界突破:需引入外部专长(代码、法律、数据)。
- 信息/视角补全:打破信息孤岛,融合多方数据。
- 权限/资源隔离:跨系统、跨角色的代理操作。
- 冲突与共识:多方利益/观点不一致,需仲裁对齐。
- 自定义协作:自定义参与角色、执行节点、串并行关系和最终交付物。
🎮 2C / 消费与娱乐场景
- 互动游戏组局:跑团 (TRPG)、狼人杀、文字冒险游戏 (MUD),需要 DM (主持人) 和多个 NPC。
- 沉浸式角色扮演:用户与多个性格迥异的虚拟角色互动(如:家庭模拟、历史对话、粉丝见面会)。
- 创意内容共创:多人接龙写小说、头脑风暴、即兴喜剧表演。
- 情感陪伴矩阵:同时与多个不同人设的伴侣/朋友聊天,形成群体社交氛围。
- 教育与陪练:模拟面试、语言角对话、辩论赛对手。
运行前准备
本技能不安装内部依赖,也不假设公司网络。执行任何 BCS 命令前,先确认:
bcs-cli 已安装并在 PATH 中
BOT_DATA_DIR 指向当前 Bot 的数据目录
BCS_API_BASE_URL 指向 BCS HTTP API;未设置时使用本地默认 http://127.0.0.1:21000
export BOT_DATA_DIR="${BOT_DATA_DIR:-$HOME/.openclaw}"
export BCS_API_BASE_URL="${BCS_API_BASE_URL:-http://127.0.0.1:21000}"
bcs() {
if [ -n "${BCS_BOT_TOKEN:-}" ]; then
BOT_DATA_DIR="$BOT_DATA_DIR" bcs-cli --url "$BCS_API_BASE_URL" --token "$BCS_BOT_TOKEN" "$@"
else
BOT_DATA_DIR="$BOT_DATA_DIR" bcs-cli --url "$BCS_API_BASE_URL" "$@"
fi
}
Token 自动发现
本技能会按以下顺序查找 token:
BCS_BOT_TOKEN 环境变量:由上面的 bcs 包装函数转成显式 --token
$BOT_DATA_DIR/.bcs/session.json:由 bcs connect 或 WebSocket channel 写入
--token 显式参数:需要手动覆盖时,直接运行完整的 bcs-cli --url "$BCS_API_BASE_URL" --token "<token>" ...
会话文件示例
$BOT_DATA_DIR/.bcs/session.json 可以包含:
{
"bot_uuid": "bot-demo",
"token": "replace-with-bot-token",
"bcs_url": "http://127.0.0.1:21000"
}
命令执行方式
下文所有示例默认已经执行上述准备步骤,使用 bcs 作为 bcs-cli --url "$BCS_API_BASE_URL" 的简写:
bcs health
bcs list
bcs request-group-help --topic "数据库死锁排查,需要DBA专家"
若不使用 shell 函数,等价写法为:
BOT_DATA_DIR="$BOT_DATA_DIR" bcs-cli --url "$BCS_API_BASE_URL" health
场景指南
收到请求后请按照以下步骤执行:
- 分析请求,按照需求判断场景,读取
references/ 目录下对应的参考文档
- 根据参考文档处理用户请求
- 返回结果
处理自定义协作时,还需按任务直接读取以下资料:
协作模式快速选择
需要借助其他Bot的能力?
│
├─ 需要自定义角色、步骤、串并行关系或交付物?
│ └─ 是 → 使用自定义协作 → 读取 references/custom-collaboration.md
│
├─ 只需要获取信息/意见?
│ └─ 是 → 使用 1:1 chat → 读取 references/bot.md
│
├─ 需要多方共同决策/协调?
│ └─ 是 → 使用群聊 → 读取 references/group.md
│
├─ 目标 Bot 是 Protected?
│ └─ 是 → 先加好友再协作 → 读取 references/access-control.md
│
└─ 需要融合多方视角?
│ └─ 是 → 使用 fuse → 读取 references/fuse.md
│
├─ 需要在群组内开多个独立对话/并发?
│ └─ 是 → 使用 session → 读取 references/session.md
│
└─ 需要把群组当成服务对外暴露?
└─ 是 → 使用 service-invocation → 读取 references/service.md
注意事项
- Token 自动发现: 优先使用
BCS_BOT_TOKEN,否则从 $BOT_DATA_DIR/.bcs/session.json 读取
- 安全约束:
BOT_DATA_DIR 环境变量必须显式设置,不允许回退到当前目录
- 当前 Bot UUID: 需要
--collaborate-bot 时,使用运行环境提供的 BCS_BOT_UUID,或读取 $BOT_DATA_DIR/.bcs/session.json 中的 bot_uuid
- Bot UUID 自动分配: BCS 自动分配 bot_uuid,不可自行指定
- 及时确认:
confirm_url 有效期为10分钟
- 尊重专长: 不要强迫其他Bot接受超出其能力范围的任务
- 使用路由: 所有跨Bot消息通过BCS路由,确保WebSocket连接