名称: agent-council
描述: 用于创建自主AI代理和管理OpenClaw Discord频道的完整工具包。适用于设置多代理系统、创建新代理或管理Discord频道组织。
用于创建和管理自主AI代理的完整工具包,支持与OpenClaw的Discord集成。
代理创建:
- 创建具有独立工作空间的自主AI代理
- 生成 SOUL.md(个性与职责)
- 生成 HEARTBEAT.md(定时执行逻辑)
- 设置记忆系统(混合架构)
- 自动配置网关
- 将代理绑定到Discord频道(可选)
- 设置每日记忆定时任务(可选)
Discord频道管理:
- 通过API创建Discord频道
- 配置OpenClaw网关允许列表
- 设置频道特定的系统提示
- 重命名频道并更新引用
- 可选的工作空间文件搜索
# 从ClawHub安装
clawhub install agent-council
# 或手动安装
cp -r . ~/.openclaw/skills/agent-council/
openclaw gateway config.patch --raw '{
"skills": {
"entries": {
"agent-council": {"enabled": true}
}
}
}'
scripts/create-agent.sh \
--name "Watson" \
--id "watson" \
--emoji "🔬" \
--specialty "研究与分析专家" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/watson" \
--discord-channel "1234567890"
询问用户:
- 代理名称(例如:"Watson")
- 代理ID(小写,连字符分隔,例如:"watson")
- 表情符号(例如:"🔬")
- 专业领域(代理的职责)
- 模型(使用的LLM)
- 工作空间(创建代理文件的位置)
- Discord频道ID(可选)
scripts/create-agent.sh \
--name "代理名称" \
--id "代理-id" \
--emoji "🤖" \
--specialty "代理的职责描述" \
--model "提供商/模型名称" \
--workspace "/路径/到/工作空间" \
--discord-channel "1234567890" # 可选
脚本自动执行:
- ✅ 创建包含记忆子目录的工作空间
- ✅ 生成 SOUL.md 和 HEARTBEAT.md
- ✅ 更新网关配置(保留现有代理)
- ✅ 添加Discord频道绑定(如指定)
- ✅ 重启网关以应用更改
- ✅ 提示设置每日记忆定时任务
创建后:
- SOUL.md - 完善个性、职责和边界
- HEARTBEAT.md - 添加定期检查和定时逻辑
- 工作空间文件 - 添加代理特定配置
独立结构:
agents/
├── watson/
│ ├── SOUL.md # 个性与职责
│ ├── HEARTBEAT.md # 定时执行逻辑
│ ├── memory/ # 代理特定记忆
│ │ ├── 2026-02-01.md # 每日记忆日志
│ │ └── 2026-02-02.md
│ └── .openclaw/
│ └── skills/ # 代理特定技能(可选)
记忆系统:
- 代理特定记忆:<工作空间>/memory/YYYY-MM-DD.md
- 共享记忆访问:代理可读取共享工作空间
- 每日更新:可选的摘要定时任务
定时任务:
如果代理需要计划任务:
1. 创建包含执行逻辑的 HEARTBEAT.md
2. 使用 --session <代理-id> 添加定时任务
3. 在 SOUL.md 中记录
研究代理:
scripts/create-agent.sh \
--name "Watson" \
--id "watson" \
--emoji "🔬" \
--specialty "深度研究与竞争分析" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/watson" \
--discord-channel "1234567890"
图像生成代理:
scripts/create-agent.sh \
--name "Picasso" \
--id "picasso" \
--emoji "🎨" \
--specialty "图像生成与编辑专家" \
--model "google/gemini-3-flash-preview" \
--workspace "$HOME/agents/picasso" \
--discord-channel "9876543210"
健康追踪代理:
scripts/create-agent.sh \
--name "Nurse Joy" \
--id "nurse-joy" \
--emoji "💊" \
--specialty "健康追踪与健康监测" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/nurse-joy" \
--discord-channel "5555555555"
python3 scripts/setup-channel.py \
--name research \
--context "深度研究与竞争分析"
python3 scripts/setup-channel.py \
--name <频道名称> \
--context "<频道用途>" \
[--category-id <discord分类id>]
openclaw gateway config.patch --raw '{"channels": {...}}'
带分类:
python3 scripts/setup-channel.py \
--name research \
--context "深度研究与竞争分析" \
--category-id "1234567890"
使用现有频道:
python3 scripts/setup-channel.py \
--name personal-finance \
--id 1466184336901537897 \
--context "个人财务管理"
python3 scripts/rename-channel.py \
--id 1234567890 \
--old-name old-name \
--new-name new-name
python3 scripts/rename-channel.py \
--id <频道id> \
--old-name <旧名称> \
--new-name <新名称> \
[--workspace <工作空间目录>]
如果 systemPrompt 需要更新,应用网关配置(脚本显示)
提交工作空间文件更改(如使用 --workspace)
python3 scripts/rename-channel.py \
--id 1234567890 \
--old-name old-name \
--new-name new-name \
--workspace "$HOME/my-workspace"
这将:
- 通过API重命名Discord频道
- 更新网关配置 systemPrompt
- 搜索并更新工作空间文件
- 报告更改的文件以便git提交
从零开始的完整工作流程:
# 1. 创建Discord频道
python3 scripts/setup-channel.py \
--name research \
--context "深度研究与竞争分析" \
--category-id "1234567890"
# (从输出中记下频道ID)
# 2. 为频道应用网关配置
openclaw gateway config.patch --raw '{"channels": {...}}'
# 3. 创建绑定到该频道的代理
scripts/create-agent.sh \
--name "Watson" \
--id "watson" \
--emoji "🔬" \
--specialty "深度研究与竞争分析" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/watson" \
--discord-channel "1234567890"
# 完成!代理已创建并绑定到频道
选项1:命令行
python3 scripts/setup-channel.py \
--name channel-name \
--context "用途" \
--category-id "1234567890"
选项2:环境变量
export DISCORD_CATEGORY_ID="1234567890"
python3 scripts/setup-channel.py --name channel-name --context "用途"
启用开发者模式:
- 设置 → 高级 → 开发者模式
复制ID:
- 右键点击频道 → 复制ID
- 右键点击分类 → 复制ID
参数:
- --name(必需)- 代理名称
- --id(必需)- 代理ID(小写,连字符分隔)
- --emoji(必需)- 代理表情符号
- --specialty(必需)- 代理职责
- --model(必需)- 使用的LLM(提供商/模型名称)
- --workspace(必需)- 创建代理文件的位置
- --discord-channel(可选)- 绑定的Discord频道ID
输出:
- 创建代理工作空间
- 生成 SOUL.md 和 HEARTBEAT.md
- 更新网关配置
- 可选地创建每日记忆定时任务
参数:
- --name(必需)- 频道名称
- --context(必需)- 频道用途/上下文
- --id(可选)- 现有频道ID
- --category-id(可选)- Discord分类ID
输出:
- 创建Discord频道(如不存在)
- 生成网关 config.patch 命令
参数:
- --id(必需)- 频道ID
- --old-name(必需)- 当前频道名称
- --new-name(必需)- 新频道名称
- --workspace(可选)- 要搜索的工作空间目录
输出:
- 重命名Discord频道
- 更新网关 systemPrompt(如需要)
- 列出更新的文件(如启用工作空间搜索)
此技能与OpenClaw的网关配置集成:
代理:
{
"agents": {
"list": [
{
"id": "watson",
"name": "Watson",
"workspace": "/path/to/agents/watson",
"model": {
"primary": "anthropic/claude-opus-4-5"
},
"identity": {
"name": "Watson",
"emoji": "🔬"
}
}
]
}
}
绑定:
{
"bindings": [
{
"agentId": "watson",
"match": {
"channel": "discord",
"peer": {
"kind": "channel",
"id": "1234567890"
}
}
}
]
}
频道:
{
"channels": {
"discord": {
"guilds": {
"YOUR_GUILD_ID": {
"channels": {
"1234567890": {
"allow": true,
"requireMention": false,
"systemPrompt": "深度研究与竞争分析"
}
}
}
}
}
}
}
您的主代理使用OpenClaw内置的会话管理工具与专业代理协调。
查看所有活动代理及其最近活动:
sessions_list({
kinds: ["agent"],
limit: 10,
messageLimit: 3 // 显示每个代理的最后3条消息
})
直接通信:
sessions_send({
label: "watson", // 代理ID
message: "研究X的竞争格局"
})
等待响应:
sessions_send({
label: "watson",
message: "关于X你发现了什么?",
timeoutSeconds: 300 // 最多等待5分钟
})
对于复杂工作,在隔离会话中生成子代理:
sessions_spawn({
agentId: "watson", // 可选:使用特定代理
task: "研究X的竞争格局并撰写报告",
model: "anthropic/claude-opus-4-5", // 可选:覆盖模型
runTimeoutSeconds: 3600, // 最长1小时
cleanup: "delete" // 完成后删除会话
})
子代理将:
1. 在隔离环境中执行任务
2. 向您的会话宣布完成
3. 自我删除(如 cleanup: "delete")
查看代理的工作历史:
sessions_history({
sessionKey: "watson-session-key",
limit: 50
})
1. 直接委派(Discord绑定代理):
- 用户在代理的Discord频道中发送消息
- 代理直接在该频道中响应
- 主代理无需协调
2. 程序化委派(主代理 → 子代理):
// 主代理委派任务
sessions_send({
label: "watson",
message: "研究X并更新 memory/research-X.md"
})
// Watson独立工作,更新文件
// 主代理稍后检查或Watson报告
3. 为复杂任务生成:
// 用于长时间运行的隔离工作
sessions_spawn({
agentId: "watson",
task: "深度分析:分析竞争对手A、B、C。将报告写入 reports/competitors.md",
runTimeoutSeconds: 7200,
cleanup: "keep" // 保留会话以供审查
})
4. 代理间通信:
代理可以相互发送消息:
// 在Watson的上下文中
sessions_send({
label: "picasso",
message: "根据 reports/research.md 中的数据创建信息图"
})
何时使用Discord绑定:
- ✅ 领域特定代理(研究、健康、图像)
- ✅ 用户希望直接访问代理
- ✅ 代理应响应频道活动
何时使用 sessions_send:
- ✅ 程序化协调
- ✅ 主代理委派给专家
- ✅ 需要在同一会话中响应
何时使用 sessions_spawn:
- ✅ 长时间运行任务(>5分钟)
- ✅ 复杂的多步骤工作
- ✅ 希望与主会话隔离
- ✅ 后台处理
// 主代理收到请求:"研究竞争对手X"
// 1. 检查Watson是否活动
const agents = sessions_list({ kinds: ["agent"] })
// 2. 委派给Watson
sessions_send({
label: "watson",
message: "研究竞争对手X:产品、定价、市场地位。将发现写入 memory/research-X.md"
})
// 3. Watson独立工作:
// - 搜索网络
// - 分析数据
// - 更新记忆文件
// - 完成后报告
// 4. 主代理检索结果
const results = Read("agents/watson/memory/research-X.md")
// 5. 与用户分享
"研究完成!Watson发现:[摘要]"
主代理(您) ↔ 专业代理:
用户请求
↓
主代理(Claire)
↓
sessions_send("watson", "研究X")
↓
Watson代理
↓
- 使用 web_search
- 使用 web_fetch
- 更新记忆文件
↓
响应主会话
↓
主代理综合并回复
Discord绑定代理:
用户在 #research 频道发布消息
↓
Watson代理(绑定到频道)
↓
- 直接看到消息
- 在频道中响应
- 无需主代理参与
混合方法:
用户:"研究X"(主频道)
↓
主代理委派给Watson
↓
Watson研究并报告
↓
主代理:"完成!Watson发现..."
↓
用户:"给我更多细节"
↓
主代理:"@watson 在 #research 频道发布完整发现"
↓
Watson在 #research 频道发布详细报告
代理创建问题:
"代理未出现在Discord中"
- 验证频道ID是否正确
- 检查网关配置绑定部分
- 重启网关:openclaw gateway restart
"模型错误"
- 验证模型名称格式:提供商/模型名称
- 检查模型在网关配置中是否可用
频道管理问题:
"创建频道失败"
- 检查机器人是否有"管理频道"权限
- 验证OpenClaw配置中的机器人令牌
- 确保分类ID正确(如指定)
"分类未找到"
- 验证分类ID是否正确
- 检查机器人是否有分类访问权限
- 尝试不使用分类ID(创建未分类频道)
"频道已存在"
- 使用 --id <频道id> 配置现有频道
- 或脚本将自动检测并配置
对于更大的多代理系统:
协调模式:
- 主代理将任务委派给专家
-