agi-farm 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/README.md +542 -0
- package/dashboard-dist/assets/index-BkPgvUOQ.js +50 -0
- package/dashboard-dist/assets/index-CAS2IEKB.css +1 -0
- package/dashboard-dist/index.html +14 -0
- package/dashboard-dist/vite.svg +1 -0
- package/openclaw.plugin.json +103 -0
- package/package.json +94 -0
- package/scripts/dashboard.js +46 -0
- package/scripts/dispatch.js +48 -0
- package/scripts/export.js +81 -0
- package/scripts/rebuild.js +65 -0
- package/scripts/setup.js +361 -0
- package/scripts/status.js +82 -0
- package/scripts/teardown.js +109 -0
- package/server/dashboard.js +459 -0
- package/server/utils.js +83 -0
- package/skills/agi-farm/SKILL.md +439 -0
- package/templates/AGENTS.md.template +37 -0
- package/templates/BOOTSTRAP.md.template +39 -0
- package/templates/CLAUDE.md.template +119 -0
- package/templates/DASHBOARD.md.template +31 -0
- package/templates/DECISIONS.md.template +16 -0
- package/templates/EXPERIMENTS.json.template +10 -0
- package/templates/FAILURES.md.template +13 -0
- package/templates/HEARTBEAT.md.template +24 -0
- package/templates/IDENTITY.md.template +34 -0
- package/templates/IMPROVEMENT_BACKLOG.json.template +29 -0
- package/templates/MEMORY.md.template +39 -0
- package/templates/PROCESSES.json.template +61 -0
- package/templates/README.md.bundle.template +78 -0
- package/templates/SHARED_KNOWLEDGE.json.template +10 -0
- package/templates/SOUL.md.anchor +61 -0
- package/templates/SOUL.md.cipher +69 -0
- package/templates/SOUL.md.evolve +58 -0
- package/templates/SOUL.md.forge +55 -0
- package/templates/SOUL.md.generic +65 -0
- package/templates/SOUL.md.lens +62 -0
- package/templates/SOUL.md.main +96 -0
- package/templates/SOUL.md.nova +75 -0
- package/templates/SOUL.md.pixel +58 -0
- package/templates/SOUL.md.sage +67 -0
- package/templates/SOUL.md.vigil +71 -0
- package/templates/SOUL.md.vista +64 -0
- package/templates/TASKS.json.template +34 -0
- package/templates/TOOLS.md.template +26 -0
- package/templates/USER.md.template +18 -0
- package/templates/install.sh.template +79 -0
- package/templates/standards/coding.md.template +27 -0
- package/templates/standards/documentation.md.template +26 -0
- package/templates/standards/quality.md.template +37 -0
- package/templates/standards/research.md.template +23 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 oabdelmaksoud
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,542 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# 🦅 AGI Farm
|
|
4
|
+
|
|
5
|
+
### One wizard. Full multi-agent AI team. Live in minutes.
|
|
6
|
+
|
|
7
|
+
**Build production-ready AI teams with a single command**
|
|
8
|
+
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
10
|
+
[](https://docs.openclaw.ai)
|
|
11
|
+
[](https://nodejs.org/)
|
|
12
|
+
[](https://www.typescriptlang.org/)
|
|
13
|
+
|
|
14
|
+
[Quick Start](#-quick-start) • [Features](#-what-it-does) • [Documentation](#-commands) • [Architecture](#-architecture)
|
|
15
|
+
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 🎯 What It Does
|
|
21
|
+
|
|
22
|
+
**AGI Farm** is an [OpenClaw](https://docs.openclaw.ai) plugin that bootstraps a fully operational multi-agent AI system with everything you need:
|
|
23
|
+
|
|
24
|
+
| Feature | Description |
|
|
25
|
+
|---------|-------------|
|
|
26
|
+
| 🧙 **Interactive Wizard** | 6 questions → complete team setup in ~2 minutes |
|
|
27
|
+
| 🤖 **Multi-Agent Teams** | Choose 3, 5, or 11 pre-wired specialist agents |
|
|
28
|
+
| 📡 **Live Ops Dashboard** | React + SSE with real-time updates and interactive HITL/Cron controls |
|
|
29
|
+
| 🔄 **Auto-Dispatcher** | Smart task delegation with HITL, backoff & dependencies |
|
|
30
|
+
| 📦 **Portable Bundle** | Export your entire team to GitHub with one command |
|
|
31
|
+
| 🏗️ **ESM Native** | Built for Node 20+ with full ES Module support |
|
|
32
|
+
| 🛡️ **Production Hardened** | Audited for security, memory leaks, and CLI timeouts |
|
|
33
|
+
| 🧪 **Unit Tested** | Core parsing and logic verified with a Jest/ESM test suite |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 📸 Preview
|
|
38
|
+
|
|
39
|
+
### Dashboard Overview
|
|
40
|
+
```
|
|
41
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
42
|
+
│ 🦅 AGI Farm Dashboard Budget: $45.23/100 [LIVE] │
|
|
43
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
44
|
+
│ │
|
|
45
|
+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
46
|
+
│ │ 📊 42 │ │ ✅ 38 │ │ ⏳ 4 │ │ 🚨 2 │ │
|
|
47
|
+
│ │ Tasks │ │ Done │ │ Active │ │ SLA Risk │ │
|
|
48
|
+
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
|
|
49
|
+
│ │
|
|
50
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
51
|
+
│ │ 🔮 Sage ✅ Ready 📨 3 msgs ⭐ 94% quality │ │
|
|
52
|
+
│ │ ⚒️ Forge 🔄 Busy 📨 7 msgs ⭐ 89% quality │ │
|
|
53
|
+
│ │ 🐛 Pixel ✅ Ready 📨 2 msgs ⭐ 96% quality │ │
|
|
54
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
55
|
+
│ │
|
|
56
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Team Architecture
|
|
60
|
+
```
|
|
61
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
62
|
+
│ 11-Agent Team (Full Stack) │
|
|
63
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
64
|
+
│ │
|
|
65
|
+
│ 🦅 Cooper (Orchestrator) │
|
|
66
|
+
│ │ │
|
|
67
|
+
│ ┌───────────────┼───────────────┐ │
|
|
68
|
+
│ │ │ │ │
|
|
69
|
+
│ 🔮 Sage ⚒️ Forge 🐛 Pixel │
|
|
70
|
+
│ (Architect) (Builder) (Debugger) │
|
|
71
|
+
│ │ │ │ │
|
|
72
|
+
│ 🔭 Vista 🔊 Cipher 🛡️ Vigil │
|
|
73
|
+
│ (Analyst) (Knowledge) (QA) │
|
|
74
|
+
│ │ │ │ │
|
|
75
|
+
│ ⚓ Anchor 📡 Lens 🔄 Evolve │
|
|
76
|
+
│ (Content) (Multimodal) (Process) │
|
|
77
|
+
│ │ │
|
|
78
|
+
│ 🧪 Nova │
|
|
79
|
+
│ (R&D Lead) │
|
|
80
|
+
│ │
|
|
81
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 🚀 Quick Start
|
|
87
|
+
|
|
88
|
+
### Install
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# Install from npm (when published)
|
|
92
|
+
openclaw plugins install agi-farm
|
|
93
|
+
|
|
94
|
+
# Or install from GitHub
|
|
95
|
+
openclaw plugins install https://github.com/oabdelmaksoud/AGI-FARM-PLUGIN.git
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Run Setup Wizard
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# Start the interactive wizard
|
|
102
|
+
/agi-farm setup
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Answer 6 questions and your team will be live in ~2 minutes:
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
🧙 AGI Farm Setup Wizard
|
|
109
|
+
|
|
110
|
+
? Team name (e.g., "CooperCorp"): MyTeam
|
|
111
|
+
? Team size: 11 agents (Full Stack)
|
|
112
|
+
? Domain: Software Development
|
|
113
|
+
? Primary framework: langgraph
|
|
114
|
+
? GitHub repo: myteam/ai-agents
|
|
115
|
+
? Confirm setup? Yes
|
|
116
|
+
|
|
117
|
+
✅ Creating 11 agents...
|
|
118
|
+
✅ Setting up workspace...
|
|
119
|
+
✅ Registering cron jobs...
|
|
120
|
+
✅ Creating GitHub bundle...
|
|
121
|
+
✅ Launching dashboard...
|
|
122
|
+
|
|
123
|
+
🎉 Your AI team is ready!
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 📦 Commands
|
|
129
|
+
|
|
130
|
+
| Command | Description | Example |
|
|
131
|
+
|---------|-------------|---------|
|
|
132
|
+
| 🎯 `/agi-farm setup` | Full wizard — agents, workspace, crons | Sets up complete team |
|
|
133
|
+
| 🗑️ `/agi-farm teardown` | Full uninstall — removes agents & workspace | Reverts system to clean state |
|
|
134
|
+
| 📊 `/agi-farm status` | Team health: agents, tasks, cron status | Shows real-time metrics |
|
|
135
|
+
| 🔧 `/agi-farm rebuild` | Regenerate workspace from bundle | After git pull |
|
|
136
|
+
| 📤 `/agi-farm export` | Push bundle to GitHub | Creates new release |
|
|
137
|
+
| 🖥️ `/agi-farm dashboard` | Launch live ops room (SSE, :8080) | Opens in browser |
|
|
138
|
+
| ⚡ `/agi-farm dispatch` | Run auto-dispatcher manually | Test task routing |
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 🏗️ Architecture
|
|
143
|
+
|
|
144
|
+
### Plugin Structure
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
.openclaw/extensions/agi-farm/
|
|
148
|
+
├── 📦 package.json Plugin manifest (ESM)
|
|
149
|
+
├── ⚙️ openclaw.plugin.json Config schema & commands
|
|
150
|
+
├── 📂 src/
|
|
151
|
+
│ └── 💻 index.ts Main plugin entry (TypeScript)
|
|
152
|
+
├── 🌐 server/
|
|
153
|
+
│ ├── 🖥️ dashboard.js SSE server (Node.js)
|
|
154
|
+
│ └── 🛠️ utils.js Core parsing & logic (Unit Tested)
|
|
155
|
+
├── 📜 scripts/
|
|
156
|
+
│ ├── 🎯 setup.js Setup wizard
|
|
157
|
+
│ ├── 🗑️ teardown.js Uninstall mechanism
|
|
158
|
+
│ ├── 📊 status.js Status checker
|
|
159
|
+
│ ├── 🔧 rebuild.js Rebuilder
|
|
160
|
+
│ ├── 📤 export.js GitHub exporter
|
|
161
|
+
│ ├── 🖥️ dashboard.js Dashboard launcher
|
|
162
|
+
│ └── ⚡ dispatch.js Auto-dispatcher
|
|
163
|
+
├── 📋 templates/ Agent & workspace templates
|
|
164
|
+
├── ⚛️ dashboard-react/ Vite + React 18 frontend
|
|
165
|
+
└── 📚 skills/
|
|
166
|
+
└── 📖 SKILL.md Embedded documentation
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Dashboard Architecture
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
173
|
+
│ Dashboard Data Flow │
|
|
174
|
+
├──────────────────────────────────────────────────────────────┤
|
|
175
|
+
│ │
|
|
176
|
+
│ 📂 Workspace Files │
|
|
177
|
+
│ ├── TASKS.json │
|
|
178
|
+
│ ├── AGENT_STATUS.json │
|
|
179
|
+
│ └── comms/broadcast.md │
|
|
180
|
+
│ │ │
|
|
181
|
+
│ │ file change (250ms debounce) │
|
|
182
|
+
│ ▼ │
|
|
183
|
+
│ ┌─────────────────────┐ │
|
|
184
|
+
│ │ WorkspaceWatcher │ 👁️ chokidar file watcher │
|
|
185
|
+
│ └─────────────────────┘ │
|
|
186
|
+
│ │ │
|
|
187
|
+
│ ▼ │
|
|
188
|
+
│ ┌─────────────────────┐ ┌──────────────────┐ │
|
|
189
|
+
│ │ SlowDataCache │ │ Broadcaster │ │
|
|
190
|
+
│ │ (30s cache) │───▶│ (SSE fan-out) │ │
|
|
191
|
+
│ └─────────────────────┘ └──────────────────┘ │
|
|
192
|
+
│ │ │
|
|
193
|
+
│ │ SSE stream │
|
|
194
|
+
│ ▼ │
|
|
195
|
+
│ ┌──────────────────┐ │
|
|
196
|
+
│ │ React Frontend │ │
|
|
197
|
+
│ │ (Vite + Recharts)│ │
|
|
198
|
+
│ └──────────────────┘ │
|
|
199
|
+
│ │
|
|
200
|
+
└──────────────────────────────────────────────────────────────┘
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Real-time Data Flow
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
┌──────────────┐ 250ms ┌──────────────┐ SSE ┌──────────────┐
|
|
207
|
+
│ Workspace │ ──────────────▶│ Server │ ───────────▶ │ Browser │
|
|
208
|
+
│ Files │ chokidar │ dashboard.js│ ~350ms │ React │
|
|
209
|
+
└──────────────┘ └──────────────┘ └──────────────┘
|
|
210
|
+
▲ │
|
|
211
|
+
│ │
|
|
212
|
+
│ ┌──────────────┐ │
|
|
213
|
+
└──────────────────────│ OpenClaw │◀────────────────────┘
|
|
214
|
+
CLI commands │ CLI │ User actions
|
|
215
|
+
└──────────────┘
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 🤖 Team Presets
|
|
221
|
+
|
|
222
|
+
### 3-Agent (Minimal) 🏃
|
|
223
|
+
|
|
224
|
+
Perfect for simple workflows and quick prototypes.
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
🦅 Orchestrator
|
|
228
|
+
│
|
|
229
|
+
├──▶ 🔮 Researcher
|
|
230
|
+
│ │
|
|
231
|
+
└──▶ ⚒️ Builder
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**Best for:** Quick prototypes, simple automation, learning
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
### 5-Agent (Standard) ⚡
|
|
239
|
+
|
|
240
|
+
Balanced team for production workloads.
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
🦅 Orchestrator
|
|
244
|
+
│
|
|
245
|
+
┌───────────┼───────────┐
|
|
246
|
+
│ │
|
|
247
|
+
🔮 Researcher 🛡️ QA
|
|
248
|
+
│ │
|
|
249
|
+
⚒️ Builder ⚓ Content
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
**Best for:** Production apps, balanced workloads, medium complexity
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
### 11-Agent (Full Stack) 🚀
|
|
257
|
+
|
|
258
|
+
Complete team for complex systems - **RECOMMENDED**
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
🦅 Cooper
|
|
262
|
+
(Orchestrator)
|
|
263
|
+
│
|
|
264
|
+
┌──────────────────┼──────────────────┐
|
|
265
|
+
│ │ │
|
|
266
|
+
🔮 Sage ⚒️ Forge 🐛 Pixel
|
|
267
|
+
(Architect) (Builder) (Debugger)
|
|
268
|
+
│ │ │
|
|
269
|
+
🔭 Vista 🔊 Cipher 🛡️ Vigil
|
|
270
|
+
(Analyst) (Knowledge) (QA)
|
|
271
|
+
│ │ │
|
|
272
|
+
⚓ Anchor 📡 Lens 🔄 Evolve
|
|
273
|
+
(Content) (Multimodal) (Process)
|
|
274
|
+
│
|
|
275
|
+
🧪 Nova
|
|
276
|
+
(R&D Lead)
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
**Best for:** Complex systems, enterprise, full-stack development
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## 🧠 Model Selection Guide
|
|
284
|
+
|
|
285
|
+
Choose the right model for each role to optimize cost and quality:
|
|
286
|
+
|
|
287
|
+
| Role | Model Tier | Why | Cost/Quality |
|
|
288
|
+
|------|-----------|-----|--------------|
|
|
289
|
+
| 🦅 Orchestrator | **High** (`sonnet`, `opus`) | Delegation judgment, broad reasoning | 💰💰💰 / ⭐⭐⭐ |
|
|
290
|
+
| 🔮 Architect | **High** | Deep analysis, design decisions | 💰💰💰 / ⭐⭐⭐ |
|
|
291
|
+
| ⚒️ Engineer | **Mid** (`glm-5`, `sonnet`) | Fast code gen, cost-efficiency | 💰💰 / ⭐⭐ |
|
|
292
|
+
| 🐛 Debugger | **High** (`opus`) | Root-cause analysis, precision | 💰💰💰 / ⭐⭐⭐ |
|
|
293
|
+
| 🔭 Analyst | **Mid-High** (`gemini-2.0-pro-exp`) | Long-context research | 💰💰 / ⭐⭐⭐ |
|
|
294
|
+
| 🛡️ QA | **Fast** (`glm-4.7-flash`) | High-volume pattern checks | 💰 / ⭐⭐ |
|
|
295
|
+
| ⚓ Content | **Multimodal** (`gemini-2.0-pro-exp`) | Vision + rich generation | 💰💰 / ⭐⭐⭐ |
|
|
296
|
+
| 🧪 R&D | **High** | Creative + structured experiments | 💰💰💰 / ⭐⭐⭐ |
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## ⚙️ Configuration
|
|
301
|
+
|
|
302
|
+
Configure AGI Farm in your `openclaw.json`:
|
|
303
|
+
|
|
304
|
+
```json
|
|
305
|
+
{
|
|
306
|
+
"plugins": {
|
|
307
|
+
"entries": {
|
|
308
|
+
"agi-farm": {
|
|
309
|
+
"enabled": true,
|
|
310
|
+
"config": {
|
|
311
|
+
"dashboardPort": 8080,
|
|
312
|
+
"dashboardHost": "127.0.0.1",
|
|
313
|
+
"autoStartDashboard": true,
|
|
314
|
+
"workspacePath": "~/.openclaw/workspace",
|
|
315
|
+
"bundlePath": "~/.openclaw/workspace/agi-farm-bundle"
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### Configuration Options
|
|
324
|
+
|
|
325
|
+
| Option | Type | Default | Description |
|
|
326
|
+
|--------|------|---------|-------------|
|
|
327
|
+
| `dashboardPort` | number | 8080 | Port for live ops dashboard |
|
|
328
|
+
| `dashboardHost` | string | "127.0.0.1" | Bind address for dashboard |
|
|
329
|
+
| `autoStartDashboard` | boolean | true | Auto-start dashboard on load |
|
|
330
|
+
| `workspacePath` | string | ~/.openclaw/workspace | Path to OpenClaw workspace |
|
|
331
|
+
| `bundlePath` | string | <workspace>/agi-farm-bundle | Path to bundle directory |
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## 📊 Dashboard Data Sources
|
|
336
|
+
|
|
337
|
+
All data updates in real-time from workspace files:
|
|
338
|
+
|
|
339
|
+
| Field | Source | Refresh | Latency |
|
|
340
|
+
|-------|--------|---------|---------|
|
|
341
|
+
| 📋 Tasks | `TASKS.json` | Instant | ~50ms |
|
|
342
|
+
| 🤖 Agents | `AGENT_STATUS.json` | Instant | ~50ms |
|
|
343
|
+
| 📬 Comms | `comms/inboxes/*.md` | Instant | ~50ms |
|
|
344
|
+
| 🚨 Alerts | `ALERTS.json` | Instant | ~50ms |
|
|
345
|
+
| 📂 Projects | `PROJECTS.json` | Instant | ~50ms |
|
|
346
|
+
| 💰 Budget | `BUDGET.json` | Instant | ~50ms |
|
|
347
|
+
| 📈 Velocity | `VELOCITY.json` | Instant | ~50ms |
|
|
348
|
+
| 🎯 OKRs | `OKRs.json` | Instant | ~50ms |
|
|
349
|
+
| 📢 Broadcast | `comms/broadcast.md` | Instant | ~50ms |
|
|
350
|
+
| 🧪 Experiments | `EXPERIMENTS.json` | Instant | ~50ms |
|
|
351
|
+
| 📚 Knowledge | `SHARED_KNOWLEDGE.json` | Instant | ~50ms |
|
|
352
|
+
| 🧠 Memory | `MEMORY.md` | Instant | ~50ms |
|
|
353
|
+
| 🔄 Agent Models | `openclaw agents list` | Cached | ~30s |
|
|
354
|
+
|
|
355
|
+
### Interactive Actions (API)
|
|
356
|
+
|
|
357
|
+
The dashboard enables direct control over team operations via the following REST endpoints:
|
|
358
|
+
|
|
359
|
+
- `POST /api/hitl/:id/approve` — Continue task with optional notes
|
|
360
|
+
- `POST /api/hitl/:id/reject` — Block task and notify agent
|
|
361
|
+
- `POST /api/cron/:id/trigger` — Manually run a specific cron job
|
|
362
|
+
- `POST /api/cron/:id/toggle` — Enable or disable a cron job
|
|
363
|
+
|
|
364
|
+
**Total push latency:** ~350ms from file change to browser update
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## ⚡ Auto-Dispatcher
|
|
369
|
+
|
|
370
|
+
The auto-dispatcher intelligently routes tasks to agents:
|
|
371
|
+
|
|
372
|
+
```
|
|
373
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
374
|
+
│ Auto-Dispatcher Flow │
|
|
375
|
+
├──────────────────────────────────────────────────────────────┤
|
|
376
|
+
│ │
|
|
377
|
+
│ 📋 Pending Tasks │
|
|
378
|
+
│ │ │
|
|
379
|
+
│ ▼ │
|
|
380
|
+
│ ┌─────────────┐ No ┌──────────────┐ │
|
|
381
|
+
│ │ HITL Check │───────────▶│ Skip Task │ │
|
|
382
|
+
│ └─────────────┘ └──────────────┘ │
|
|
383
|
+
│ │ Yes │
|
|
384
|
+
│ ▼ │
|
|
385
|
+
│ ┌─────────────┐ Yes ┌──────────────┐ │
|
|
386
|
+
│ │ Rate Limit? │───────────▶│ Backoff Wait │ │
|
|
387
|
+
│ └─────────────┘ └──────────────┘ │
|
|
388
|
+
│ │ No │
|
|
389
|
+
│ ▼ │
|
|
390
|
+
│ ┌─────────────┐ No ┌──────────────┐ │
|
|
391
|
+
│ │ Deps Met? │───────────▶│ Skip Task │ │
|
|
392
|
+
│ └─────────────┘ └──────────────┘ │
|
|
393
|
+
│ │ Yes │
|
|
394
|
+
│ ▼ │
|
|
395
|
+
│ ┌─────────────┐ │
|
|
396
|
+
│ │ Fire Agent │ ▶ openclaw agents run <agent> <task> │
|
|
397
|
+
│ └─────────────┘ │
|
|
398
|
+
│ │
|
|
399
|
+
└──────────────────────────────────────────────────────────────┘
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
### Features
|
|
403
|
+
|
|
404
|
+
- ✅ **HITL Integration** — Human-in-the-loop decision requests
|
|
405
|
+
- ✅ **Rate-Limit Backoff** — Exponential backoff on API limits (default: 10min)
|
|
406
|
+
- ✅ **Dependency Checking** — Respects task dependencies
|
|
407
|
+
- ✅ **Cron Schedule** — Runs automatically every 1 minute
|
|
408
|
+
|
|
409
|
+
```bash
|
|
410
|
+
# Manual dry-run
|
|
411
|
+
/agi-farm dispatch
|
|
412
|
+
|
|
413
|
+
# Check logs
|
|
414
|
+
tail -f ~/.openclaw/workspace/logs/auto-dispatch.log
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
## 🛠️ Installation from Source
|
|
420
|
+
|
|
421
|
+
```bash
|
|
422
|
+
# Clone the repository
|
|
423
|
+
git clone https://github.com/oabdelmaksoud/AGI-FARM-PLUGIN.git
|
|
424
|
+
cd AGI-FARM-PLUGIN
|
|
425
|
+
|
|
426
|
+
# Install dependencies
|
|
427
|
+
npm install
|
|
428
|
+
|
|
429
|
+
# Build TypeScript
|
|
430
|
+
npm run build
|
|
431
|
+
|
|
432
|
+
# Link to OpenClaw extensions
|
|
433
|
+
ln -s $(pwd) ~/.openclaw/extensions/agi-farm
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
438
|
+
## 💻 Development
|
|
439
|
+
|
|
440
|
+
```bash
|
|
441
|
+
# Build TypeScript
|
|
442
|
+
npm run build
|
|
443
|
+
|
|
444
|
+
# Watch mode for development
|
|
445
|
+
npm run dev
|
|
446
|
+
|
|
447
|
+
# Type checking
|
|
448
|
+
npm run typecheck
|
|
449
|
+
|
|
450
|
+
# Linting
|
|
451
|
+
npm run lint
|
|
452
|
+
|
|
453
|
+
# Run unit tests (Jest + ESM)
|
|
454
|
+
npm test
|
|
455
|
+
|
|
456
|
+
# Start dashboard server manually
|
|
457
|
+
npm run start-dashboard
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
---
|
|
461
|
+
|
|
462
|
+
## 🔧 Troubleshooting
|
|
463
|
+
|
|
464
|
+
| Symptom | Fix | Command |
|
|
465
|
+
|---------|-----|---------|
|
|
466
|
+
| ❌ Plugin fails to load | Install dependencies | `npm install` |
|
|
467
|
+
| 📊 Dashboard shows stale data | Restart dashboard | `/agi-farm dashboard` |
|
|
468
|
+
| 🤖 Agent stuck >30 min | Check broadcast | `cat comms/broadcast.md` |
|
|
469
|
+
| ⚠️ `openclaw` not found | Add to PATH | `export PATH=$PATH:/path/to/openclaw` |
|
|
470
|
+
| 🔐 `gh repo create` fails | Login to GitHub | `gh auth login` |
|
|
471
|
+
| ⏰ Cron shows 0 crons | Check duplicates | `openclaw cron list` |
|
|
472
|
+
| 📄 TASKS.json parse error | Validate JSON | `python3 -m json.tool TASKS.json` |
|
|
473
|
+
| 🐌 Rate-limit too aggressive | Adjust backoff | Edit dispatch script |
|
|
474
|
+
|
|
475
|
+
---
|
|
476
|
+
|
|
477
|
+
## 🔒 Security
|
|
478
|
+
|
|
479
|
+
This plugin is designed with security in mind:
|
|
480
|
+
|
|
481
|
+
| ✅ What It Does | ❌ What It Doesn't Do |
|
|
482
|
+
|----------------|----------------------|
|
|
483
|
+
| Uses OpenClaw CLI (inherits credentials) | Store API keys or tokens |
|
|
484
|
+
| Reads/writes local workspace files | Send data to external servers |
|
|
485
|
+
| Runs local HTTP server (127.0.0.1) | Expose data to network |
|
|
486
|
+
| Uses your configured LLM providers | Add additional authentication |
|
|
487
|
+
|
|
488
|
+
**Your credentials stay in OpenClaw's configuration.**
|
|
489
|
+
|
|
490
|
+
---
|
|
491
|
+
|
|
492
|
+
## 📚 Plugin vs Skill
|
|
493
|
+
|
|
494
|
+
AGI Farm was migrated from a **skill** to a **plugin** because it:
|
|
495
|
+
|
|
496
|
+
| Requirement | Skill | Plugin |
|
|
497
|
+
|-------------|-------|--------|
|
|
498
|
+
| Background services | ❌ | ✅ Dashboard server |
|
|
499
|
+
| Complex wizard (15+ steps) | ⚠️ | ✅ Better UX |
|
|
500
|
+
| System integration | ❌ | ✅ Cron, LaunchAgent |
|
|
501
|
+
| Configuration management | ⚠️ | ✅ Schema-based |
|
|
502
|
+
|
|
503
|
+
The embedded `skills/agi-farm/SKILL.md` provides documentation reference for agents.
|
|
504
|
+
|
|
505
|
+
---
|
|
506
|
+
|
|
507
|
+
## 🤝 Contributing
|
|
508
|
+
|
|
509
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
510
|
+
|
|
511
|
+
1. Fork the repository
|
|
512
|
+
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
|
|
513
|
+
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
|
|
514
|
+
4. Push to the branch (`git push origin feature/AmazingFeature`)
|
|
515
|
+
5. Open a Pull Request
|
|
516
|
+
|
|
517
|
+
---
|
|
518
|
+
|
|
519
|
+
## 📝 License
|
|
520
|
+
|
|
521
|
+
MIT License — built for [OpenClaw](https://docs.openclaw.ai)
|
|
522
|
+
|
|
523
|
+
Copyright (c) 2025 oabdelmaksoud
|
|
524
|
+
|
|
525
|
+
---
|
|
526
|
+
|
|
527
|
+
## 🔗 Links
|
|
528
|
+
|
|
529
|
+
- **GitHub**: https://github.com/oabdelmaksoud/AGI-FARM-PLUGIN
|
|
530
|
+
- **Issues**: https://github.com/oabdelmaksoud/AGI-FARM-PLUGIN/issues
|
|
531
|
+
- **OpenClaw Docs**: https://docs.openclaw.ai
|
|
532
|
+
- **NPM Package**: (coming soon)
|
|
533
|
+
|
|
534
|
+
---
|
|
535
|
+
|
|
536
|
+
<div align="center">
|
|
537
|
+
|
|
538
|
+
**Made with ❤️ for the OpenClaw community**
|
|
539
|
+
|
|
540
|
+
[⬆ Back to Top](#-agi-farm)
|
|
541
|
+
|
|
542
|
+
</div>
|