I modeled an AI multi-agent system after China's 1,300-year-old imperial governance.
Turns out, ancient bureaucracy understood separation of powers better than modern AI frameworks.
12 AI agents (11 business roles + 1 compatibility role) form the Three Departments & Six Ministries: Crown Prince triages, Planning proposes, Review vetoes, Dispatch assigns, Ministries execute.
Built-in institutional review gates that CrewAI doesn't have. A real-time dashboard that AutoGen doesn't have.
🎬 Demo · 🚀 Quick Start · 🏛️ Architecture · 📋 Features · 中文 · 日本語 · Contributing
🎥 Full demo: AI Multi-Agent collaboration with Three Departments & Six Ministries
📸 GIF Preview (loads faster)

Issue edict → Crown Prince triage → Planning → Review → Ministries execute → Report back (30s)
🐳 No OpenClaw? Run
docker run -p 7891:7891 cft0808/edictto try the full dashboard with simulated data.
Most multi-agent frameworks let AI agents talk freely, producing opaque results you can't audit or intervene in. Edict takes a radically different approach — borrowing the governance system that ran China for 1,400 years:
You (Emperor) → Crown Prince (Triage) → Planning Dept → Review Dept → Dispatch Dept → 6 Ministries → Report Back
皇上 太子 中书省 门下省 尚书省 六部 回奏
This isn't a cute metaphor. It's real separation of powers for AI:
"Instead of one AI doing everything wrong, 9 specialized agents check each other's work."
| CrewAI | MetaGPT | AutoGen | Edict | |
|---|---|---|---|---|
| Built-in review/veto | ❌ | ⚠️ | ⚠️ | ✅ Dedicated reviewer |
| Real-time Kanban | ❌ | ❌ | ❌ | ✅ 10-panel dashboard |
| Task intervention | ❌ | ❌ | ❌ | ✅ Stop / Cancel / Resume |
| Full audit trail | ⚠️ | ⚠️ | ❌ | ✅ Memorial archive |
| Agent health monitoring | ❌ | ❌ | ❌ | ✅ Heartbeat detection |
| Hot-swap LLM models | ❌ | ❌ | ❌ | ✅ From the dashboard |
| Skill management | ❌ | ❌ | ❌ | ✅ View / Add skills |
| News aggregation | ❌ | ❌ | ❌ | ✅ Daily digest + webhook |
| Setup complexity | Med | High | Med | Low · One-click / Docker |
Core differentiator: Institutional review + Full observability + Real-time intervention
🔍 Why the "Review Department" is the killer feature (click to expand)
CrewAI and AutoGen agents work in a "done, ship it" mode — no one checks output quality. It's like a company with no QA department where engineers push code straight to production.
Edict's Review Department (门下省) exists specifically for this:
This isn't an optional plugin — it's part of the architecture. Every command must pass through Review. No exceptions.
This is why Edict produces reliable results on complex tasks: there's a mandatory quality gate before anything reaches execution. Emperor Taizong figured this out 1,300 years ago — unchecked power inevitably produces errors.
| Panel | Description |
|---|---|
| 📋 Edicts Kanban | Task cards by state, filters, search, heartbeat badges, stop/cancel/resume |
| 🔭 Department Monitor | Pipeline visualization, distribution charts, health cards |
| 📜 Memorial Archive | Auto-generated archives with 5-phase timeline |
| 📜 Edict Templates | 9 presets with parameter forms, cost estimates, one-click dispatch |
| 👥 Officials Overview | Token leaderboard, activity stats |
| 📰 Daily Briefing | Auto-curated news, subscription management, Feishu push |
| ⚙️ Model Config | Per-agent LLM switching, automatic Gateway restart |
| 🛠️ Skills Config | View installed skills, add new ones |
| 💬 Sessions | Live session monitoring with channel labels |
| 🎬 Court Ceremony | Immersive daily opening animation with stats |

📸 More screenshots










docker run -p 7891:7891 cft0808/edict
Open http://localhost:7891
Prerequisites: OpenClaw · Python 3.9+ · macOS/Linux
git clone https://github.com/cft0808/edict.git
cd edict
chmod +x install.sh && ./install.sh
The installer automatically:
- Creates workspaces for all departments (~/.openclaw/workspace-*, including Crown Prince/HR/Briefing)
- Writes SOUL.md personality files for each department
- Registers agents + permission matrix in openclaw.json
- Initializes data directory + first sync
- Restarts Gateway
# Option 1: One-click launch (recommended)
chmod +x start.sh && ./start.sh
# Option 2: Manual launch
bash scripts/run_loop.sh & # Data sync loop
python3 dashboard/server.py # Dashboard server
# Open browser
open http://127.0.0.1:7891
🖥️ Production deployment (systemd)
# Install systemd service
sudo cp edict.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable edict
sudo systemctl start edict
# Or use management script
bash edict.sh start # Start
bash edict.sh status # Check status
bash edict.sh restart # Restart
bash edict.sh stop # Stop
📖 See Getting Started Guide for detailed walkthrough.
┌───────────────────────────────────┐
│ 👑 Emperor (You) │
│ Feishu · Telegram · Signal │
└─────────────────┬─────────────────┘
│ Issue edict
┌─────────────────▼─────────────────┐
│ 👑 Crown Prince (太子) │
│ Triage: chat → reply / cmd → task │
└─────────────────┬─────────────────┘
│ Forward edict
┌─────────────────▼─────────────────┐
│ 📜 Planning Dept (中书省) │
│ Receive → Plan → Decompose │
└─────────────────┬─────────────────┘
│ Submit for review
┌─────────────────▼─────────────────┐
│ 🔍 Review Dept (门下省) │
│ Audit → Approve / Reject 🚫 │
└─────────────────┬─────────────────┘
│ Approved ✅
┌─────────────────▼─────────────────┐
│ 📮 Dispatch Dept (尚书省) │
│ Assign → Coordinate → Collect │
└───┬──────┬──────┬──────┬──────┬───┘
│ │ │ │ │
┌─────▼┐ ┌───▼───┐ ┌▼─────┐ ┌───▼─┐ ┌▼─────┐
│💰 Fin.│ │📝 Docs│ │⚔️ Eng.│ │⚖️ Law│ │🔧 Ops│
│ 户部 │ │ 礼部 │ │ 兵部 │ │ 刑部 │ │ 工部 │
└──────┘ └──────┘ └──────┘ └─────┘ └──────┘
┌──────┐
│📋 HR │
│ 吏部 │
└──────┘
| Dept | Agent ID | Role | Expertise |
|---|---|---|---|
| 👑 Crown Prince | taizi |
Triage, summarize | Chat detection, intent extraction |
| 📜 Planning | zhongshu |
Receive, plan, decompose | Requirements, architecture |
| 🔍 Review | menxia |
Audit, gatekeep, veto | Quality, risk, standards |
| 📮 Dispatch | shangshu |
Assign, coordinate, collect | Scheduling, tracking |
| 💰 Finance | hubu |
Data, resources, accounting | Data processing, reports |
| 📝 Documentation | libu |
Docs, standards, reports | Tech writing, API docs |
| ⚔️ Engineering | bingbu |
Code, algorithms, checks | Development, code review |
| ⚖️ Compliance | xingbu |
Security, compliance, audit | Security scanning |
| 🔧 Infrastructure | gongbu |
CI/CD, deploy, tooling | Docker, pipelines |
| 📋 HR | libu_hr |
Agent management, training | Registration, permissions |
| 🌅 Briefing | zaochao |
Daily briefing, news | Scheduled reports, summaries |
| From ↓ \ To → | Prince | Planning | Review | Dispatch | Ministries |
|---|---|---|---|---|---|
| Crown Prince | — | ✅ | |||
| Planning | ✅ | — | ✅ | ✅ | |
| Review | ✅ | — | ✅ | ||
| Dispatch | ✅ | ✅ | — | ✅ all | |
| Ministries | ✅ |
Emperor → Prince Triage → Planning → Review → Assigned → Executing → ✅ Done
↑ │ │
└── Veto ──┘ Blocked ──
``` edict/ ├── agents/ # 12 agent personality templates (SOUL.md) │ ├── taizi/ # Crown Prince (triage) │ ├── zhongshu/ # Planning Dept │ ├── menxia/ # Review Dept │ ├── shangshu/ # Dispatch Dept │ ├── hubu/ libu/ bingbu/ # Finance / Docs / Engineering │ ├── xingbu/ gongbu/ # Compliance / Infrastructure │ ├── libu_hr/ # HR Dept │ └── zaochao/ # Morning Briefing ├── dashboard/ │ ├── dashboard.html # Dashboard (single file, zero deps, works out of the box) │ ├── dist/ # Pre-built React frontend (included in Docker image) │ ├── auth.py # Dashboard login authentication │ ├── court_discuss.py # Court discussion (multi-agent LLM debate engine) │ └── server.py # API server (stdlib, zero deps) ├── edict/backend/ # Async backend services (SQLAlchemy + Redis) │ ├── app/models/ │ │ ├── task.py
$ claude mcp add edict \
-- python -m otcore.mcp_server <graph>