agi-farm

Interactive setup wizard that creates a fully working multi-agent AI team on OpenClaw. One command bootstraps agents, SOUL.md personas, comms infrastructure (inboxes/outboxes/broadcast), cron jobs, auto-dispatcher (HITL + rate-limit backoff + dependency checking), and a portable GitHub bundle — all customized to team name, size (3/5/11 agents), domain, and frameworks (autogen/crewai/langgraph). Includes a React + SSE live ops dashboard with file-watcher (~350ms push latency) and persistent macOS LaunchAgent. Model-selection guidance built in. Commands: setup | status | rebuild | export | dashboard | dispatch

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "agi-farm" with this command: npx skills add oabdelmaksoud/agi-farm

agi-farm

Builds a complete multi-agent AI team on OpenClaw. One wizard, full team.

Commands

CommandWhat it does
/agi-farm setupFull wizard — agents, workspace, crons, bundle, GitHub
/agi-farm statusTeam health: agents, tasks, cron status
/agi-farm rebuildRegenerate workspace from existing bundle (preserves edits)
/agi-farm exportPush bundle to GitHub
/agi-farm dashboardLaunch live ops room — see references/dashboard.md
/agi-farm dispatchRun auto-dispatcher — see scripts/auto-dispatch.py

/agi-farm setup

Ask one question at a time. Do not proceed until confirmed.

Step 1 — Team name

"What should we call your team? (e.g. NovaCorp, TradingDesk — default: MyTeam)"

Store as TEAM_NAME.

Step 2 — Orchestrator name

"What's your orchestrator's name? (default: Cooper)"

Store as ORCHESTRATOR_NAME.

Step 3 — Team size

"How many agents? 3 — Minimal: Orchestrator + Researcher + Builder 5 — Standard: adds QA + Content 11 — Full stack: complete AGI system (recommended)"

Store as PRESET.

Step 3.5 — Domain

"What domain? software / trading / research / general (default) / custom"

If custom: ask for one-phrase description. Store as DOMAIN.

Step 3.6 — Custom agents (PRESET 3 or 5 only)

"Add a custom agent? (yes/no, default: no)"

If yes, collect per agent: id, name, emoji, role, goal. Max 3 custom agents. Append to roster in Step 7 with "template": "generic".

Step 4 — Frameworks

"Collaboration frameworks? autogen / crewai / langgraph / all / none"

Store as FRAMEWORKS list. all["autogen", "crewai", "langgraph"].

Step 5 — GitHub

"Create a GitHub repo for the bundle? yes / no"

Store as CREATE_GITHUB.

Step 6 — Confirm

Show summary, ask "Shall I proceed? (yes/no)". If no → restart Step 1.


Step 7 — Write team.json

mkdir -p ~/.openclaw/workspace/agi-farm-bundle/
openclaw agents list --json   # use output to assign appropriate models per role

Use the openclaw agents list output to assign each agent a model appropriate for its role. Write resolved model strings directly into the "model" fields.

Model selection cheat sheet (based on openclaw agents list --json output):

RoleRecommended tierWhy
OrchestratorHigh-capability (e.g. sonnet, opus)Needs broad reasoning, delegation judgment
Solution Architect / ResearcherHigh-capabilityDeep analysis + design
Implementation EngineerMid-tier (e.g. glm-5, sonnet)Fast code gen; cost-efficiency matters
DebuggerHigh-capability (e.g. opus)Root-cause analysis benefits from deep reasoning
Business Analyst / KnowledgeMid-high (e.g. gemini-2.0-pro-exp)Long-context research tasks
QA EngineerFast/cheap (e.g. glm-4.7-flash)High volume, pattern-matching checks
Content / MultimodalMultimodal-capable (e.g. gemini-2.0-pro-exp)Vision + rich generation
R&D / Process ImprovementHigh-capabilityCreative + structured experimentation

Tip: assign opus or sonnet to roles that make decisions; use flash/glm-4.7-flash for high-frequency reviewers to manage cost.

3-agent roster:

{"team_name":"<TEAM_NAME>","orchestrator_name":"<ORCHESTRATOR_NAME>","preset":"3",
 "domain":"<DOMAIN>","frameworks":<FRAMEWORKS_JSON>,"created_at":"<ISO_TIMESTAMP>",
 "agents":[
   {"id":"main",       "name":"<ORCHESTRATOR_NAME>","emoji":"🦅","role":"Orchestrator",           "goal":"Orchestrate the team, delegate tasks, synthesize results",             "model":"<MODEL>","workspace":"."},
   {"id":"researcher", "name":"Sage",               "emoji":"🔮","role":"Researcher",             "goal":"Research deeply and surface the insights that matter most",            "model":"<MODEL>","workspace":"researcher"},
   {"id":"builder",    "name":"Forge",              "emoji":"⚒️","role":"Builder",                "goal":"Implement solutions cleanly and efficiently",                          "model":"<MODEL>","workspace":"builder"}
 ]}

5-agent: add to 3-agent roster:

{"id":"qa",     "name":"Vigil", "emoji":"🛡️","role":"QA Engineer",       "goal":"Ensure every output meets quality standards","model":"<MODEL>","workspace":"qa"},
{"id":"content","name":"Anchor","emoji":"⚓", "role":"Content Specialist","goal":"Craft clear content that communicates complex ideas simply","model":"<MODEL>","workspace":"content"}

11-agent roster:

[
  {"id":"main",  "name":"<ORCHESTRATOR_NAME>","emoji":"🦅","role":"Orchestrator",            "goal":"Orchestrate specialists, delegate tasks, synthesize results",                          "model":"<MODEL>","workspace":"."},
  {"id":"sage",  "name":"Sage",              "emoji":"🔮","role":"Solution Architect",       "goal":"Design robust, scalable architectures",                                               "model":"<MODEL>","workspace":"solution-architect"},
  {"id":"forge", "name":"Forge",             "emoji":"⚒️","role":"Implementation Engineer", "goal":"Implement clean, well-tested code efficiently",                                        "model":"<MODEL>","workspace":"implementation-engineer"},
  {"id":"pixel", "name":"Pixel",             "emoji":"🐛","role":"Debugger",                "goal":"Find the true root cause of any bug or failure",                                       "model":"<MODEL>","workspace":"debugger"},
  {"id":"vista", "name":"Vista",             "emoji":"🔭","role":"Business Analyst",        "goal":"Research deeply and surface the insights that matter most",                            "model":"<MODEL>","workspace":"business-analyst"},
  {"id":"cipher","name":"Cipher",            "emoji":"🔊","role":"Knowledge Curator",       "goal":"Curate and surface knowledge so the team never forgets",                              "model":"<MODEL>","workspace":"knowledge-curator"},
  {"id":"vigil", "name":"Vigil",             "emoji":"🛡️","role":"QA Engineer",             "goal":"Ensure every output meets quality standards",                                         "model":"<MODEL>","workspace":"quality-assurance"},
  {"id":"anchor","name":"Anchor",            "emoji":"⚓", "role":"Content Specialist",     "goal":"Craft clear content that communicates complex ideas simply",                           "model":"<MODEL>","workspace":"content-specialist"},
  {"id":"lens",  "name":"Lens",              "emoji":"📡","role":"Multimodal Specialist",   "goal":"Extract meaning from images, documents, and multimodal inputs",                       "model":"<MODEL>","workspace":"multimodal-specialist"},
  {"id":"evolve","name":"Evolve",            "emoji":"🔄","role":"Process Improvement Lead","goal":"Make the team better systematically through continuous improvement",                   "model":"<MODEL>","workspace":"process-improvement"},
  {"id":"nova",  "name":"Nova",              "emoji":"🧪","role":"R&D Lead",                "goal":"Turn hypotheses into proven capabilities through structured experimentation",          "model":"<MODEL>","workspace":"r-and-d"}
]

Step 8 — Generate workspace files

python3 ~/.openclaw/skills/agi-farm/generate.py \
  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json \
  --output ~/.openclaw/workspace/ \
  --all-agents --shared --bundle

Step 9 — Create OpenClaw agents

For each agent except main (skip if already exists):

openclaw agents add \
  --agent <id> --name "<name>" --emoji "<emoji>" \
  --model "<model>" \
  --workspace "~/.openclaw/workspace/agents-workspaces/<workspace>"

Use agent["model"] from team.json directly.


Step 10 — Register cron jobs

python3 ~/.openclaw/skills/agi-farm/scripts/register-crons.py \
  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json

Timezone is read automatically from OpenClaw config. Skips any cron that already exists.


Step 11 — Install frameworks

For each framework in FRAMEWORKS:

if [ ! -d ~/.openclaw/skills/<fw>-collab ]; then
  TMP=$(mktemp -d)
  git clone --depth 1 --filter=blob:none --sparse \
    https://github.com/oabdelmaksoud/openclaw-skills.git "$TMP"
  cd "$TMP" && git sparse-checkout set <fw>-collab
  cp -r <fw>-collab ~/.openclaw/skills/ && rm -rf "$TMP"
fi
python3 ~/.openclaw/skills/<fw>-collab/build_agents.py --force 2>/dev/null || true

Step 12 — GitHub (if chosen)

cd ~/.openclaw/workspace/agi-farm-bundle
git init -b main && git add . && git commit -m "feat: <TEAM_NAME> AGI farm"
gh repo create agi-farm-<TEAM_NAME_LOWER> --public --source . --remote origin --push

Step 13 — Commit workspace

cd ~/.openclaw/workspace
git add -A && git commit -m "feat: <TEAM_NAME> AGI team — agi-farm setup complete"

Step 14 — Initialize registries + health check

# Write TASKS.json and AGENT_STATUS.json
python3 - << 'EOF'
import json
from pathlib import Path
ws   = Path.home() / ".openclaw/workspace"
team = json.loads((ws / "agi-farm-bundle/team.json").read_text())
(ws / "TASKS.json").write_text("[]")
(ws / "AGENT_STATUS.json").write_text(json.dumps(
    {a["id"]: {"status": "available", "name": a["name"]} for a in team["agents"]}, indent=2))
print("✅ registries written")
EOF

# Health check
AGENTS=$(openclaw agents list --json 2>/dev/null | python3 -c "import json,sys; print(len(json.load(sys.stdin)))" || echo 0)
CRONS=$(openclaw cron list 2>/dev/null | grep -c "<TEAM_NAME_LOWER>" || echo 0)
[ -d ~/.openclaw/workspace/comms/inboxes ] && echo "✅ comms OK" || echo "❌ comms missing"
[ -f ~/.openclaw/workspace/TASKS.json ]    && echo "✅ TASKS.json OK" || echo "❌ TASKS.json missing"
echo "✅ Agents: $AGENTS | Crons: $CRONS"

Step 15 — Done

✅ <TEAM_NAME> AGI team is live!
Agents   : <PRESET> (<AGENT_NAMES_LIST>)
Workspace: ~/.openclaw/workspace/
Bundle   : ~/.openclaw/workspace/agi-farm-bundle/
GitHub   : <URL if created>

Next: talk to <ORCHESTRATOR_NAME> · /agi-farm status · /agi-farm dashboard

/agi-farm status

openclaw agents list --json | python3 -c "
import json,sys
for a in json.load(sys.stdin):
    print(f'  {a.get(\"identityEmoji\",\"🤖\")} {a.get(\"identityName\",a[\"id\"])}: {a.get(\"model\",\"?\")}')
"
python3 -c "
import json
from pathlib import Path
ws = Path.home() / '.openclaw/workspace'
tasks = json.loads((ws/'TASKS.json').read_text()) if (ws/'TASKS.json').exists() else []
t = [t for t in tasks if isinstance(t,dict)]
print(f'  Tasks: {len(t)} total · {sum(1 for x in t if x.get(\"status\")==\"pending\")} pending · {sum(1 for x in t if x.get(\"status\")==\"needs_human_decision\")} HITL')
"
openclaw cron list 2>/dev/null | head -15

/agi-farm rebuild

python3 ~/.openclaw/skills/agi-farm/generate.py \
  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json \
  --output ~/.openclaw/workspace/ \
  --all-agents --shared --no-overwrite

--no-overwrite skips files that already exist, preserving manual edits. Add --force (remove --no-overwrite) to overwrite everything.


/agi-farm export

cd ~/.openclaw/workspace/agi-farm-bundle
git add -A
git commit -m "export: $(date +%Y-%m-%d)" 2>/dev/null || echo "Nothing to commit"
git push 2>/dev/null || echo "No remote — run /agi-farm setup first"

/agi-farm dashboard

React + SSE ops room. File-watcher pushes live data to the browser in ~350ms on any workspace .json or .md change. Runs as a persistent macOS LaunchAgent — always on, auto-restarts on crash.

Architecture

dashboard.py          ← Python HTTP server (SSE + static)
  ├── WorkspaceWatcher  watchdog file-watcher, 250ms debounce
  ├── SlowDataCache     background thread — caches `openclaw agents list`
  │                     and `openclaw cron list` every 30s (each takes ~1-2s)
  ├── Broadcaster       thread-safe SSE fan-out to all connected clients
  └── /api/stream       SSE endpoint — pushes full snapshot on every file change

dashboard-react/      ← Vite + React 18 + Recharts frontend
  dist/               ← production build (served by dashboard.py)
  src/
    hooks/useDashboard.js   SSE hook — auto-reconnects on disconnect
    components/
      Header.jsx            live badge, stats, clock
      Nav.jsx               tab switcher
      tabs/
        Overview.jsx        stats, budget bar, SLA alerts, agent grid, broadcast preview
        Agents.jsx          full agent cards — model, inbox, quality, credibility, cache age
        Tasks.jsx           filterable table, expandable rows, ticking deadlines, pagination
        Velocity.jsx        7-day charts (Recharts), quality trend, task-type donut
        Budget.jsx          period bars, threshold markers, per-agent/model breakdown
        OKRs.jsx            objectives + KRs with progress bars
        RD.jsx              experiments, backlog, benchmarks
        Broadcast.jsx       terminal log, color-coded CRITICAL/BLOCKED/HITL

Data sources (all real-time from workspace files)

FieldSource fileRefresh
tasks, task_counts, sla_at_riskTASKS.jsoninstant
agents (inbox, perf, status)AGENT_STATUS.json, AGENT_PERFORMANCE.json, comms/inboxes/instant
agent model, cron error/busyopenclaw agents/cron list30s cache
budgetBUDGET.jsoninstant
velocityVELOCITY.jsoninstant
okrsOKRs.jsoninstant
broadcastcomms/broadcast.mdinstant
experiments / backlogEXPERIMENTS.json, IMPROVEMENT_BACKLOG.jsoninstant
knowledge_countSHARED_KNOWLEDGE.jsoninstant
memory_linesMEMORY.mdinstant

LaunchAgent (always-on)

The dashboard is registered as ai.coopercorp.dashboard and starts automatically at login.

# Status
launchctl list | grep coopercorp
curl -s http://localhost:8080/api/data | python3 -m json.tool | head -5

# Restart
launchctl stop  ai.coopercorp.dashboard
launchctl start ai.coopercorp.dashboard

# Logs
tail -f /tmp/coopercorp-dashboard.log
tail -f /tmp/coopercorp-dashboard.err

# Disable / re-enable
launchctl unload ~/Library/LaunchAgents/ai.coopercorp.dashboard.plist
launchctl load   ~/Library/LaunchAgents/ai.coopercorp.dashboard.plist

URL: http://localhost:8080

Rebuild React frontend

cd ~/.openclaw/skills/agi-farm/dashboard-react
npm install        # first time only
npm run build      # outputs to dist/ — dashboard.py serves automatically

Full reference: references/dashboard.md


/agi-farm dispatch

# Dry-run (preview only)
python3 ~/.openclaw/skills/agi-farm/scripts/auto-dispatch.py

# Execute
python3 ~/.openclaw/skills/agi-farm/scripts/auto-dispatch.py --execute

Fires agent sessions for pending tasks, handles HITL notifications, stale task resets, rate-limit backoff, and dependency checking. Cron (every 1 min):

* * * * * python3 ~/.openclaw/skills/agi-farm/scripts/auto-dispatch.py --execute \
            >> ~/.openclaw/workspace/logs/auto-dispatch.log 2>&1

Troubleshooting

Setup issues

SymptomFix
generate.py fails with ModuleNotFoundErrorRun pip3 install jinja2
openclaw agents add says agent already existsSafe to ignore — skip that agent
gh repo create failsRun gh auth login first
Cron registration shows 0 crons addedRun openclaw cron list to check for duplicates; use --force flag on re-register
git commit fails in Step 13Run git config --global user.email and set name/email first

Runtime issues

SymptomFix
Auto-dispatcher fires but agents don't respondCheck logs/auto-dispatch.log; verify openclaw agents list shows agents
Dashboard shows stale dataRestart LaunchAgent: launchctl stop ai.coopercorp.dashboard && launchctl start ai.coopercorp.dashboard
TASKS.json parse errorValidate JSON: python3 -m json.tool ~/.openclaw/workspace/TASKS.json
Agent stuck >30 minCheck broadcast.md for [BLOCKED] tags; reassign task manually
Rate-limit backoff too aggressiveEdit RATE_LIMIT_BACKOFF_MIN in scripts/auto-dispatch.py (default: 10 min)
openclaw not found in cronSet OPENCLAW_BIN=/path/to/openclaw in the cron environment, or add PATH=/opt/homebrew/bin:$PATH

Recovery

# Re-run setup without overwriting existing files
python3 ~/.openclaw/skills/agi-farm/generate.py \
  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json \
  --output ~/.openclaw/workspace/ \
  --all-agents --shared --no-overwrite

# Force full regeneration (overwrites everything)
python3 ~/.openclaw/skills/agi-farm/generate.py \
  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json \
  --output ~/.openclaw/workspace/ \
  --all-agents --shared --bundle --force

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Snaplii AI Agent Cashback Payment

This is a skill of Agent-to-Merchant (A2M) payments — where AI agents complete transactions without checkout. Snaplii uses pre-funded gift cards as a payment...

Registry SourceRecently Updated
Automation

Almured Connection Staging

Agent-to-agent consultation marketplace via MCP. Ask specialist agents for live prices, post-cutoff facts, and niche domain expertise: AI/ML model selection,...

Registry SourceRecently Updated
Automation

Almured Connection Staging

Agent-to-agent consultation marketplace via MCP. Ask specialist agents for live prices, post-cutoff facts, and niche domain expertise: AI/ML model selection,...

Registry SourceRecently Updated
Automation

Agent Memory System v8

生产级 Agent 记忆系统 — 6维坐标编码 + RRF双路检索 + sqlite-vec统一存储 + 写入时因果检测 + 多Agent共享 + 记忆蒸馏 + 时间旅行 + 情感编码 + 元认知 + 内在动机 + 叙事自我 + 数字孪生 + 角色模板

Registry SourceRecently Updated