agent-council
Complete toolkit for creating autonomous AI agents and managing Discord channels for OpenClaw. Use when setting up multi-agent systems, creating new agents, or managing Discord channel organization.
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install clawskills:clawskills~itsahedge-agent-councilcURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/clawskills%3Aclawskills~itsahedge-agent-council/file -o itsahedge-agent-council.md# Agent Council
Complete toolkit for creating and managing autonomous AI agents with Discord integration for OpenClaw.
## What This Skill Does
**Agent Creation:**
- Creates autonomous AI agents with self-contained workspaces
- Generates SOUL.md (personality & responsibilities)
- Generates HEARTBEAT.md (cron execution logic)
- Sets up memory system (hybrid architecture)
- Configures gateway automatically
- Binds agents to Discord channels (optional)
- Sets up daily memory cron jobs (optional)
**Discord Channel Management:**
- Creates Discord channels via API
- Configures OpenClaw gateway allowlists
- Sets channel-specific system prompts
- Renames channels and updates references
- Optional workspace file search
## Installation
```bash
# Install from ClawHub
clawhub install agent-council
# Or manual install
cp -r . ~/.openclaw/skills/agent-council/
openclaw gateway config.patch --raw '{
"skills": {
"entries": {
"agent-council": {"enabled": true}
}
}
}'
```
## Part 1: Agent Creation
### Quick Start
```bash
scripts/create-agent.sh \
--name "Watson" \
--id "watson" \
--emoji "🔬" \
--specialty "Research and analysis specialist" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/watson" \
--discord-channel "1234567890"
```
### Workflow
#### 1. Gather Requirements
Ask the user:
- **Agent name** (e.g., "Watson")
- **Agent ID** (lowercase, hyphenated, e.g., "watson")
- **Emoji** (e.g., "🔬")
- **Specialty** (what the agent does)
- **Model** (which LLM to use)
- **Workspace** (where to create agent files)
- **Discord channel ID** (optional)
#### 2. Run Creation Script
```bash
scripts/create-agent.sh \
--name "Agent Name" \
--id "agent-id" \
--emoji "🤖" \
--specialty "What this agent does" \
--model "provider/model-name" \
--workspace "/path/to/workspace" \
--discord-channel "1234567890" # Optional
```
The script automatically:
- ✅ Creates workspace with memory subdirectory
- ✅ Generates SOUL.md and HEARTBEAT.md
- ✅ Updates gateway config (preserves existing agents)
- ✅ Adds Discord channel binding (if specified)
- ✅ Restarts gateway to apply changes
- ✅ Prompts for daily memory cron setup
#### 3. Customize Agent
After creation:
- **SOUL.md** - Refine personality, responsibilities, boundaries
- **HEARTBEAT.md** - Add periodic checks and cron logic
- **Workspace files** - Add agent-specific configuration
### Agent Architecture
**Self-contained structure:**
```
agents/
├── watson/
│ ├── SOUL.md # Personality and responsibilities
│ ├── HEARTBEAT.md # Cron execution logic
│ ├── memory/ # Agent-specific memory
│ │ ├── 2026-02-01.md # Daily memory logs
│ │ └── 2026-02-02.md
│ └── .openclaw/
│ └── skills/ # Agent-specific skills (optional)
```
**Memory system:**
- Agent-specific memory: `<workspace>/memory/YYYY-MM-DD.md`
- Shared memory access: Agents can read shared workspace
- Daily updates: Optional cron job for summaries
**Cron jobs:**
If your agent needs scheduled tasks:
1. Create HEARTBEAT.md with execution logic
2. Add cron jobs with `--session <agent-id>`
3. Document in SOUL.md
### Examples
**Research agent:**
```bash
scripts/create-agent.sh \
--name "Watson" \
--id "watson" \
--emoji "🔬" \
--specialty "Deep research and competitive analysis" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/watson" \
--discord-channel "1234567890"
```
**Image generation agent:**
```bash
scripts/create-agent.sh \
--name "Picasso" \
--id "picasso" \
--emoji "🎨" \
--specialty "Image generation and editing specialist" \
--model "google/gemini-3-flash-preview" \
--workspace "$HOME/agents/picasso" \
--discord-channel "9876543210"
```
**Health tracking agent:**
```bash
scripts/create-agent.sh \
--name "Nurse Joy" \
--id "nurse-joy" \
--emoji "💊" \
--specialty "Health tracking and wellness monitoring" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/nurse-joy" \
--discord-channel "5555555555"
```
## Part 2: Discord Channel Management
### Channel Creation
#### Quick Start
```bash
python3 scripts/setup-channel.py \
--name research \
--context "Deep research and competitive analysis"
```
#### Workflow
1. Run setup script:
```bash
python3 scripts/setup-channel.py \
--name <channel-name> \
--context "<channel-purpose>" \
[--category-id <discord-category-id>]
```
2. Apply gateway config (command shown by script):
```bash
openclaw gateway config.patch --raw '{"channels": {...}}'
```
#### Options
**With category:**
```bash
python3 scripts/setup-channel.py \
--name research \
--context "Deep research and competitive analysis" \
--category-id "1234567890"
```
**Use existing channel:**
```bash
python3 scripts/setup-channel.py \
--name personal-finance \
--id 1466184336901537897 \
--context "Personal finance management"
```
### Channel Renaming
#### Quick Start
```bash
python3 scripts/rename-channel.py \
--id 1234567890 \
--old-name old-name \
--new-name new-name
```
#### Workflow
1. Run rename script:
```bash
python3 scripts/rename-channel.py \
--id <channel-id> \
--old-name <old-name> \
--new-name <new-name> \
[--workspace <workspace-dir>]
```
2. Apply gateway config if systemPrompt needs updating (shown by script)
3. Commit workspace file changes (if `--workspace` used)
#### With Workspace Search
```bash
python3 scripts/rename-channel.py \
--id 1234567890 \
--old-name old-name \
--new-name new-name \
--workspace "$HOME/my-workspace"
```
This will:
- Rename Discord channel via API
- Update gateway config systemPrompt
- Search and update workspace files
- Report files changed for git commit
## Complete Multi-Agent Setup
**Full workflow from scratch:**
```bash
# 1. Create Discord channel
python3 scripts/setup-channel.py \
--name research \
--context "Deep research and competitive analysis" \
--category-id "1234567890"
# (Note the channel ID from output)
# 2. Apply gateway config for channel
openclaw gateway config.patch --raw '{"channels": {...}}'
# 3. Create agent bound to that channel
scripts/create-agent.sh \
--name "Watson" \
--id "watson" \
--emoji "🔬" \
--specialty "Deep research and competitive analysis" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/watson" \
--discord-channel "1234567890"
# Done! Agent is created and bound to the channel
```
## Configuration
### Discord Category ID
**Option 1: Command line**
```bash
python3 scripts/setup-channel.py \
--name channel-name \
--context "Purpose" \
--category-id "1234567890"
```
**Option 2: Environment variable**
```bash
export DISCORD_CATEGORY_ID="1234567890"
python3 scripts/setup-channel.py --name channel-name --context "Purpose"
```
### Finding Discord IDs
**Enable Developer Mode:**
- Settings → Advanced → Developer Mode
**Copy IDs:**
- Right-click channel → Copy ID
- Right-click category → Copy ID
## Scripts Reference
### create-agent.sh
**Arguments:**
- `--name` (required) - Agent name
- `--id` (required) - Agent ID (lowercase, hyphenated)
- `--emoji` (required) - Agent emoji
- `--specialty` (required) - What the agent does
- `--model` (required) - LLM to use (provider/model-name)
- `--workspace` (required) - Where to create agent files
- `--discord-channel` (optional) - Discord channel ID to bind
**Output:**
- Creates agent workspace
- Generates SOUL.md and HEARTBEAT.md
- Updates gateway config
- Optionally creates daily memory cron
### setup-channel.py
**Arguments:**
- `--name` (required) - Channel name
- `--context` (required) - Channel purpose/context
- `--id` (optional) - Existing channel ID
- `--category-id` (optional) - Discord category ID
**Output:**
- Creates Discord channel (if doesn't exist)
- Generates gateway config.patch command
### rename-channel.py
**Arguments:**
- `--id` (required) - Channel ID
- `--old-name` (required) - Current channel name
- `--new-name` (