MCPcopy
hub / github.com/cft0808/edict

github.com/cft0808/edict @main sqlite

repository ↗ · DeepWiki ↗
648 symbols 2,169 edges 89 files 266 documented · 41%
README

⚔️ Edict · Multi-Agent Orchestration

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

OpenClaw Python Agents Dashboard License Zero Dependencies

WeChat


🎬 Demo

Your browser does not support video playback. See the GIF below or download the video.

🎥 Full demo: AI Multi-Agent collaboration with Three Departments & Six Ministries

📸 GIF Preview (loads faster)

Edict Demo

Issue edict → Crown Prince triage → Planning → Review → Ministries execute → Report back (30s)

🐳 No OpenClaw? Run docker run -p 7891:7891 cft0808/edict to try the full dashboard with simulated data.


💡 The Idea

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:

  • Crown Prince (太子) triages messages — casual chat gets auto-replied, real commands become tasks
  • Planning (中书省) breaks your command into actionable sub-tasks
  • Review (门下省) audits the plan — can reject and force re-planning
  • Dispatch (尚书省) assigns approved tasks to specialist ministries
  • 7 Ministries execute in parallel, each with distinct expertise
  • Data sanitization auto-strips file paths, metadata, and junk from task titles
  • Everything flows through a real-time dashboard you can monitor and intervene

🤔 Why Edict?

"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:

  • 📋 Audit plan quality — Is the Planning Department's decomposition complete and sound?
  • 🚫 Veto subpar output — Not a warning. A hard reject that forces re-planning.
  • 🔄 Mandatory rework loop — Nothing passes until it meets standards.

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.


✨ Features

🏛️ Twelve-Department Agent Architecture

  • Crown Prince (太子) message triage — auto-reply casual chat, create tasks for real commands
  • Three Departments (Planning · Review · Dispatch) for governance
  • Seven Ministries (Finance · Docs · Engineering · Compliance · Infrastructure · HR + Briefing) for execution
  • Strict permission matrix — who can message whom is enforced
  • Each agent: own workspace, own skills, own LLM model
  • Data sanitization — auto-strips file paths, metadata, invalid prefixes from titles/remarks

📋 Command Center Dashboard (10 Panels)

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

🖼️ Screenshots

Edicts Kanban

Kanban

📸 More screenshots

Agent Monitor

Monitor

Task Detail

Detail

Model Config

Models

Skills

Skills

Officials

Officials

Sessions

Sessions

Memorials Archive

Memorials

Command Templates

Templates

Daily Briefing

Briefing

Court Ceremony

Ceremony


🚀 Quick Start

Docker

docker run -p 7891:7891 cft0808/edict

Open http://localhost:7891

Full Install

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

Launch

# 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.


🏛️ Architecture

                           ┌───────────────────────────────────┐
                           │         👑 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  │
                                                               │ 吏部  │
                                                               └──────┘

Agent Roles

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

Permission Matrix

From ↓ \ To → Prince Planning Review Dispatch Ministries
Crown Prince
Planning
Review
Dispatch ✅ all
Ministries

State Machine

Emperor → Prince Triage → Planning → Review → Assigned → Executing → ✅ Done
                              ↑          │                       │
                              └── Veto ──┘              Blocked ──

📁 Project Structure

``` 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

Extension points exported contracts — how you extend this code

TemplateParam (Interface)
(no doc)
edict/frontend/src/store.ts
Template (Interface)
(no doc)
edict/frontend/src/store.ts
AppStore (Interface)
(no doc)
edict/frontend/src/store.ts
ActionResult (Interface)
(no doc)
edict/frontend/src/api.ts
FlowEntry (Interface)
(no doc)
edict/frontend/src/api.ts

Core symbols most depended-on inside this repo

send_json
called by 101
dashboard/server.py
now_iso
called by 72
scripts/utils.py
postJ
called by 23
edict/frontend/src/api.ts
atomic_json_update
called by 21
scripts/file_lock.py
_append_audit
called by 20
scripts/kanban_update.py
atomic_json_write
called by 18
scripts/file_lock.py
read_json
called by 17
scripts/utils.py
_infer_agent_id_from_runtime
called by 16
scripts/kanban_update.py

Shape

Function 404
Method 131
Class 44
Interface 41
Route 28

Languages

Python79%
TypeScript21%

Modules by API surface

dashboard/server.py81 symbols
edict/frontend/src/api.ts37 symbols
scripts/kanban_update.py28 symbols
edict/backend/app/api/tasks.py28 symbols
tests/test_task_mutation_race.py27 symbols
edict/backend/app/workers/dispatch_worker.py22 symbols
edict/scripts/kanban_update_edict.py17 symbols
edict/backend/app/services/event_bus.py17 symbols
dashboard/court_discuss.py16 symbols
tests/test_sync_symlinks.py15 symbols
edict/backend/app/workers/orchestrator_worker.py15 symbols
edict/frontend/src/store.ts13 symbols

Dependencies from manifests, versioned

@types/react18.3.12 · 1×
@types/react-dom18.3.1 · 1×
@vitejs/plugin-react4.3.4 · 1×
autoprefixer10.4.20 · 1×
clsx2.1.1 · 1×
lucide-react0.460.0 · 1×
postcss8.4.47 · 1×
react18.3.1 · 1×
react-dom18.3.1 · 1×
tailwindcss3.4.15 · 1×
typescript5.6.3 · 1×
vite6.0.1 · 1×

Datastores touched

edictDatabase · 1 repos

For agents

$ claude mcp add edict \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact