OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  agent-council:创建与管理自主AI智能体的完整工具包

agent-council:创建与管理自主AI智能体的完整工具包

 
  prism ·  2026-02-01 21:31:13 · 22 次点击  · 0 条评论  

名称: 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"

工作流程

1. 收集需求

询问用户:
- 代理名称(例如:"Watson")
- 代理ID(小写,连字符分隔,例如:"watson")
- 表情符号(例如:"🔬")
- 专业领域(代理的职责)
- 模型(使用的LLM)
- 工作空间(创建代理文件的位置)
- Discord频道ID(可选)

2. 运行创建脚本

scripts/create-agent.sh \
  --name "代理名称" \
  --id "代理-id" \
  --emoji "🤖" \
  --specialty "代理的职责描述" \
  --model "提供商/模型名称" \
  --workspace "/路径/到/工作空间" \
  --discord-channel "1234567890"  # 可选

脚本自动执行:
- ✅ 创建包含记忆子目录的工作空间
- ✅ 生成 SOUL.md 和 HEARTBEAT.md
- ✅ 更新网关配置(保留现有代理)
- ✅ 添加Discord频道绑定(如指定)
- ✅ 重启网关以应用更改
- ✅ 提示设置每日记忆定时任务

3. 自定义代理

创建后:
- 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"

第二部分:Discord频道管理

频道创建

快速开始

python3 scripts/setup-channel.py \
  --name research \
  --context "深度研究与竞争分析"

工作流程

  1. 运行设置脚本:
python3 scripts/setup-channel.py \
  --name <频道名称> \
  --context "<频道用途>" \
  [--category-id <discord分类id>]
  1. 应用网关配置(脚本显示的命令):
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

工作流程

  1. 运行重命名脚本:
python3 scripts/rename-channel.py \
  --id <频道id> \
  --old-name <旧名称> \
  --new-name <新名称> \
  [--workspace <工作空间目录>]
  1. 如果 systemPrompt 需要更新,应用网关配置(脚本显示)

  2. 提交工作空间文件更改(如使用 --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"

# 完成!代理已创建并绑定到频道

配置

Discord分类ID

选项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 "用途"

查找Discord ID

启用开发者模式:
- 设置 → 高级 → 开发者模式

复制ID:
- 右键点击频道 → 复制ID
- 右键点击分类 → 复制ID

脚本参考

create-agent.sh

参数:
- --name(必需)- 代理名称
- --id(必需)- 代理ID(小写,连字符分隔)
- --emoji(必需)- 代理表情符号
- --specialty(必需)- 代理职责
- --model(必需)- 使用的LLM(提供商/模型名称)
- --workspace(必需)- 创建代理文件的位置
- --discord-channel(可选)- 绑定的Discord频道ID

输出:
- 创建代理工作空间
- 生成 SOUL.md 和 HEARTBEAT.md
- 更新网关配置
- 可选地创建每日记忆定时任务

setup-channel.py

参数:
- --name(必需)- 频道名称
- --context(必需)- 频道用途/上下文
- --id(可选)- 现有频道ID
- --category-id(可选)- Discord分类ID

输出:
- 创建Discord频道(如不存在)
- 生成网关 config.patch 命令

rename-channel.py

参数:
- --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> 配置现有频道
- 或脚本将自动检测并配置

使用场景

  • 领域专家 - 研究、健康、金融、编码代理
  • 创意代理 - 图像生成、写作、设计
  • 任务自动化 - 计划监控、报告、警报
  • 多代理系统 - 协调的专业代理团队
  • Discord组织 - 为不同代理领域构建结构化频道

高级:多代理协调

对于更大的多代理系统:

协调模式:
- 主代理将任务委派给专家
-

22 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 87 ms
Developed with Cursor