{
  "schemaVersion": "1.0",
  "item": {
    "slug": "agent-council",
    "name": "Agent Council",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/itsahedge/agent-council",
    "canonicalUrl": "https://clawhub.ai/itsahedge/agent-council",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/agent-council",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=agent-council",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "scripts/create-agent.sh",
      "scripts/rename_channel.py",
      "scripts/setup_channel.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/agent-council"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/agent-council",
    "agentPageUrl": "https://openagent3.xyz/skills/agent-council/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agent-council/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agent-council/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Agent Council",
        "body": "Complete toolkit for creating and managing autonomous AI agents with Discord integration for OpenClaw."
      },
      {
        "title": "What This Skill Does",
        "body": "Agent Creation:\n\nCreates autonomous AI agents with self-contained workspaces\nGenerates SOUL.md (personality & responsibilities)\nGenerates HEARTBEAT.md (cron execution logic)\nSets up memory system (hybrid architecture)\nConfigures gateway automatically\nBinds agents to Discord channels (optional)\nSets up daily memory cron jobs (optional)\n\nDiscord Channel Management:\n\nCreates Discord channels via API\nConfigures OpenClaw gateway allowlists\nSets channel-specific system prompts\nRenames channels and updates references\nOptional workspace file search"
      },
      {
        "title": "Installation",
        "body": "# Install from ClawHub\nclawhub install agent-council\n\n# Or manual install\ncp -r . ~/.openclaw/skills/agent-council/\nopenclaw gateway config.patch --raw '{\n  \"skills\": {\n    \"entries\": {\n      \"agent-council\": {\"enabled\": true}\n    }\n  }\n}'"
      },
      {
        "title": "Quick Start",
        "body": "scripts/create-agent.sh \\\n  --name \"Watson\" \\\n  --id \"watson\" \\\n  --emoji \"🔬\" \\\n  --specialty \"Research and analysis specialist\" \\\n  --model \"anthropic/claude-opus-4-5\" \\\n  --workspace \"$HOME/agents/watson\" \\\n  --discord-channel \"1234567890\""
      },
      {
        "title": "Workflow",
        "body": "1. Gather Requirements\n\nAsk the user:\n\nAgent name (e.g., \"Watson\")\nAgent ID (lowercase, hyphenated, e.g., \"watson\")\nEmoji (e.g., \"🔬\")\nSpecialty (what the agent does)\nModel (which LLM to use)\nWorkspace (where to create agent files)\nDiscord channel ID (optional)\n\n2. Run Creation Script\n\nscripts/create-agent.sh \\\n  --name \"Agent Name\" \\\n  --id \"agent-id\" \\\n  --emoji \"🤖\" \\\n  --specialty \"What this agent does\" \\\n  --model \"provider/model-name\" \\\n  --workspace \"/path/to/workspace\" \\\n  --discord-channel \"1234567890\"  # Optional\n\nThe script automatically:\n\n✅ Creates workspace with memory subdirectory\n✅ Generates SOUL.md and HEARTBEAT.md\n✅ Updates gateway config (preserves existing agents)\n✅ Adds Discord channel binding (if specified)\n✅ Restarts gateway to apply changes\n✅ Prompts for daily memory cron setup\n\n3. Customize Agent\n\nAfter creation:\n\nSOUL.md - Refine personality, responsibilities, boundaries\nHEARTBEAT.md - Add periodic checks and cron logic\nWorkspace files - Add agent-specific configuration"
      },
      {
        "title": "Agent Architecture",
        "body": "Self-contained structure:\n\nagents/\n├── watson/\n│   ├── SOUL.md              # Personality and responsibilities\n│   ├── HEARTBEAT.md         # Cron execution logic\n│   ├── memory/              # Agent-specific memory\n│   │   ├── 2026-02-01.md   # Daily memory logs\n│   │   └── 2026-02-02.md\n│   └── .openclaw/\n│       └── skills/          # Agent-specific skills (optional)\n\nMemory system:\n\nAgent-specific memory: <workspace>/memory/YYYY-MM-DD.md\nShared memory access: Agents can read shared workspace\nDaily updates: Optional cron job for summaries\n\nCron jobs:\nIf your agent needs scheduled tasks:\n\nCreate HEARTBEAT.md with execution logic\nAdd cron jobs with --session <agent-id>\nDocument in SOUL.md"
      },
      {
        "title": "Examples",
        "body": "Research agent:\n\nscripts/create-agent.sh \\\n  --name \"Watson\" \\\n  --id \"watson\" \\\n  --emoji \"🔬\" \\\n  --specialty \"Deep research and competitive analysis\" \\\n  --model \"anthropic/claude-opus-4-5\" \\\n  --workspace \"$HOME/agents/watson\" \\\n  --discord-channel \"1234567890\"\n\nImage generation agent:\n\nscripts/create-agent.sh \\\n  --name \"Picasso\" \\\n  --id \"picasso\" \\\n  --emoji \"🎨\" \\\n  --specialty \"Image generation and editing specialist\" \\\n  --model \"google/gemini-3-flash-preview\" \\\n  --workspace \"$HOME/agents/picasso\" \\\n  --discord-channel \"9876543210\"\n\nHealth tracking agent:\n\nscripts/create-agent.sh \\\n  --name \"Nurse Joy\" \\\n  --id \"nurse-joy\" \\\n  --emoji \"💊\" \\\n  --specialty \"Health tracking and wellness monitoring\" \\\n  --model \"anthropic/claude-opus-4-5\" \\\n  --workspace \"$HOME/agents/nurse-joy\" \\\n  --discord-channel \"5555555555\""
      },
      {
        "title": "Channel Creation",
        "body": "Quick Start\n\npython3 scripts/setup-channel.py \\\n  --name research \\\n  --context \"Deep research and competitive analysis\"\n\nWorkflow\n\nRun setup script:\n\npython3 scripts/setup-channel.py \\\n  --name <channel-name> \\\n  --context \"<channel-purpose>\" \\\n  [--category-id <discord-category-id>]\n\nApply gateway config (command shown by script):\n\nopenclaw gateway config.patch --raw '{\"channels\": {...}}'\n\nOptions\n\nWith category:\n\npython3 scripts/setup-channel.py \\\n  --name research \\\n  --context \"Deep research and competitive analysis\" \\\n  --category-id \"1234567890\"\n\nUse existing channel:\n\npython3 scripts/setup-channel.py \\\n  --name personal-finance \\\n  --id 1466184336901537897 \\\n  --context \"Personal finance management\""
      },
      {
        "title": "Channel Renaming",
        "body": "Quick Start\n\npython3 scripts/rename-channel.py \\\n  --id 1234567890 \\\n  --old-name old-name \\\n  --new-name new-name\n\nWorkflow\n\nRun rename script:\n\npython3 scripts/rename-channel.py \\\n  --id <channel-id> \\\n  --old-name <old-name> \\\n  --new-name <new-name> \\\n  [--workspace <workspace-dir>]\n\nApply gateway config if systemPrompt needs updating (shown by script)\n\n\nCommit workspace file changes (if --workspace used)\n\nWith Workspace Search\n\npython3 scripts/rename-channel.py \\\n  --id 1234567890 \\\n  --old-name old-name \\\n  --new-name new-name \\\n  --workspace \"$HOME/my-workspace\"\n\nThis will:\n\nRename Discord channel via API\nUpdate gateway config systemPrompt\nSearch and update workspace files\nReport files changed for git commit"
      },
      {
        "title": "Complete Multi-Agent Setup",
        "body": "Full workflow from scratch:\n\n# 1. Create Discord channel\npython3 scripts/setup-channel.py \\\n  --name research \\\n  --context \"Deep research and competitive analysis\" \\\n  --category-id \"1234567890\"\n\n# (Note the channel ID from output)\n\n# 2. Apply gateway config for channel\nopenclaw gateway config.patch --raw '{\"channels\": {...}}'\n\n# 3. Create agent bound to that channel\nscripts/create-agent.sh \\\n  --name \"Watson\" \\\n  --id \"watson\" \\\n  --emoji \"🔬\" \\\n  --specialty \"Deep research and competitive analysis\" \\\n  --model \"anthropic/claude-opus-4-5\" \\\n  --workspace \"$HOME/agents/watson\" \\\n  --discord-channel \"1234567890\"\n\n# Done! Agent is created and bound to the channel"
      },
      {
        "title": "Discord Category ID",
        "body": "Option 1: Command line\n\npython3 scripts/setup-channel.py \\\n  --name channel-name \\\n  --context \"Purpose\" \\\n  --category-id \"1234567890\"\n\nOption 2: Environment variable\n\nexport DISCORD_CATEGORY_ID=\"1234567890\"\npython3 scripts/setup-channel.py --name channel-name --context \"Purpose\""
      },
      {
        "title": "Finding Discord IDs",
        "body": "Enable Developer Mode:\n\nSettings → Advanced → Developer Mode\n\nCopy IDs:\n\nRight-click channel → Copy ID\nRight-click category → Copy ID"
      },
      {
        "title": "create-agent.sh",
        "body": "Arguments:\n\n--name (required) - Agent name\n--id (required) - Agent ID (lowercase, hyphenated)\n--emoji (required) - Agent emoji\n--specialty (required) - What the agent does\n--model (required) - LLM to use (provider/model-name)\n--workspace (required) - Where to create agent files\n--discord-channel (optional) - Discord channel ID to bind\n\nOutput:\n\nCreates agent workspace\nGenerates SOUL.md and HEARTBEAT.md\nUpdates gateway config\nOptionally creates daily memory cron"
      },
      {
        "title": "setup-channel.py",
        "body": "Arguments:\n\n--name (required) - Channel name\n--context (required) - Channel purpose/context\n--id (optional) - Existing channel ID\n--category-id (optional) - Discord category ID\n\nOutput:\n\nCreates Discord channel (if doesn't exist)\nGenerates gateway config.patch command"
      },
      {
        "title": "rename-channel.py",
        "body": "Arguments:\n\n--id (required) - Channel ID\n--old-name (required) - Current channel name\n--new-name (required) - New channel name\n--workspace (optional) - Workspace directory to search\n\nOutput:\n\nRenames Discord channel\nUpdates gateway systemPrompt (if needed)\nLists updated files (if workspace search enabled)"
      },
      {
        "title": "Gateway Integration",
        "body": "This skill integrates with OpenClaw's gateway configuration:\n\nAgents:\n\n{\n  \"agents\": {\n    \"list\": [\n      {\n        \"id\": \"watson\",\n        \"name\": \"Watson\",\n        \"workspace\": \"/path/to/agents/watson\",\n        \"model\": {\n          \"primary\": \"anthropic/claude-opus-4-5\"\n        },\n        \"identity\": {\n          \"name\": \"Watson\",\n          \"emoji\": \"🔬\"\n        }\n      }\n    ]\n  }\n}\n\nBindings:\n\n{\n  \"bindings\": [\n    {\n      \"agentId\": \"watson\",\n      \"match\": {\n        \"channel\": \"discord\",\n        \"peer\": {\n          \"kind\": \"channel\",\n          \"id\": \"1234567890\"\n        }\n      }\n    }\n  ]\n}\n\nChannels:\n\n{\n  \"channels\": {\n    \"discord\": {\n      \"guilds\": {\n        \"YOUR_GUILD_ID\": {\n          \"channels\": {\n            \"1234567890\": {\n              \"allow\": true,\n              \"requireMention\": false,\n              \"systemPrompt\": \"Deep research and competitive analysis\"\n            }\n          }\n        }\n      }\n    }\n  }\n}"
      },
      {
        "title": "Agent Coordination",
        "body": "Your main agent coordinates with specialized agents using OpenClaw's built-in session management tools."
      },
      {
        "title": "List Active Agents",
        "body": "See all active agents and their recent activity:\n\nsessions_list({\n  kinds: [\"agent\"],\n  limit: 10,\n  messageLimit: 3  // Show last 3 messages per agent\n})"
      },
      {
        "title": "Send Messages to Agents",
        "body": "Direct communication:\n\nsessions_send({\n  label: \"watson\",  // Agent ID\n  message: \"Research the competitive landscape for X\"\n})\n\nWait for response:\n\nsessions_send({\n  label: \"watson\",\n  message: \"What did you find about X?\",\n  timeoutSeconds: 300  // Wait up to 5 minutes\n})"
      },
      {
        "title": "Spawn Sub-Agent Tasks",
        "body": "For complex work, spawn a sub-agent in an isolated session:\n\nsessions_spawn({\n  agentId: \"watson\",  // Optional: use specific agent\n  task: \"Research competitive landscape for X and write a report\",\n  model: \"anthropic/claude-opus-4-5\",  // Optional: override model\n  runTimeoutSeconds: 3600,  // 1 hour max\n  cleanup: \"delete\"  // Delete session after completion\n})\n\nThe sub-agent will:\n\nExecute the task in isolation\nAnnounce completion back to your session\nSelf-delete (if cleanup: \"delete\")"
      },
      {
        "title": "Check Agent History",
        "body": "Review what an agent has been working on:\n\nsessions_history({\n  sessionKey: \"watson-session-key\",\n  limit: 50\n})"
      },
      {
        "title": "Coordination Patterns",
        "body": "1. Direct delegation (Discord-bound agents):\n\nUser messages agent's Discord channel\nAgent responds directly in that channel\nMain agent doesn't need to coordinate\n\n2. Programmatic delegation (main agent → sub-agent):\n\n// Main agent delegates task\nsessions_send({\n  label: \"watson\",\n  message: \"Research X and update memory/research-X.md\"\n})\n\n// Watson works independently, updates files\n// Main agent checks later or Watson reports back\n\n3. Spawn for complex tasks:\n\n// For longer-running, isolated work\nsessions_spawn({\n  agentId: \"watson\",\n  task: \"Deep dive: analyze competitors A, B, C. Write report to reports/competitors.md\",\n  runTimeoutSeconds: 7200,\n  cleanup: \"keep\"  // Keep session for review\n})\n\n4. Agent-to-agent communication:\nAgents can send messages to each other:\n\n// In Watson's context\nsessions_send({\n  label: \"picasso\",\n  message: \"Create an infographic from data in reports/research.md\"\n})"
      },
      {
        "title": "Best Practices",
        "body": "When to use Discord bindings:\n\n✅ Domain-specific agents (research, health, images)\n✅ User wants direct access to agent\n✅ Agent should respond to channel activity\n\nWhen to use sessions_send:\n\n✅ Programmatic coordination\n✅ Main agent delegates to specialists\n✅ Need response in same session\n\nWhen to use sessions_spawn:\n\n✅ Long-running tasks (>5 minutes)\n✅ Complex multi-step work\n✅ Want isolation from main session\n✅ Background processing"
      },
      {
        "title": "Example: Research Workflow",
        "body": "// Main agent receives request: \"Research competitor X\"\n\n// 1. Check if Watson is active\nconst agents = sessions_list({ kinds: [\"agent\"] })\n\n// 2. Delegate to Watson\nsessions_send({\n  label: \"watson\",\n  message: \"Research competitor X: products, pricing, market position. Write findings to memory/research-X.md\"\n})\n\n// 3. Watson works independently:\n//    - Searches web\n//    - Analyzes data\n//    - Updates memory file\n//    - Reports back when done\n\n// 4. Main agent retrieves results\nconst results = Read(\"agents/watson/memory/research-X.md\")\n\n// 5. Share with user\n\"Research complete! Watson found: [summary]\""
      },
      {
        "title": "Communication Flow",
        "body": "Main Agent (You) ↔ Specialized Agents:\n\nUser Request\n    ↓\nMain Agent (Claire)\n    ↓\nsessions_send(\"watson\", \"Research X\")\n    ↓\nWatson Agent\n    ↓\n- Uses web_search\n- Uses web_fetch\n- Updates memory files\n    ↓\nResponds to main session\n    ↓\nMain Agent synthesizes and replies\n\nDiscord-Bound Agents:\n\nUser posts in #research channel\n    ↓\nWatson Agent (bound to channel)\n    ↓\n- Sees message directly\n- Responds in channel\n- No main agent involvement\n\nHybrid Approach:\n\nUser: \"Research X\" (main channel)\n    ↓\nMain Agent delegates to Watson\n    ↓\nWatson researches and reports back\n    ↓\nMain Agent: \"Done! Watson found...\"\n    ↓\nUser: \"Show me more details\"\n    ↓\nMain Agent: \"@watson post your full findings in #research\"\n    ↓\nWatson posts detailed report in #research channel"
      },
      {
        "title": "Troubleshooting",
        "body": "Agent Creation Issues:\n\n\"Agent not appearing in Discord\"\n\nVerify channel ID is correct\nCheck gateway config bindings section\nRestart gateway: openclaw gateway restart\n\n\"Model errors\"\n\nVerify model name format: provider/model-name\nCheck model is available in gateway config\n\nChannel Management Issues:\n\n\"Failed to create channel\"\n\nCheck bot has \"Manage Channels\" permission\nVerify bot token in OpenClaw config\nEnsure category ID is correct (if specified)\n\n\"Category not found\"\n\nVerify category ID is correct\nCheck bot has access to category\nTry without category ID (creates uncategorized)\n\n\"Channel already exists\"\n\nUse --id <channel-id> to configure existing channel\nOr script will auto-detect and configure it"
      },
      {
        "title": "Use Cases",
        "body": "Domain specialists - Research, health, finance, coding agents\nCreative agents - Image generation, writing, design\nTask automation - Scheduled monitoring, reports, alerts\nMulti-agent systems - Coordinated team of specialized agents\nDiscord organization - Structured channels for different agent domains"
      },
      {
        "title": "Advanced: Multi-Agent Coordination",
        "body": "For larger multi-agent systems:\n\nCoordination Patterns:\n\nMain agent delegates tasks to specialists\nAgents report progress and request help\nShared knowledge base for common information\nCross-agent communication via sessions_send\n\nTask Management:\n\nIntegrate with task tracking systems\nRoute work based on agent specialty\nTrack assignments and completions\n\nDocumentation:\n\nMaintain agent roster in main workspace\nDocument delegation patterns\nKeep runbooks for common workflows"
      },
      {
        "title": "Best Practices",
        "body": "Organize channels in categories - Group related agent channels\nUse descriptive channel names - Clear purpose from the name\nSet specific system prompts - Give each channel clear context\nDocument agent responsibilities - Keep SOUL.md updated\nSet up memory cron jobs - For agents with ongoing work\nTest agents individually - Before integrating into team\nUpdate gateway config safely - Always use config.patch, never manual edits"
      },
      {
        "title": "Requirements",
        "body": "Bot Permissions:\n\nManage Channels - To create/rename channels\nView Channels - To read channel list\nSend Messages - To post in channels\n\nSystem:\n\nOpenClaw installed and configured\nNode.js/npm via nvm\nPython 3.6+ (standard library only)\nDiscord bot token (for channel management)"
      },
      {
        "title": "See Also",
        "body": "OpenClaw documentation: https://docs.openclaw.ai\nMulti-agent patterns: https://docs.openclaw.ai/agents\nDiscord bot setup: https://docs.openclaw.ai/channels/discord"
      }
    ],
    "body": "Agent Council\n\nComplete toolkit for creating and managing autonomous AI agents with Discord integration for OpenClaw.\n\nWhat This Skill Does\n\nAgent Creation:\n\nCreates autonomous AI agents with self-contained workspaces\nGenerates SOUL.md (personality & responsibilities)\nGenerates HEARTBEAT.md (cron execution logic)\nSets up memory system (hybrid architecture)\nConfigures gateway automatically\nBinds agents to Discord channels (optional)\nSets up daily memory cron jobs (optional)\n\nDiscord Channel Management:\n\nCreates Discord channels via API\nConfigures OpenClaw gateway allowlists\nSets channel-specific system prompts\nRenames channels and updates references\nOptional workspace file search\nInstallation\n# Install from ClawHub\nclawhub install agent-council\n\n# Or manual install\ncp -r . ~/.openclaw/skills/agent-council/\nopenclaw gateway config.patch --raw '{\n  \"skills\": {\n    \"entries\": {\n      \"agent-council\": {\"enabled\": true}\n    }\n  }\n}'\n\nPart 1: Agent Creation\nQuick Start\nscripts/create-agent.sh \\\n  --name \"Watson\" \\\n  --id \"watson\" \\\n  --emoji \"🔬\" \\\n  --specialty \"Research and analysis specialist\" \\\n  --model \"anthropic/claude-opus-4-5\" \\\n  --workspace \"$HOME/agents/watson\" \\\n  --discord-channel \"1234567890\"\n\nWorkflow\n1. Gather Requirements\n\nAsk the user:\n\nAgent name (e.g., \"Watson\")\nAgent ID (lowercase, hyphenated, e.g., \"watson\")\nEmoji (e.g., \"🔬\")\nSpecialty (what the agent does)\nModel (which LLM to use)\nWorkspace (where to create agent files)\nDiscord channel ID (optional)\n2. Run Creation Script\nscripts/create-agent.sh \\\n  --name \"Agent Name\" \\\n  --id \"agent-id\" \\\n  --emoji \"🤖\" \\\n  --specialty \"What this agent does\" \\\n  --model \"provider/model-name\" \\\n  --workspace \"/path/to/workspace\" \\\n  --discord-channel \"1234567890\"  # Optional\n\n\nThe script automatically:\n\n✅ Creates workspace with memory subdirectory\n✅ Generates SOUL.md and HEARTBEAT.md\n✅ Updates gateway config (preserves existing agents)\n✅ Adds Discord channel binding (if specified)\n✅ Restarts gateway to apply changes\n✅ Prompts for daily memory cron setup\n3. Customize Agent\n\nAfter creation:\n\nSOUL.md - Refine personality, responsibilities, boundaries\nHEARTBEAT.md - Add periodic checks and cron logic\nWorkspace files - Add agent-specific configuration\nAgent Architecture\n\nSelf-contained structure:\n\nagents/\n├── watson/\n│   ├── SOUL.md              # Personality and responsibilities\n│   ├── HEARTBEAT.md         # Cron execution logic\n│   ├── memory/              # Agent-specific memory\n│   │   ├── 2026-02-01.md   # Daily memory logs\n│   │   └── 2026-02-02.md\n│   └── .openclaw/\n│       └── skills/          # Agent-specific skills (optional)\n\n\nMemory system:\n\nAgent-specific memory: <workspace>/memory/YYYY-MM-DD.md\nShared memory access: Agents can read shared workspace\nDaily updates: Optional cron job for summaries\n\nCron jobs: If your agent needs scheduled tasks:\n\nCreate HEARTBEAT.md with execution logic\nAdd cron jobs with --session <agent-id>\nDocument in SOUL.md\nExamples\n\nResearch agent:\n\nscripts/create-agent.sh \\\n  --name \"Watson\" \\\n  --id \"watson\" \\\n  --emoji \"🔬\" \\\n  --specialty \"Deep research and competitive analysis\" \\\n  --model \"anthropic/claude-opus-4-5\" \\\n  --workspace \"$HOME/agents/watson\" \\\n  --discord-channel \"1234567890\"\n\n\nImage generation agent:\n\nscripts/create-agent.sh \\\n  --name \"Picasso\" \\\n  --id \"picasso\" \\\n  --emoji \"🎨\" \\\n  --specialty \"Image generation and editing specialist\" \\\n  --model \"google/gemini-3-flash-preview\" \\\n  --workspace \"$HOME/agents/picasso\" \\\n  --discord-channel \"9876543210\"\n\n\nHealth tracking agent:\n\nscripts/create-agent.sh \\\n  --name \"Nurse Joy\" \\\n  --id \"nurse-joy\" \\\n  --emoji \"💊\" \\\n  --specialty \"Health tracking and wellness monitoring\" \\\n  --model \"anthropic/claude-opus-4-5\" \\\n  --workspace \"$HOME/agents/nurse-joy\" \\\n  --discord-channel \"5555555555\"\n\nPart 2: Discord Channel Management\nChannel Creation\nQuick Start\npython3 scripts/setup-channel.py \\\n  --name research \\\n  --context \"Deep research and competitive analysis\"\n\nWorkflow\nRun setup script:\npython3 scripts/setup-channel.py \\\n  --name <channel-name> \\\n  --context \"<channel-purpose>\" \\\n  [--category-id <discord-category-id>]\n\nApply gateway config (command shown by script):\nopenclaw gateway config.patch --raw '{\"channels\": {...}}'\n\nOptions\n\nWith category:\n\npython3 scripts/setup-channel.py \\\n  --name research \\\n  --context \"Deep research and competitive analysis\" \\\n  --category-id \"1234567890\"\n\n\nUse existing channel:\n\npython3 scripts/setup-channel.py \\\n  --name personal-finance \\\n  --id 1466184336901537897 \\\n  --context \"Personal finance management\"\n\nChannel Renaming\nQuick Start\npython3 scripts/rename-channel.py \\\n  --id 1234567890 \\\n  --old-name old-name \\\n  --new-name new-name\n\nWorkflow\nRun rename script:\npython3 scripts/rename-channel.py \\\n  --id <channel-id> \\\n  --old-name <old-name> \\\n  --new-name <new-name> \\\n  [--workspace <workspace-dir>]\n\n\nApply gateway config if systemPrompt needs updating (shown by script)\n\nCommit workspace file changes (if --workspace used)\n\nWith Workspace Search\npython3 scripts/rename-channel.py \\\n  --id 1234567890 \\\n  --old-name old-name \\\n  --new-name new-name \\\n  --workspace \"$HOME/my-workspace\"\n\n\nThis will:\n\nRename Discord channel via API\nUpdate gateway config systemPrompt\nSearch and update workspace files\nReport files changed for git commit\nComplete Multi-Agent Setup\n\nFull workflow from scratch:\n\n# 1. Create Discord channel\npython3 scripts/setup-channel.py \\\n  --name research \\\n  --context \"Deep research and competitive analysis\" \\\n  --category-id \"1234567890\"\n\n# (Note the channel ID from output)\n\n# 2. Apply gateway config for channel\nopenclaw gateway config.patch --raw '{\"channels\": {...}}'\n\n# 3. Create agent bound to that channel\nscripts/create-agent.sh \\\n  --name \"Watson\" \\\n  --id \"watson\" \\\n  --emoji \"🔬\" \\\n  --specialty \"Deep research and competitive analysis\" \\\n  --model \"anthropic/claude-opus-4-5\" \\\n  --workspace \"$HOME/agents/watson\" \\\n  --discord-channel \"1234567890\"\n\n# Done! Agent is created and bound to the channel\n\nConfiguration\nDiscord Category ID\n\nOption 1: Command line\n\npython3 scripts/setup-channel.py \\\n  --name channel-name \\\n  --context \"Purpose\" \\\n  --category-id \"1234567890\"\n\n\nOption 2: Environment variable\n\nexport DISCORD_CATEGORY_ID=\"1234567890\"\npython3 scripts/setup-channel.py --name channel-name --context \"Purpose\"\n\nFinding Discord IDs\n\nEnable Developer Mode:\n\nSettings → Advanced → Developer Mode\n\nCopy IDs:\n\nRight-click channel → Copy ID\nRight-click category → Copy ID\nScripts Reference\ncreate-agent.sh\n\nArguments:\n\n--name (required) - Agent name\n--id (required) - Agent ID (lowercase, hyphenated)\n--emoji (required) - Agent emoji\n--specialty (required) - What the agent does\n--model (required) - LLM to use (provider/model-name)\n--workspace (required) - Where to create agent files\n--discord-channel (optional) - Discord channel ID to bind\n\nOutput:\n\nCreates agent workspace\nGenerates SOUL.md and HEARTBEAT.md\nUpdates gateway config\nOptionally creates daily memory cron\nsetup-channel.py\n\nArguments:\n\n--name (required) - Channel name\n--context (required) - Channel purpose/context\n--id (optional) - Existing channel ID\n--category-id (optional) - Discord category ID\n\nOutput:\n\nCreates Discord channel (if doesn't exist)\nGenerates gateway config.patch command\nrename-channel.py\n\nArguments:\n\n--id (required) - Channel ID\n--old-name (required) - Current channel name\n--new-name (required) - New channel name\n--workspace (optional) - Workspace directory to search\n\nOutput:\n\nRenames Discord channel\nUpdates gateway systemPrompt (if needed)\nLists updated files (if workspace search enabled)\nGateway Integration\n\nThis skill integrates with OpenClaw's gateway configuration:\n\nAgents:\n\n{\n  \"agents\": {\n    \"list\": [\n      {\n        \"id\": \"watson\",\n        \"name\": \"Watson\",\n        \"workspace\": \"/path/to/agents/watson\",\n        \"model\": {\n          \"primary\": \"anthropic/claude-opus-4-5\"\n        },\n        \"identity\": {\n          \"name\": \"Watson\",\n          \"emoji\": \"🔬\"\n        }\n      }\n    ]\n  }\n}\n\n\nBindings:\n\n{\n  \"bindings\": [\n    {\n      \"agentId\": \"watson\",\n      \"match\": {\n        \"channel\": \"discord\",\n        \"peer\": {\n          \"kind\": \"channel\",\n          \"id\": \"1234567890\"\n        }\n      }\n    }\n  ]\n}\n\n\nChannels:\n\n{\n  \"channels\": {\n    \"discord\": {\n      \"guilds\": {\n        \"YOUR_GUILD_ID\": {\n          \"channels\": {\n            \"1234567890\": {\n              \"allow\": true,\n              \"requireMention\": false,\n              \"systemPrompt\": \"Deep research and competitive analysis\"\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\nAgent Coordination\n\nYour main agent coordinates with specialized agents using OpenClaw's built-in session management tools.\n\nList Active Agents\n\nSee all active agents and their recent activity:\n\nsessions_list({\n  kinds: [\"agent\"],\n  limit: 10,\n  messageLimit: 3  // Show last 3 messages per agent\n})\n\nSend Messages to Agents\n\nDirect communication:\n\nsessions_send({\n  label: \"watson\",  // Agent ID\n  message: \"Research the competitive landscape for X\"\n})\n\n\nWait for response:\n\nsessions_send({\n  label: \"watson\",\n  message: \"What did you find about X?\",\n  timeoutSeconds: 300  // Wait up to 5 minutes\n})\n\nSpawn Sub-Agent Tasks\n\nFor complex work, spawn a sub-agent in an isolated session:\n\nsessions_spawn({\n  agentId: \"watson\",  // Optional: use specific agent\n  task: \"Research competitive landscape for X and write a report\",\n  model: \"anthropic/claude-opus-4-5\",  // Optional: override model\n  runTimeoutSeconds: 3600,  // 1 hour max\n  cleanup: \"delete\"  // Delete session after completion\n})\n\n\nThe sub-agent will:\n\nExecute the task in isolation\nAnnounce completion back to your session\nSelf-delete (if cleanup: \"delete\")\nCheck Agent History\n\nReview what an agent has been working on:\n\nsessions_history({\n  sessionKey: \"watson-session-key\",\n  limit: 50\n})\n\nCoordination Patterns\n\n1. Direct delegation (Discord-bound agents):\n\nUser messages agent's Discord channel\nAgent responds directly in that channel\nMain agent doesn't need to coordinate\n\n2. Programmatic delegation (main agent → sub-agent):\n\n// Main agent delegates task\nsessions_send({\n  label: \"watson\",\n  message: \"Research X and update memory/research-X.md\"\n})\n\n// Watson works independently, updates files\n// Main agent checks later or Watson reports back\n\n\n3. Spawn for complex tasks:\n\n// For longer-running, isolated work\nsessions_spawn({\n  agentId: \"watson\",\n  task: \"Deep dive: analyze competitors A, B, C. Write report to reports/competitors.md\",\n  runTimeoutSeconds: 7200,\n  cleanup: \"keep\"  // Keep session for review\n})\n\n\n4. Agent-to-agent communication: Agents can send messages to each other:\n\n// In Watson's context\nsessions_send({\n  label: \"picasso\",\n  message: \"Create an infographic from data in reports/research.md\"\n})\n\nBest Practices\n\nWhen to use Discord bindings:\n\n✅ Domain-specific agents (research, health, images)\n✅ User wants direct access to agent\n✅ Agent should respond to channel activity\n\nWhen to use sessions_send:\n\n✅ Programmatic coordination\n✅ Main agent delegates to specialists\n✅ Need response in same session\n\nWhen to use sessions_spawn:\n\n✅ Long-running tasks (>5 minutes)\n✅ Complex multi-step work\n✅ Want isolation from main session\n✅ Background processing\nExample: Research Workflow\n// Main agent receives request: \"Research competitor X\"\n\n// 1. Check if Watson is active\nconst agents = sessions_list({ kinds: [\"agent\"] })\n\n// 2. Delegate to Watson\nsessions_send({\n  label: \"watson\",\n  message: \"Research competitor X: products, pricing, market position. Write findings to memory/research-X.md\"\n})\n\n// 3. Watson works independently:\n//    - Searches web\n//    - Analyzes data\n//    - Updates memory file\n//    - Reports back when done\n\n// 4. Main agent retrieves results\nconst results = Read(\"agents/watson/memory/research-X.md\")\n\n// 5. Share with user\n\"Research complete! Watson found: [summary]\"\n\nCommunication Flow\n\nMain Agent (You) ↔ Specialized Agents:\n\nUser Request\n    ↓\nMain Agent (Claire)\n    ↓\nsessions_send(\"watson\", \"Research X\")\n    ↓\nWatson Agent\n    ↓\n- Uses web_search\n- Uses web_fetch\n- Updates memory files\n    ↓\nResponds to main session\n    ↓\nMain Agent synthesizes and replies\n\n\nDiscord-Bound Agents:\n\nUser posts in #research channel\n    ↓\nWatson Agent (bound to channel)\n    ↓\n- Sees message directly\n- Responds in channel\n- No main agent involvement\n\n\nHybrid Approach:\n\nUser: \"Research X\" (main channel)\n    ↓\nMain Agent delegates to Watson\n    ↓\nWatson researches and reports back\n    ↓\nMain Agent: \"Done! Watson found...\"\n    ↓\nUser: \"Show me more details\"\n    ↓\nMain Agent: \"@watson post your full findings in #research\"\n    ↓\nWatson posts detailed report in #research channel\n\nTroubleshooting\n\nAgent Creation Issues:\n\n\"Agent not appearing in Discord\"\n\nVerify channel ID is correct\nCheck gateway config bindings section\nRestart gateway: openclaw gateway restart\n\n\"Model errors\"\n\nVerify model name format: provider/model-name\nCheck model is available in gateway config\n\nChannel Management Issues:\n\n\"Failed to create channel\"\n\nCheck bot has \"Manage Channels\" permission\nVerify bot token in OpenClaw config\nEnsure category ID is correct (if specified)\n\n\"Category not found\"\n\nVerify category ID is correct\nCheck bot has access to category\nTry without category ID (creates uncategorized)\n\n\"Channel already exists\"\n\nUse --id <channel-id> to configure existing channel\nOr script will auto-detect and configure it\nUse Cases\nDomain specialists - Research, health, finance, coding agents\nCreative agents - Image generation, writing, design\nTask automation - Scheduled monitoring, reports, alerts\nMulti-agent systems - Coordinated team of specialized agents\nDiscord organization - Structured channels for different agent domains\nAdvanced: Multi-Agent Coordination\n\nFor larger multi-agent systems:\n\nCoordination Patterns:\n\nMain agent delegates tasks to specialists\nAgents report progress and request help\nShared knowledge base for common information\nCross-agent communication via sessions_send\n\nTask Management:\n\nIntegrate with task tracking systems\nRoute work based on agent specialty\nTrack assignments and completions\n\nDocumentation:\n\nMaintain agent roster in main workspace\nDocument delegation patterns\nKeep runbooks for common workflows\nBest Practices\nOrganize channels in categories - Group related agent channels\nUse descriptive channel names - Clear purpose from the name\nSet specific system prompts - Give each channel clear context\nDocument agent responsibilities - Keep SOUL.md updated\nSet up memory cron jobs - For agents with ongoing work\nTest agents individually - Before integrating into team\nUpdate gateway config safely - Always use config.patch, never manual edits\nRequirements\n\nBot Permissions:\n\nManage Channels - To create/rename channels\nView Channels - To read channel list\nSend Messages - To post in channels\n\nSystem:\n\nOpenClaw installed and configured\nNode.js/npm via nvm\nPython 3.6+ (standard library only)\nDiscord bot token (for channel management)\nSee Also\nOpenClaw documentation: https://docs.openclaw.ai\nMulti-agent patterns: https://docs.openclaw.ai/agents\nDiscord bot setup: https://docs.openclaw.ai/channels/discord"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/itsahedge/agent-council",
    "publisherUrl": "https://clawhub.ai/itsahedge/agent-council",
    "owner": "itsahedge",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/agent-council",
    "downloadUrl": "https://openagent3.xyz/downloads/agent-council",
    "agentUrl": "https://openagent3.xyz/skills/agent-council/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agent-council/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agent-council/agent.md"
  }
}