swarm-orchestrator
AI Agent cluster orchestration platform - manage, schedule, and coordinate multiple AI agents locally with FastAPI backend and React dashboard
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
AI Agent cluster orchestration platform - manage, schedule, and coordinate multiple AI agents locally with FastAPI backend and React dashboard
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | swarm-orchestrator |
| display_name | Swarm Orchestrator |
| description | AI Agent cluster orchestration platform - manage, schedule, and coordinate multiple AI agents locally with FastAPI backend and React dashboard |
| version | 0.1.0 |
| author | OpenClaw Team |
| license | MIT-0 |
| tags | ["orchestration","multi-agent","ai-agents","swarm","automation","fastapi","python","react","local-first"] |
| requires | {"tools":[{"name":"python","version":">=3.11","purpose":"Backend runtime"},{"name":"node","version":">=18","purpose":"Frontend build and runtime"},{"name":"redis","version":">=6","purpose":"Task queue and caching"},{"name":"docker","version":">=20","purpose":"Optional containerized deployment","optional":true}],"env":[{"name":"DATABASE_URL","description":"Database connection string","default":"sqlite+aiosqlite:///./data/swarm.db","required":false,"sensitive":false},{"name":"REDIS_URL","description":"Redis connection URL","default":"redis://localhost:6379","required":false,"sensitive":false},{"name":"SECRET_KEY","description":"Application secret key for sessions","default":"generated-on-first-run","required":false,"sensitive":true},{"name":"OPENAI_API_KEY","description":"Optional OpenAI API key for LLM agents","required":false,"sensitive":true},{"name":"ANTHROPIC_API_KEY","description":"Optional Anthropic API key for Claude agents","required":false,"sensitive":true}],"packages":[{"name":"openclaw-swarm-orchestrator","source":"npm","version":"0.1.0","verified_repo":"https://github.com/ZhenRobotics/openclaw-swarm-orchestrator","verified_commit":"acae6e5","install_command":"npm install -g openclaw-swarm-orchestrator"}]} |
| network | {"external_servers":[{"description":"No external servers required for core functionality"},{"description":"Optional: OpenAI/Anthropic APIs if using LLM agents (user-controlled)"}],"data_collection":"none","telemetry":"none","local_only":true} |
| verification | {"check_commands":["swarm-orchestrator --version","curl http://localhost:8000/health"],"expected_files":["~/.swarm-orchestrator/config.yml","./data/swarm.db"]} |
Status: 🟢 Local-First AI Agent Orchestration Platform Type: Self-hosted, no external dependencies required Privacy: 100% local processing (except optional LLM API calls)
./data/swarm.db (local only)./logs/ (local only)OpenClaw Swarm Orchestrator is a local-first platform for building and managing multi-agent AI systems. Think of it as a "control tower" for coordinating multiple AI agents working together.
┌─────────────────┐
│ Web Dashboard │ http://localhost:3000
│ (React UI) │
└────────┬────────┘
│
┌────────▼────────┐
│ FastAPI Server │ http://localhost:8000
│ (Backend API) │
└────────┬────────┘
│
┌────────▼────────┐
│ Local Storage │
│ • SQLite DB │ ./data/swarm.db
│ • Redis Cache │ localhost:6379
│ • Log Files │ ./logs/*.log
└─────────────────┘
Before installing, verify you have:
# Python 3.11+
python --version
# Node.js 18+
node --version
# Redis
redis-cli ping # Should return PONG
# (Optional) Docker
docker --version
This is the safest method - everything runs in containers.
# 1. Clone repository (inspect code first!)
git clone https://github.com/ZhenRobotics/openclaw-swarm-orchestrator.git
cd openclaw-swarm-orchestrator
# 2. Review docker-compose.yml before starting
cat docker-compose.yml
# 3. Start services
docker-compose up -d
# 4. Verify
curl http://localhost:8000/health
# Should return: {"status": "healthy"}
Access:
# 1. Install via npm (after reviewing package)
npm view openclaw-swarm-orchestrator # Review before installing
npm install -g openclaw-swarm-orchestrator
# 2. Verify installation
swarm-orchestrator --version
# 3. Start services (in separate terminals)
# Terminal 1: Start Redis
redis-server
# Terminal 2: Start backend
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload
# Terminal 3: Start frontend
cd frontend
npm install
npm run dev
# 1. Clone and inspect
git clone https://github.com/ZhenRobotics/openclaw-swarm-orchestrator.git
cd openclaw-swarm-orchestrator
# 2. Verify commit hash (security check)
git log -1 --format="%H"
# Should be: 505f957... (or latest release tag)
# 3. Review code before running
cat backend/requirements.txt # Check dependencies
cat package.json # Check npm deps
cat docker-compose.yml # Check container config
# 4. Install dependencies
cd backend && pip install -r requirements.txt
cd ../frontend && npm install
# 5. Run (see Method 2 for detailed steps)
Create .env in project root:
# Minimal config - no external services needed
DATABASE_URL=sqlite+aiosqlite:///./data/swarm.db
REDIS_URL=redis://localhost:6379
SECRET_KEY=your-random-secret-key-here
DEBUG=true
If you want to use LLM agents (OpenAI, Anthropic), add:
# Optional - only if using LLM agents
OPENAI_API_KEY=sk-your-key-here
ANTHROPIC_API_KEY=sk-ant-your-key-here
⚠️ Security Note:
.env file securely (not in git)# Using Docker
docker-compose up -d
# Or manually
redis-server &
cd backend && uvicorn app.main:app --reload &
cd frontend && npm run dev &
Via Web UI:
{"model": "gpt-4"} (if using LLM)Via API:
curl -X POST http://localhost:8000/api/agents \
-H "Content-Type: application/json" \
-d '{
"name": "My Assistant",
"type": "llm",
"config": {"model": "gpt-4"}
}'
curl -X POST http://localhost:8000/api/tasks \
-H "Content-Type: application/json" \
-d '{
"title": "Analyze data",
"description": "Process the sales report",
"priority": "high"
}'
Web Dashboard: http://localhost:3000
API:
# System status
curl http://localhost:8000/api/orchestrator/status
# List agents
curl http://localhost:8000/api/agents
# List tasks
curl http://localhost:8000/api/tasks
Uses external LLM APIs (OpenAI, Anthropic).
{
"name": "GPT-4 Assistant",
"type": "llm",
"config": {
"model": "gpt-4",
"temperature": 0.7
}
}
Required: OPENAI_API_KEY or ANTHROPIC_API_KEY
Executes local functions/scripts.
{
"name": "Data Processor",
"type": "tool",
"config": {
"script_path": "./tools/process_data.py"
}
}
No external services needed.
Human-in-the-loop workflows.
{
"name": "Manager Approval",
"type": "human",
"config": {
"notification": "email"
}
}
No external services needed.
You define the behavior.
from swarm_orchestrator.base import BaseAgent
class MyCustomAgent(BaseAgent):
async def execute(self, task):
# Your custom logic
return result
No external services needed.
Access at http://localhost:3000:
All logs stored locally:
# Application logs
tail -f logs/swarm.log
# Docker logs (if using Docker)
docker-compose logs -f
# Health check
curl http://localhost:8000/health
# Statistics
curl http://localhost:8000/api/orchestrator/stats
# Agent list
curl http://localhost:8000/api/agents
.env file (not in code)chmod 600 .env.env to .gitignore./data/chmod 600 data/swarm.dbcp data/swarm.db backups/docker-compose.ymlbackend/requirements.txtfrontend/package.jsonnpm audit and pip check# Check Python version
python --version # Must be 3.11+
# Check Redis
redis-cli ping # Must return PONG
# Check logs
tail -f logs/swarm.log
# Check Node version
node --version # Must be 18+
# Clear cache
cd frontend
rm -rf node_modules
npm install
# Reset database (WARNING: deletes all data)
rm data/swarm.db
# Restart backend (auto-creates tables)
uvicorn app.main:app --reload
# Check ports
lsof -i :8000 # Backend
lsof -i :3000 # Frontend
lsof -i :6379 # Redis
# Kill processes if needed
kill -9 <PID>
MIT License - see LICENSE
Before using this skill:
505f957requirements.txt and package.json# Research → Write → Review pipeline
research_agent = Agent(name="Researcher", type="llm")
writer_agent = Agent(name="Writer", type="llm")
reviewer_agent = Agent(name="Reviewer", type="human")
# Tasks auto-execute in order
# Multiple agents processing tasks in parallel
workers = [Agent(name=f"Worker-{i}", type="tool") for i in range(5)]
# Orchestrator auto-assigns tasks
# AI processes, human approves
ai_agent = Agent(name="AI", type="llm")
human_agent = Agent(name="Manager", type="human")
Version: 0.1.0 Status: Alpha - Active Development Local-First: ✅ All core features work offline Privacy: ✅ No data leaves your machine (except optional LLM calls)
Built with privacy and transparency in mind. Inspect the code before you trust it.