{
  "schemaVersion": "1.0",
  "item": {
    "slug": "agi-farm",
    "name": "AGI Farm",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/oabdelmaksoud/agi-farm",
    "canonicalUrl": "https://clawhub.ai/oabdelmaksoud/agi-farm",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/agi-farm",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=agi-farm",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "auto-dispatch.py",
      "dashboard-react/README.md",
      "dashboard-react/dist/assets/index-CN6oMpnV.js",
      "dashboard-react/dist/assets/index-DpgkYyr0.css"
    ],
    "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/agi-farm"
    },
    "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/agi-farm",
    "agentPageUrl": "https://openagent3.xyz/skills/agi-farm/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agi-farm/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agi-farm/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": "agi-farm",
        "body": "Builds a complete multi-agent AI team on OpenClaw. One wizard, full team."
      },
      {
        "title": "Commands",
        "body": "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"
      },
      {
        "title": "/agi-farm setup",
        "body": "Ask one question at a time. Do not proceed until confirmed."
      },
      {
        "title": "Step 1 — Team name",
        "body": "\"What should we call your team? (e.g. NovaCorp, TradingDesk — default: MyTeam)\"\n\nStore as TEAM_NAME."
      },
      {
        "title": "Step 2 — Orchestrator name",
        "body": "\"What's your orchestrator's name? (default: Cooper)\"\n\nStore as ORCHESTRATOR_NAME."
      },
      {
        "title": "Step 3 — Team size",
        "body": "\"How many agents?\n3 — Minimal: Orchestrator + Researcher + Builder\n5 — Standard: adds QA + Content\n11 — Full stack: complete AGI system (recommended)\"\n\nStore as PRESET."
      },
      {
        "title": "Step 3.5 — Domain",
        "body": "\"What domain? software / trading / research / general (default) / custom\"\n\nIf custom: ask for one-phrase description. Store as DOMAIN."
      },
      {
        "title": "Step 3.6 — Custom agents (PRESET 3 or 5 only)",
        "body": "\"Add a custom agent? (yes/no, default: no)\"\n\nIf yes, collect per agent: id, name, emoji, role, goal. Max 3 custom agents.\nAppend to roster in Step 7 with \"template\": \"generic\"."
      },
      {
        "title": "Step 4 — Frameworks",
        "body": "\"Collaboration frameworks? autogen / crewai / langgraph / all / none\"\n\nStore as FRAMEWORKS list. all → [\"autogen\", \"crewai\", \"langgraph\"]."
      },
      {
        "title": "Step 5 — GitHub",
        "body": "\"Create a GitHub repo for the bundle? yes / no\"\n\nStore as CREATE_GITHUB."
      },
      {
        "title": "Step 6 — Confirm",
        "body": "Show summary, ask \"Shall I proceed? (yes/no)\". If no → restart Step 1."
      },
      {
        "title": "Step 7 — Write team.json",
        "body": "mkdir -p ~/.openclaw/workspace/agi-farm-bundle/\nopenclaw agents list --json   # use output to assign appropriate models per role\n\nUse the openclaw agents list output to assign each agent a model appropriate for\nits role. Write resolved model strings directly into the \"model\" fields.\n\nModel selection cheat sheet (based on openclaw agents list --json output):\n\nRoleRecommended tierWhyOrchestratorHigh-capability (e.g. sonnet, opus)Needs broad reasoning, delegation judgmentSolution Architect / ResearcherHigh-capabilityDeep analysis + designImplementation EngineerMid-tier (e.g. glm-5, sonnet)Fast code gen; cost-efficiency mattersDebuggerHigh-capability (e.g. opus)Root-cause analysis benefits from deep reasoningBusiness Analyst / KnowledgeMid-high (e.g. gemini-2.0-pro-exp)Long-context research tasksQA EngineerFast/cheap (e.g. glm-4.7-flash)High volume, pattern-matching checksContent / MultimodalMultimodal-capable (e.g. gemini-2.0-pro-exp)Vision + rich generationR&D / Process ImprovementHigh-capabilityCreative + structured experimentation\n\nTip: assign opus or sonnet to roles that make decisions; use flash/glm-4.7-flash for high-frequency reviewers to manage cost.\n\n3-agent roster:\n\n{\"team_name\":\"<TEAM_NAME>\",\"orchestrator_name\":\"<ORCHESTRATOR_NAME>\",\"preset\":\"3\",\n \"domain\":\"<DOMAIN>\",\"frameworks\":<FRAMEWORKS_JSON>,\"created_at\":\"<ISO_TIMESTAMP>\",\n \"agents\":[\n   {\"id\":\"main\",       \"name\":\"<ORCHESTRATOR_NAME>\",\"emoji\":\"🦅\",\"role\":\"Orchestrator\",           \"goal\":\"Orchestrate the team, delegate tasks, synthesize results\",             \"model\":\"<MODEL>\",\"workspace\":\".\"},\n   {\"id\":\"researcher\", \"name\":\"Sage\",               \"emoji\":\"🔮\",\"role\":\"Researcher\",             \"goal\":\"Research deeply and surface the insights that matter most\",            \"model\":\"<MODEL>\",\"workspace\":\"researcher\"},\n   {\"id\":\"builder\",    \"name\":\"Forge\",              \"emoji\":\"⚒️\",\"role\":\"Builder\",                \"goal\":\"Implement solutions cleanly and efficiently\",                          \"model\":\"<MODEL>\",\"workspace\":\"builder\"}\n ]}\n\n5-agent: add to 3-agent roster:\n\n{\"id\":\"qa\",     \"name\":\"Vigil\", \"emoji\":\"🛡️\",\"role\":\"QA Engineer\",       \"goal\":\"Ensure every output meets quality standards\",\"model\":\"<MODEL>\",\"workspace\":\"qa\"},\n{\"id\":\"content\",\"name\":\"Anchor\",\"emoji\":\"⚓\", \"role\":\"Content Specialist\",\"goal\":\"Craft clear content that communicates complex ideas simply\",\"model\":\"<MODEL>\",\"workspace\":\"content\"}\n\n11-agent roster:\n\n[\n  {\"id\":\"main\",  \"name\":\"<ORCHESTRATOR_NAME>\",\"emoji\":\"🦅\",\"role\":\"Orchestrator\",            \"goal\":\"Orchestrate specialists, delegate tasks, synthesize results\",                          \"model\":\"<MODEL>\",\"workspace\":\".\"},\n  {\"id\":\"sage\",  \"name\":\"Sage\",              \"emoji\":\"🔮\",\"role\":\"Solution Architect\",       \"goal\":\"Design robust, scalable architectures\",                                               \"model\":\"<MODEL>\",\"workspace\":\"solution-architect\"},\n  {\"id\":\"forge\", \"name\":\"Forge\",             \"emoji\":\"⚒️\",\"role\":\"Implementation Engineer\", \"goal\":\"Implement clean, well-tested code efficiently\",                                        \"model\":\"<MODEL>\",\"workspace\":\"implementation-engineer\"},\n  {\"id\":\"pixel\", \"name\":\"Pixel\",             \"emoji\":\"🐛\",\"role\":\"Debugger\",                \"goal\":\"Find the true root cause of any bug or failure\",                                       \"model\":\"<MODEL>\",\"workspace\":\"debugger\"},\n  {\"id\":\"vista\", \"name\":\"Vista\",             \"emoji\":\"🔭\",\"role\":\"Business Analyst\",        \"goal\":\"Research deeply and surface the insights that matter most\",                            \"model\":\"<MODEL>\",\"workspace\":\"business-analyst\"},\n  {\"id\":\"cipher\",\"name\":\"Cipher\",            \"emoji\":\"🔊\",\"role\":\"Knowledge Curator\",       \"goal\":\"Curate and surface knowledge so the team never forgets\",                              \"model\":\"<MODEL>\",\"workspace\":\"knowledge-curator\"},\n  {\"id\":\"vigil\", \"name\":\"Vigil\",             \"emoji\":\"🛡️\",\"role\":\"QA Engineer\",             \"goal\":\"Ensure every output meets quality standards\",                                         \"model\":\"<MODEL>\",\"workspace\":\"quality-assurance\"},\n  {\"id\":\"anchor\",\"name\":\"Anchor\",            \"emoji\":\"⚓\", \"role\":\"Content Specialist\",     \"goal\":\"Craft clear content that communicates complex ideas simply\",                           \"model\":\"<MODEL>\",\"workspace\":\"content-specialist\"},\n  {\"id\":\"lens\",  \"name\":\"Lens\",              \"emoji\":\"📡\",\"role\":\"Multimodal Specialist\",   \"goal\":\"Extract meaning from images, documents, and multimodal inputs\",                       \"model\":\"<MODEL>\",\"workspace\":\"multimodal-specialist\"},\n  {\"id\":\"evolve\",\"name\":\"Evolve\",            \"emoji\":\"🔄\",\"role\":\"Process Improvement Lead\",\"goal\":\"Make the team better systematically through continuous improvement\",                   \"model\":\"<MODEL>\",\"workspace\":\"process-improvement\"},\n  {\"id\":\"nova\",  \"name\":\"Nova\",              \"emoji\":\"🧪\",\"role\":\"R&D Lead\",                \"goal\":\"Turn hypotheses into proven capabilities through structured experimentation\",          \"model\":\"<MODEL>\",\"workspace\":\"r-and-d\"}\n]"
      },
      {
        "title": "Step 8 — Generate workspace files",
        "body": "python3 ~/.openclaw/skills/agi-farm/generate.py \\\n  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json \\\n  --output ~/.openclaw/workspace/ \\\n  --all-agents --shared --bundle"
      },
      {
        "title": "Step 9 — Create OpenClaw agents",
        "body": "For each agent except main (skip if already exists):\n\nopenclaw agents add \\\n  --agent <id> --name \"<name>\" --emoji \"<emoji>\" \\\n  --model \"<model>\" \\\n  --workspace \"~/.openclaw/workspace/agents-workspaces/<workspace>\"\n\nUse agent[\"model\"] from team.json directly."
      },
      {
        "title": "Step 10 — Register cron jobs",
        "body": "python3 ~/.openclaw/skills/agi-farm/scripts/register-crons.py \\\n  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json\n\nTimezone is read automatically from OpenClaw config. Skips any cron that already exists."
      },
      {
        "title": "Step 11 — Install frameworks",
        "body": "For each framework in FRAMEWORKS:\n\nif [ ! -d ~/.openclaw/skills/<fw>-collab ]; then\n  TMP=$(mktemp -d)\n  git clone --depth 1 --filter=blob:none --sparse \\\n    https://github.com/oabdelmaksoud/openclaw-skills.git \"$TMP\"\n  cd \"$TMP\" && git sparse-checkout set <fw>-collab\n  cp -r <fw>-collab ~/.openclaw/skills/ && rm -rf \"$TMP\"\nfi\npython3 ~/.openclaw/skills/<fw>-collab/build_agents.py --force 2>/dev/null || true"
      },
      {
        "title": "Step 12 — GitHub (if chosen)",
        "body": "cd ~/.openclaw/workspace/agi-farm-bundle\ngit init -b main && git add . && git commit -m \"feat: <TEAM_NAME> AGI farm\"\ngh repo create agi-farm-<TEAM_NAME_LOWER> --public --source . --remote origin --push"
      },
      {
        "title": "Step 13 — Commit workspace",
        "body": "cd ~/.openclaw/workspace\ngit add -A && git commit -m \"feat: <TEAM_NAME> AGI team — agi-farm setup complete\""
      },
      {
        "title": "Step 14 — Initialize registries + health check",
        "body": "# Write TASKS.json and AGENT_STATUS.json\npython3 - << 'EOF'\nimport json\nfrom pathlib import Path\nws   = Path.home() / \".openclaw/workspace\"\nteam = json.loads((ws / \"agi-farm-bundle/team.json\").read_text())\n(ws / \"TASKS.json\").write_text(\"[]\")\n(ws / \"AGENT_STATUS.json\").write_text(json.dumps(\n    {a[\"id\"]: {\"status\": \"available\", \"name\": a[\"name\"]} for a in team[\"agents\"]}, indent=2))\nprint(\"✅ registries written\")\nEOF\n\n# Health check\nAGENTS=$(openclaw agents list --json 2>/dev/null | python3 -c \"import json,sys; print(len(json.load(sys.stdin)))\" || echo 0)\nCRONS=$(openclaw cron list 2>/dev/null | grep -c \"<TEAM_NAME_LOWER>\" || echo 0)\n[ -d ~/.openclaw/workspace/comms/inboxes ] && echo \"✅ comms OK\" || echo \"❌ comms missing\"\n[ -f ~/.openclaw/workspace/TASKS.json ]    && echo \"✅ TASKS.json OK\" || echo \"❌ TASKS.json missing\"\necho \"✅ Agents: $AGENTS | Crons: $CRONS\""
      },
      {
        "title": "Step 15 — Done",
        "body": "✅ <TEAM_NAME> AGI team is live!\nAgents   : <PRESET> (<AGENT_NAMES_LIST>)\nWorkspace: ~/.openclaw/workspace/\nBundle   : ~/.openclaw/workspace/agi-farm-bundle/\nGitHub   : <URL if created>\n\nNext: talk to <ORCHESTRATOR_NAME> · /agi-farm status · /agi-farm dashboard"
      },
      {
        "title": "/agi-farm status",
        "body": "openclaw agents list --json | python3 -c \"\nimport json,sys\nfor a in json.load(sys.stdin):\n    print(f'  {a.get(\\\"identityEmoji\\\",\\\"🤖\\\")} {a.get(\\\"identityName\\\",a[\\\"id\\\"])}: {a.get(\\\"model\\\",\\\"?\\\")}')\n\"\npython3 -c \"\nimport json\nfrom pathlib import Path\nws = Path.home() / '.openclaw/workspace'\ntasks = json.loads((ws/'TASKS.json').read_text()) if (ws/'TASKS.json').exists() else []\nt = [t for t in tasks if isinstance(t,dict)]\nprint(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')\n\"\nopenclaw cron list 2>/dev/null | head -15"
      },
      {
        "title": "/agi-farm rebuild",
        "body": "python3 ~/.openclaw/skills/agi-farm/generate.py \\\n  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json \\\n  --output ~/.openclaw/workspace/ \\\n  --all-agents --shared --no-overwrite\n\n--no-overwrite skips files that already exist, preserving manual edits.\nAdd --force (remove --no-overwrite) to overwrite everything."
      },
      {
        "title": "/agi-farm export",
        "body": "cd ~/.openclaw/workspace/agi-farm-bundle\ngit add -A\ngit commit -m \"export: $(date +%Y-%m-%d)\" 2>/dev/null || echo \"Nothing to commit\"\ngit push 2>/dev/null || echo \"No remote — run /agi-farm setup first\""
      },
      {
        "title": "/agi-farm dashboard",
        "body": "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."
      },
      {
        "title": "Architecture",
        "body": "dashboard.py          ← Python HTTP server (SSE + static)\n  ├── WorkspaceWatcher  watchdog file-watcher, 250ms debounce\n  ├── SlowDataCache     background thread — caches `openclaw agents list`\n  │                     and `openclaw cron list` every 30s (each takes ~1-2s)\n  ├── Broadcaster       thread-safe SSE fan-out to all connected clients\n  └── /api/stream       SSE endpoint — pushes full snapshot on every file change\n\ndashboard-react/      ← Vite + React 18 + Recharts frontend\n  dist/               ← production build (served by dashboard.py)\n  src/\n    hooks/useDashboard.js   SSE hook — auto-reconnects on disconnect\n    components/\n      Header.jsx            live badge, stats, clock\n      Nav.jsx               tab switcher\n      tabs/\n        Overview.jsx        stats, budget bar, SLA alerts, agent grid, broadcast preview\n        Agents.jsx          full agent cards — model, inbox, quality, credibility, cache age\n        Tasks.jsx           filterable table, expandable rows, ticking deadlines, pagination\n        Velocity.jsx        7-day charts (Recharts), quality trend, task-type donut\n        Budget.jsx          period bars, threshold markers, per-agent/model breakdown\n        OKRs.jsx            objectives + KRs with progress bars\n        RD.jsx              experiments, backlog, benchmarks\n        Broadcast.jsx       terminal log, color-coded CRITICAL/BLOCKED/HITL"
      },
      {
        "title": "Data sources (all real-time from workspace files)",
        "body": "FieldSource fileRefreshtasks, task_counts, sla_at_riskTASKS.jsoninstantagents (inbox, perf, status)AGENT_STATUS.json, AGENT_PERFORMANCE.json, comms/inboxes/instantagent model, cron error/busyopenclaw agents/cron list30s cachebudgetBUDGET.jsoninstantvelocityVELOCITY.jsoninstantokrsOKRs.jsoninstantbroadcastcomms/broadcast.mdinstantexperiments / backlogEXPERIMENTS.json, IMPROVEMENT_BACKLOG.jsoninstantknowledge_countSHARED_KNOWLEDGE.jsoninstantmemory_linesMEMORY.mdinstant"
      },
      {
        "title": "LaunchAgent (always-on)",
        "body": "The dashboard is registered as ai.coopercorp.dashboard and starts automatically at login.\n\n# Status\nlaunchctl list | grep coopercorp\ncurl -s http://localhost:8080/api/data | python3 -m json.tool | head -5\n\n# Restart\nlaunchctl stop  ai.coopercorp.dashboard\nlaunchctl start ai.coopercorp.dashboard\n\n# Logs\ntail -f /tmp/coopercorp-dashboard.log\ntail -f /tmp/coopercorp-dashboard.err\n\n# Disable / re-enable\nlaunchctl unload ~/Library/LaunchAgents/ai.coopercorp.dashboard.plist\nlaunchctl load   ~/Library/LaunchAgents/ai.coopercorp.dashboard.plist\n\nURL: http://localhost:8080"
      },
      {
        "title": "Rebuild React frontend",
        "body": "cd ~/.openclaw/skills/agi-farm/dashboard-react\nnpm install        # first time only\nnpm run build      # outputs to dist/ — dashboard.py serves automatically\n\nFull reference: references/dashboard.md"
      },
      {
        "title": "/agi-farm dispatch",
        "body": "# Dry-run (preview only)\npython3 ~/.openclaw/skills/agi-farm/scripts/auto-dispatch.py\n\n# Execute\npython3 ~/.openclaw/skills/agi-farm/scripts/auto-dispatch.py --execute\n\nFires agent sessions for pending tasks, handles HITL notifications, stale task\nresets, rate-limit backoff, and dependency checking. Cron (every 1 min):\n\n* * * * * python3 ~/.openclaw/skills/agi-farm/scripts/auto-dispatch.py --execute \\\n            >> ~/.openclaw/workspace/logs/auto-dispatch.log 2>&1"
      },
      {
        "title": "Setup issues",
        "body": "SymptomFixgenerate.py fails with ModuleNotFoundErrorRun pip3 install jinja2openclaw agents add says agent already existsSafe to ignore — skip that agentgh repo create failsRun gh auth login firstCron registration shows 0 crons addedRun openclaw cron list to check for duplicates; use --force flag on re-registergit commit fails in Step 13Run git config --global user.email and set name/email first"
      },
      {
        "title": "Runtime issues",
        "body": "SymptomFixAuto-dispatcher fires but agents don't respondCheck logs/auto-dispatch.log; verify openclaw agents list shows agentsDashboard shows stale dataRestart LaunchAgent: launchctl stop ai.coopercorp.dashboard && launchctl start ai.coopercorp.dashboardTASKS.json parse errorValidate JSON: python3 -m json.tool ~/.openclaw/workspace/TASKS.jsonAgent stuck >30 minCheck broadcast.md for [BLOCKED] tags; reassign task manuallyRate-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"
      },
      {
        "title": "Recovery",
        "body": "# Re-run setup without overwriting existing files\npython3 ~/.openclaw/skills/agi-farm/generate.py \\\n  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json \\\n  --output ~/.openclaw/workspace/ \\\n  --all-agents --shared --no-overwrite\n\n# Force full regeneration (overwrites everything)\npython3 ~/.openclaw/skills/agi-farm/generate.py \\\n  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json \\\n  --output ~/.openclaw/workspace/ \\\n  --all-agents --shared --bundle --force"
      }
    ],
    "body": "agi-farm\n\nBuilds a complete multi-agent AI team on OpenClaw. One wizard, full team.\n\nCommands\nCommand\tWhat it does\n/agi-farm setup\tFull wizard — agents, workspace, crons, bundle, GitHub\n/agi-farm status\tTeam health: agents, tasks, cron status\n/agi-farm rebuild\tRegenerate workspace from existing bundle (preserves edits)\n/agi-farm export\tPush bundle to GitHub\n/agi-farm dashboard\tLaunch live ops room — see references/dashboard.md\n/agi-farm dispatch\tRun auto-dispatcher — see scripts/auto-dispatch.py\n/agi-farm setup\n\nAsk one question at a time. Do not proceed until confirmed.\n\nStep 1 — Team name\n\n\"What should we call your team? (e.g. NovaCorp, TradingDesk — default: MyTeam)\"\n\nStore as TEAM_NAME.\n\nStep 2 — Orchestrator name\n\n\"What's your orchestrator's name? (default: Cooper)\"\n\nStore as ORCHESTRATOR_NAME.\n\nStep 3 — Team size\n\n\"How many agents? 3 — Minimal: Orchestrator + Researcher + Builder 5 — Standard: adds QA + Content 11 — Full stack: complete AGI system (recommended)\"\n\nStore as PRESET.\n\nStep 3.5 — Domain\n\n\"What domain? software / trading / research / general (default) / custom\"\n\nIf custom: ask for one-phrase description. Store as DOMAIN.\n\nStep 3.6 — Custom agents (PRESET 3 or 5 only)\n\n\"Add a custom agent? (yes/no, default: no)\"\n\nIf yes, collect per agent: id, name, emoji, role, goal. Max 3 custom agents. Append to roster in Step 7 with \"template\": \"generic\".\n\nStep 4 — Frameworks\n\n\"Collaboration frameworks? autogen / crewai / langgraph / all / none\"\n\nStore as FRAMEWORKS list. all → [\"autogen\", \"crewai\", \"langgraph\"].\n\nStep 5 — GitHub\n\n\"Create a GitHub repo for the bundle? yes / no\"\n\nStore as CREATE_GITHUB.\n\nStep 6 — Confirm\n\nShow summary, ask \"Shall I proceed? (yes/no)\". If no → restart Step 1.\n\nStep 7 — Write team.json\nmkdir -p ~/.openclaw/workspace/agi-farm-bundle/\nopenclaw agents list --json   # use output to assign appropriate models per role\n\n\nUse the openclaw agents list output to assign each agent a model appropriate for its role. Write resolved model strings directly into the \"model\" fields.\n\nModel selection cheat sheet (based on openclaw agents list --json output):\n\nRole\tRecommended tier\tWhy\nOrchestrator\tHigh-capability (e.g. sonnet, opus)\tNeeds broad reasoning, delegation judgment\nSolution Architect / Researcher\tHigh-capability\tDeep analysis + design\nImplementation Engineer\tMid-tier (e.g. glm-5, sonnet)\tFast code gen; cost-efficiency matters\nDebugger\tHigh-capability (e.g. opus)\tRoot-cause analysis benefits from deep reasoning\nBusiness Analyst / Knowledge\tMid-high (e.g. gemini-2.0-pro-exp)\tLong-context research tasks\nQA Engineer\tFast/cheap (e.g. glm-4.7-flash)\tHigh volume, pattern-matching checks\nContent / Multimodal\tMultimodal-capable (e.g. gemini-2.0-pro-exp)\tVision + rich generation\nR&D / Process Improvement\tHigh-capability\tCreative + structured experimentation\n\nTip: assign opus or sonnet to roles that make decisions; use flash/glm-4.7-flash for high-frequency reviewers to manage cost.\n\n3-agent roster:\n\n{\"team_name\":\"<TEAM_NAME>\",\"orchestrator_name\":\"<ORCHESTRATOR_NAME>\",\"preset\":\"3\",\n \"domain\":\"<DOMAIN>\",\"frameworks\":<FRAMEWORKS_JSON>,\"created_at\":\"<ISO_TIMESTAMP>\",\n \"agents\":[\n   {\"id\":\"main\",       \"name\":\"<ORCHESTRATOR_NAME>\",\"emoji\":\"🦅\",\"role\":\"Orchestrator\",           \"goal\":\"Orchestrate the team, delegate tasks, synthesize results\",             \"model\":\"<MODEL>\",\"workspace\":\".\"},\n   {\"id\":\"researcher\", \"name\":\"Sage\",               \"emoji\":\"🔮\",\"role\":\"Researcher\",             \"goal\":\"Research deeply and surface the insights that matter most\",            \"model\":\"<MODEL>\",\"workspace\":\"researcher\"},\n   {\"id\":\"builder\",    \"name\":\"Forge\",              \"emoji\":\"⚒️\",\"role\":\"Builder\",                \"goal\":\"Implement solutions cleanly and efficiently\",                          \"model\":\"<MODEL>\",\"workspace\":\"builder\"}\n ]}\n\n\n5-agent: add to 3-agent roster:\n\n{\"id\":\"qa\",     \"name\":\"Vigil\", \"emoji\":\"🛡️\",\"role\":\"QA Engineer\",       \"goal\":\"Ensure every output meets quality standards\",\"model\":\"<MODEL>\",\"workspace\":\"qa\"},\n{\"id\":\"content\",\"name\":\"Anchor\",\"emoji\":\"⚓\", \"role\":\"Content Specialist\",\"goal\":\"Craft clear content that communicates complex ideas simply\",\"model\":\"<MODEL>\",\"workspace\":\"content\"}\n\n\n11-agent roster:\n\n[\n  {\"id\":\"main\",  \"name\":\"<ORCHESTRATOR_NAME>\",\"emoji\":\"🦅\",\"role\":\"Orchestrator\",            \"goal\":\"Orchestrate specialists, delegate tasks, synthesize results\",                          \"model\":\"<MODEL>\",\"workspace\":\".\"},\n  {\"id\":\"sage\",  \"name\":\"Sage\",              \"emoji\":\"🔮\",\"role\":\"Solution Architect\",       \"goal\":\"Design robust, scalable architectures\",                                               \"model\":\"<MODEL>\",\"workspace\":\"solution-architect\"},\n  {\"id\":\"forge\", \"name\":\"Forge\",             \"emoji\":\"⚒️\",\"role\":\"Implementation Engineer\", \"goal\":\"Implement clean, well-tested code efficiently\",                                        \"model\":\"<MODEL>\",\"workspace\":\"implementation-engineer\"},\n  {\"id\":\"pixel\", \"name\":\"Pixel\",             \"emoji\":\"🐛\",\"role\":\"Debugger\",                \"goal\":\"Find the true root cause of any bug or failure\",                                       \"model\":\"<MODEL>\",\"workspace\":\"debugger\"},\n  {\"id\":\"vista\", \"name\":\"Vista\",             \"emoji\":\"🔭\",\"role\":\"Business Analyst\",        \"goal\":\"Research deeply and surface the insights that matter most\",                            \"model\":\"<MODEL>\",\"workspace\":\"business-analyst\"},\n  {\"id\":\"cipher\",\"name\":\"Cipher\",            \"emoji\":\"🔊\",\"role\":\"Knowledge Curator\",       \"goal\":\"Curate and surface knowledge so the team never forgets\",                              \"model\":\"<MODEL>\",\"workspace\":\"knowledge-curator\"},\n  {\"id\":\"vigil\", \"name\":\"Vigil\",             \"emoji\":\"🛡️\",\"role\":\"QA Engineer\",             \"goal\":\"Ensure every output meets quality standards\",                                         \"model\":\"<MODEL>\",\"workspace\":\"quality-assurance\"},\n  {\"id\":\"anchor\",\"name\":\"Anchor\",            \"emoji\":\"⚓\", \"role\":\"Content Specialist\",     \"goal\":\"Craft clear content that communicates complex ideas simply\",                           \"model\":\"<MODEL>\",\"workspace\":\"content-specialist\"},\n  {\"id\":\"lens\",  \"name\":\"Lens\",              \"emoji\":\"📡\",\"role\":\"Multimodal Specialist\",   \"goal\":\"Extract meaning from images, documents, and multimodal inputs\",                       \"model\":\"<MODEL>\",\"workspace\":\"multimodal-specialist\"},\n  {\"id\":\"evolve\",\"name\":\"Evolve\",            \"emoji\":\"🔄\",\"role\":\"Process Improvement Lead\",\"goal\":\"Make the team better systematically through continuous improvement\",                   \"model\":\"<MODEL>\",\"workspace\":\"process-improvement\"},\n  {\"id\":\"nova\",  \"name\":\"Nova\",              \"emoji\":\"🧪\",\"role\":\"R&D Lead\",                \"goal\":\"Turn hypotheses into proven capabilities through structured experimentation\",          \"model\":\"<MODEL>\",\"workspace\":\"r-and-d\"}\n]\n\nStep 8 — Generate workspace files\npython3 ~/.openclaw/skills/agi-farm/generate.py \\\n  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json \\\n  --output ~/.openclaw/workspace/ \\\n  --all-agents --shared --bundle\n\nStep 9 — Create OpenClaw agents\n\nFor each agent except main (skip if already exists):\n\nopenclaw agents add \\\n  --agent <id> --name \"<name>\" --emoji \"<emoji>\" \\\n  --model \"<model>\" \\\n  --workspace \"~/.openclaw/workspace/agents-workspaces/<workspace>\"\n\n\nUse agent[\"model\"] from team.json directly.\n\nStep 10 — Register cron jobs\npython3 ~/.openclaw/skills/agi-farm/scripts/register-crons.py \\\n  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json\n\n\nTimezone is read automatically from OpenClaw config. Skips any cron that already exists.\n\nStep 11 — Install frameworks\n\nFor each framework in FRAMEWORKS:\n\nif [ ! -d ~/.openclaw/skills/<fw>-collab ]; then\n  TMP=$(mktemp -d)\n  git clone --depth 1 --filter=blob:none --sparse \\\n    https://github.com/oabdelmaksoud/openclaw-skills.git \"$TMP\"\n  cd \"$TMP\" && git sparse-checkout set <fw>-collab\n  cp -r <fw>-collab ~/.openclaw/skills/ && rm -rf \"$TMP\"\nfi\npython3 ~/.openclaw/skills/<fw>-collab/build_agents.py --force 2>/dev/null || true\n\nStep 12 — GitHub (if chosen)\ncd ~/.openclaw/workspace/agi-farm-bundle\ngit init -b main && git add . && git commit -m \"feat: <TEAM_NAME> AGI farm\"\ngh repo create agi-farm-<TEAM_NAME_LOWER> --public --source . --remote origin --push\n\nStep 13 — Commit workspace\ncd ~/.openclaw/workspace\ngit add -A && git commit -m \"feat: <TEAM_NAME> AGI team — agi-farm setup complete\"\n\nStep 14 — Initialize registries + health check\n# Write TASKS.json and AGENT_STATUS.json\npython3 - << 'EOF'\nimport json\nfrom pathlib import Path\nws   = Path.home() / \".openclaw/workspace\"\nteam = json.loads((ws / \"agi-farm-bundle/team.json\").read_text())\n(ws / \"TASKS.json\").write_text(\"[]\")\n(ws / \"AGENT_STATUS.json\").write_text(json.dumps(\n    {a[\"id\"]: {\"status\": \"available\", \"name\": a[\"name\"]} for a in team[\"agents\"]}, indent=2))\nprint(\"✅ registries written\")\nEOF\n\n# Health check\nAGENTS=$(openclaw agents list --json 2>/dev/null | python3 -c \"import json,sys; print(len(json.load(sys.stdin)))\" || echo 0)\nCRONS=$(openclaw cron list 2>/dev/null | grep -c \"<TEAM_NAME_LOWER>\" || echo 0)\n[ -d ~/.openclaw/workspace/comms/inboxes ] && echo \"✅ comms OK\" || echo \"❌ comms missing\"\n[ -f ~/.openclaw/workspace/TASKS.json ]    && echo \"✅ TASKS.json OK\" || echo \"❌ TASKS.json missing\"\necho \"✅ Agents: $AGENTS | Crons: $CRONS\"\n\nStep 15 — Done\n✅ <TEAM_NAME> AGI team is live!\nAgents   : <PRESET> (<AGENT_NAMES_LIST>)\nWorkspace: ~/.openclaw/workspace/\nBundle   : ~/.openclaw/workspace/agi-farm-bundle/\nGitHub   : <URL if created>\n\nNext: talk to <ORCHESTRATOR_NAME> · /agi-farm status · /agi-farm dashboard\n\n/agi-farm status\nopenclaw agents list --json | python3 -c \"\nimport json,sys\nfor a in json.load(sys.stdin):\n    print(f'  {a.get(\\\"identityEmoji\\\",\\\"🤖\\\")} {a.get(\\\"identityName\\\",a[\\\"id\\\"])}: {a.get(\\\"model\\\",\\\"?\\\")}')\n\"\npython3 -c \"\nimport json\nfrom pathlib import Path\nws = Path.home() / '.openclaw/workspace'\ntasks = json.loads((ws/'TASKS.json').read_text()) if (ws/'TASKS.json').exists() else []\nt = [t for t in tasks if isinstance(t,dict)]\nprint(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')\n\"\nopenclaw cron list 2>/dev/null | head -15\n\n/agi-farm rebuild\npython3 ~/.openclaw/skills/agi-farm/generate.py \\\n  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json \\\n  --output ~/.openclaw/workspace/ \\\n  --all-agents --shared --no-overwrite\n\n\n--no-overwrite skips files that already exist, preserving manual edits. Add --force (remove --no-overwrite) to overwrite everything.\n\n/agi-farm export\ncd ~/.openclaw/workspace/agi-farm-bundle\ngit add -A\ngit commit -m \"export: $(date +%Y-%m-%d)\" 2>/dev/null || echo \"Nothing to commit\"\ngit push 2>/dev/null || echo \"No remote — run /agi-farm setup first\"\n\n/agi-farm dashboard\n\nReact + 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.\n\nArchitecture\ndashboard.py          ← Python HTTP server (SSE + static)\n  ├── WorkspaceWatcher  watchdog file-watcher, 250ms debounce\n  ├── SlowDataCache     background thread — caches `openclaw agents list`\n  │                     and `openclaw cron list` every 30s (each takes ~1-2s)\n  ├── Broadcaster       thread-safe SSE fan-out to all connected clients\n  └── /api/stream       SSE endpoint — pushes full snapshot on every file change\n\ndashboard-react/      ← Vite + React 18 + Recharts frontend\n  dist/               ← production build (served by dashboard.py)\n  src/\n    hooks/useDashboard.js   SSE hook — auto-reconnects on disconnect\n    components/\n      Header.jsx            live badge, stats, clock\n      Nav.jsx               tab switcher\n      tabs/\n        Overview.jsx        stats, budget bar, SLA alerts, agent grid, broadcast preview\n        Agents.jsx          full agent cards — model, inbox, quality, credibility, cache age\n        Tasks.jsx           filterable table, expandable rows, ticking deadlines, pagination\n        Velocity.jsx        7-day charts (Recharts), quality trend, task-type donut\n        Budget.jsx          period bars, threshold markers, per-agent/model breakdown\n        OKRs.jsx            objectives + KRs with progress bars\n        RD.jsx              experiments, backlog, benchmarks\n        Broadcast.jsx       terminal log, color-coded CRITICAL/BLOCKED/HITL\n\nData sources (all real-time from workspace files)\nField\tSource file\tRefresh\ntasks, task_counts, sla_at_risk\tTASKS.json\tinstant\nagents (inbox, perf, status)\tAGENT_STATUS.json, AGENT_PERFORMANCE.json, comms/inboxes/\tinstant\nagent model, cron error/busy\topenclaw agents/cron list\t30s cache\nbudget\tBUDGET.json\tinstant\nvelocity\tVELOCITY.json\tinstant\nokrs\tOKRs.json\tinstant\nbroadcast\tcomms/broadcast.md\tinstant\nexperiments / backlog\tEXPERIMENTS.json, IMPROVEMENT_BACKLOG.json\tinstant\nknowledge_count\tSHARED_KNOWLEDGE.json\tinstant\nmemory_lines\tMEMORY.md\tinstant\nLaunchAgent (always-on)\n\nThe dashboard is registered as ai.coopercorp.dashboard and starts automatically at login.\n\n# Status\nlaunchctl list | grep coopercorp\ncurl -s http://localhost:8080/api/data | python3 -m json.tool | head -5\n\n# Restart\nlaunchctl stop  ai.coopercorp.dashboard\nlaunchctl start ai.coopercorp.dashboard\n\n# Logs\ntail -f /tmp/coopercorp-dashboard.log\ntail -f /tmp/coopercorp-dashboard.err\n\n# Disable / re-enable\nlaunchctl unload ~/Library/LaunchAgents/ai.coopercorp.dashboard.plist\nlaunchctl load   ~/Library/LaunchAgents/ai.coopercorp.dashboard.plist\n\n\nURL: http://localhost:8080\n\nRebuild React frontend\ncd ~/.openclaw/skills/agi-farm/dashboard-react\nnpm install        # first time only\nnpm run build      # outputs to dist/ — dashboard.py serves automatically\n\n\nFull reference: references/dashboard.md\n\n/agi-farm dispatch\n# Dry-run (preview only)\npython3 ~/.openclaw/skills/agi-farm/scripts/auto-dispatch.py\n\n# Execute\npython3 ~/.openclaw/skills/agi-farm/scripts/auto-dispatch.py --execute\n\n\nFires agent sessions for pending tasks, handles HITL notifications, stale task resets, rate-limit backoff, and dependency checking. Cron (every 1 min):\n\n* * * * * python3 ~/.openclaw/skills/agi-farm/scripts/auto-dispatch.py --execute \\\n            >> ~/.openclaw/workspace/logs/auto-dispatch.log 2>&1\n\nTroubleshooting\nSetup issues\nSymptom\tFix\ngenerate.py fails with ModuleNotFoundError\tRun pip3 install jinja2\nopenclaw agents add says agent already exists\tSafe to ignore — skip that agent\ngh repo create fails\tRun gh auth login first\nCron registration shows 0 crons added\tRun openclaw cron list to check for duplicates; use --force flag on re-register\ngit commit fails in Step 13\tRun git config --global user.email and set name/email first\nRuntime issues\nSymptom\tFix\nAuto-dispatcher fires but agents don't respond\tCheck logs/auto-dispatch.log; verify openclaw agents list shows agents\nDashboard shows stale data\tRestart LaunchAgent: launchctl stop ai.coopercorp.dashboard && launchctl start ai.coopercorp.dashboard\nTASKS.json parse error\tValidate JSON: python3 -m json.tool ~/.openclaw/workspace/TASKS.json\nAgent stuck >30 min\tCheck broadcast.md for [BLOCKED] tags; reassign task manually\nRate-limit backoff too aggressive\tEdit RATE_LIMIT_BACKOFF_MIN in scripts/auto-dispatch.py (default: 10 min)\nopenclaw not found in cron\tSet OPENCLAW_BIN=/path/to/openclaw in the cron environment, or add PATH=/opt/homebrew/bin:$PATH\nRecovery\n# Re-run setup without overwriting existing files\npython3 ~/.openclaw/skills/agi-farm/generate.py \\\n  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json \\\n  --output ~/.openclaw/workspace/ \\\n  --all-agents --shared --no-overwrite\n\n# Force full regeneration (overwrites everything)\npython3 ~/.openclaw/skills/agi-farm/generate.py \\\n  --team-json ~/.openclaw/workspace/agi-farm-bundle/team.json \\\n  --output ~/.openclaw/workspace/ \\\n  --all-agents --shared --bundle --force"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/oabdelmaksoud/agi-farm",
    "publisherUrl": "https://clawhub.ai/oabdelmaksoud/agi-farm",
    "owner": "oabdelmaksoud",
    "version": "1.2.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/agi-farm",
    "downloadUrl": "https://openagent3.xyz/downloads/agi-farm",
    "agentUrl": "https://openagent3.xyz/skills/agi-farm/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agi-farm/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agi-farm/agent.md"
  }
}