The project's README from github.com/cft0808/edict. As one markdown file: README.md.
我用 1300 年前的帝国制度,重新设计了 AI 多 Agent 协作架构。
结果发现,古人比现代 AI 框架更懂分权制衡。
12 个 AI Agent(11 个业务角色 + 1 个兼容角色)组成三省六部:太子分拣、中书省规划、门下省审核封驳、尚书省派发、六部+吏部并行执行。
比 CrewAI 多一层制度性审核,比 AutoGen 多一个实时看板。
🎬 看 Demo · 🚀 30 秒体验 · 🏛️ 架构 · 📋 看板功能 · 📚 架构文档 · English · 日本語 · 参与贡献
您的浏览器不支持视频播放,请查看下方 GIF 或 下载视频。
🎥 三省六部 AI 多 Agent 协作全流程演示
飞书下旨 → 太子分拣 → 中书省规划 → 门下省审议 → 六部并行执行 → 奏折回报(30 秒)
🐳 没有 OpenClaw? 跑一行
docker run -p 7891:7891 cft0808/edict即可体验完整看板 Demo(预置模拟数据)。
大多数 Multi-Agent 框架的套路是:
"来,你们几个 AI 自己聊,聊完把结果给我。"
然后你拿到一坨不知道经过了什么处理的结果,无法复现,无法审计,无法干预。
三省六部的思路完全不同 —— 我们用了一个在中国存在 1400 年的制度架构:
你 (皇上) → 太子 (分拣) → 中书省 (规划) → 门下省 (审议) → 尚书省 (派发) → 六部 (执行) → 回奏
这不是花哨的 metaphor,这是真正的分权制衡:
| CrewAI | MetaGPT | AutoGen | 三省六部 | |
|---|---|---|---|---|
| 审核机制 | ❌ 无 | ⚠️ 可选 | ⚠️ Human-in-loop | ✅ 门下省专职审核 · 可封驳 |
| 实时看板 | ❌ | ❌ | ❌ | ✅ 军机处 Kanban + 时间线 |
| 任务干预 | ❌ | ❌ | ❌ | ✅ 叫停 / 取消 / 恢复 |
| 流转审计 | ⚠️ | ⚠️ | ❌ | ✅ 完整奏折存档 |
| Agent 健康监控 | ❌ | ❌ | ❌ | ✅ 心跳 + 活跃度检测 |
| 热切换模型 | ❌ | ❌ | ❌ | ✅ 看板内一键切换 LLM |
| 技能管理 | ❌ | ❌ | ❌ | ✅ 查看 / 添加 Skills |
| 新闻聚合推送 | ❌ | ❌ | ❌ | ✅ 天下要闻 + 飞书推送 |
| 部署难度 | 中 | 高 | 中 | 低 · 一键安装 / Docker |
核心差异:制度性审核 + 完全可观测 + 实时可干预
CrewAI 和 AutoGen 的 Agent 协作模式是 "做完就交"——没有人检查产出质量。就像一个公司没有 QA 部门,工程师写完代码直接上线。
三省六部的 门下省 专门干这件事:
这不是可选的插件——它是架构的一部分。每一个旨意都必须经过门下省,没有例外。
这就是为什么三省六部能处理复杂任务而结果可靠:因为在送到执行层之前,有一个强制的质量关卡。1300 年前唐太宗就想明白了——不受制约的权力必然会出错。
|
📋 旨意看板 · Kanban
|
🔭 省部调度 · Monitor
|
|
📜 奏折阁 · Memorials
|
📜 旨库 · Template Library
|
|
👥 官员总览 · Officials
|
📰 天下要闻 · News
|
|
⚙️ 模型配置 · Models
|
🛠️ 技能配置 · Skills
|
|
💬 小任务 · Sessions
|
🎬 上朝仪式 · Ceremony
|
|
🏛️ 朝堂议政 · Court Discussion
|











docker run -p 7891:7891 cft0808/sansheng-demo
打开 http://localhost:7891 即可体验军机处看板。
exec format error?(点击展开)如果你在 x86/amd64 机器(如 Ubuntu、WSL2)上看到:
exec /usr/local/bin/python3: exec format error
这是因为镜像架构不匹配。请使用 --platform 参数:
docker run --platform linux/amd64 -p 7891:7891 cft0808/sansheng-demo
或使用 docker-compose(已内置 platform: linux/amd64):
docker compose up
git clone https://github.com/cft0808/edict.git
cd edict
chmod +x install.sh && ./install.sh
安装脚本自动完成:
openclaw.jsonsessions.visibility all,解决消息不可达问题)⚠️ 首次安装:需先配置 API Key:
openclaw agents add taizi,然后重新运行./install.sh同步到所有 Agent。
# 方式 1:一键启动(推荐)
chmod +x start.sh && ./start.sh
# 方式 2:分别启动
bash scripts/run_loop.sh & # 数据刷新循环
python3 dashboard/server.py # 看板服务器
# 打开浏览器
open http://127.0.0.1:7891
# 安装 systemd 服务
sudo cp edict.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable edict
sudo systemctl start edict
# 或使用管理脚本
bash edict.sh start # 启动
bash edict.sh status # 查看状态
bash edict.sh restart # 重启
bash edict.sh stop # 停止
💡 看板即开即用:
server.py内嵌dashboard/dashboard.html,Docker 镜像包含预构建的 React 前端
💡 详细教程请看 Getting Started 指南
┌───────────────────────────────────┐
│ 👑 皇上(你) │
│ Feishu · Telegram · Signal │
└─────────────────┬─────────────────┘
│ 下旨
┌─────────────────▼─────────────────┐
│ � 太子 (taizi) │
│ 分拣:闲聊直接回 / 旨意建任务 │
└─────────────────┬─────────────────┘
│ 传旨
┌─────────────────▼─────────────────┐
│ 📜 中书省 (zhongshu) │
│ 接旨 → 规划 → 拆解子任务 │
└─────────────────┬─────────────────┘
│ 提交审核
┌─────────────────▼─────────────────┐
│ 🔍 门下省 (menxia) │
│ 审议方案 → 准奏 / 封驳 🚫 │
└─────────────────┬─────────────────┘
│ 准奏 ✅
┌─────────────────▼─────────────────┐
│ 📮 尚书省 (shangshu) │
│ 派发任务 → 协调六部 → 汇总回奏 │
└───┬──────┬──────┬──────┬──────┬───┘
│ │ │ │ │
┌─────▼┐ ┌───▼───┐ ┌▼─────┐ ┌───▼─┐ ┌▼─────┐
│💰 户部│ │📝 礼部│ │⚔️ 兵部│ │⚖️ 刑部│ │🔧 工部│
│ 数据 │ │ 文档 │ │ 工程 │ │ 合规 │ │ 基建 │
└──────┘ └──────┘ └──────┘ └─────┘ └──────┘
┌──────┐
│📋 吏部│
│ 人事 │
└──────┘
| 部门 | Agent ID | 职责 | 擅长领域 |
|---|---|---|---|
| � 太子 | taizi |
消息分拣、需求整理 | 闲聊识别、旨意提炼、标题概括 |
| 📜 中书省 | zhongshu |
接旨、规划、拆解 | 需求理解、任务分解、方案设计 |
| 🔍 门下省 | menxia |
审议、把关、封驳 | 质量评审、风险识别、标准把控 |
| 📮 尚书省 | shangshu |
派发、协调、汇总 | 任务调度、进度跟踪、结果整合 |
| 💰 户部 | hubu |
数据、资源、核算 | 数据处理、报表生成、成本分析 |
| 📝 礼部 | libu |
文档、规范、报告 | 技术文档、API 文档、规范制定 |
| ⚔️ 兵部 | bingbu |
代码、算法、巡检 | 功能开发、Bug 修复、代码审查 |
| ⚖️ 刑部 | xingbu |
安全、合规、审计 | 安全扫描、合规检查、红线管控 |
| 🔧 工部 | gongbu |
CI/CD、部署、工具 | Docker 配置、流水线、自动化 |
| 📋 吏部 | libu_hr |
人事、Agent 管理 | Agent 注册、权限维护、培训 |
| 🌅 早朝官 | zaochao |
每日早朝、新闻聚合 | 定时播报、数据汇总 |
不是想发就能发 —— 真正的分权制衡
| From ↓ \ To → | 太子 | 中书 | 门下 | 尚书 | 户 | 礼 | 兵 | 刑 | 工 | 吏 |
|---|---|---|---|---|---|---|---|---|---|---|
| 太子 | — | ✅ | ||||||||
| 中书省 | ✅ | — | ✅ | ✅ | ||||||
| 门下省 | ✅ | — | ✅ | |||||||
| 尚书省 | ✅ | ✅ | — | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 六部+吏部 | ✅ |
皇上 → 太子分拣 → 中书规划 → 门下审议 → 已派发 → 执行中 → 待审查 → ✅ 已完成
↑ │ │
└──── 封驳 ─┘ 阻塞 Blocked
⚡ 状态转换受保护:
kanban_update.py内置_VALID_TRANSITIONS状态机校验, 非法跳转(如 Doing→Taizi)会被拒绝并记录日志,确保流程不可绕过。🔄 异步事件驱动:服务间通过 Redis Streams EventBus 解耦通信,Outbox Relay 保障事件可靠投递。 所有状态变更自动写入审计日志(
audit.py),支持完整追溯。
edict/
├── agents/ # 12 个 Agent 的人格模板
│ ├── taizi/SOUL.md # 太子 · 消息分拣(含旨意标题规范)
│ ├── zhongshu/SOUL.md # 中书省 · 规划中枢
│ ├── menxia/SOUL.md # 门下省 · 审议把关
│ ├── shangshu/SOUL.md # 尚书省 · 调度大脑
│ ├── hubu/SOUL.md # 户部 · 数据资源
│ ├── libu/SOUL.md # 礼部 · 文档规范
│ ├── bingbu/SOUL.md # 兵部 · 工程实现
│ ├── xingbu/SOUL.md # 刑部 · 合规审计
│ ├── gongbu/SOUL.md # 工部 · 基础设施
│ ├── libu_hr/ # 吏部 · 人事管理
│ └── zaochao/SOUL.md # 早朝官 · 情报枢纽
├── dashboard/
│ ├── dashboard.html # 军机处看板(单文件 · 零依赖 · ~2500 行)
│ ├── dist/ # React 前端构建产物(Docker 镜像内包含,本地可选)
│ ├── auth.py # Dashboard 登录鉴权
│ ├── court_discuss.py # 朝堂议政(多官员 LLM 讨论引擎)
│ └── server.py # API 服务器(Python 标准库 · 零依赖 · ~2300 行)
├── edict/backend/ # 异步后端服务(SQLAlchemy + Redis)
│ ├── app/models/
│ │ ├── task.py # 任务模型 + 状态机
│ │ ├── audit.py # 审计日志模型
│ │ └── outbox.py # Outbox 消息模型
│ ├── app/services/
│ │ ├── event_bus.py # Redis Streams EventBus
│ │ └── task_service.py # 任务服务层
│ └── app/workers/
│ ├── dispatch_worker.py # 并行调度 + 重试 + 资源锁
│ ├── orchestrator_worker.py # DAG 编排器
│ └── outbox_relay.py # 事务性 Outbox Relay
├── agents/
│ ├── <agent_id>/SOUL.md # 各省部 Agent 人格模板
│ ├── GLOBAL.md # 全局 Agent 配置
│ └── groups/ # Agent 分组(sansheng / liubu)
├── scripts/
│ ├── run_loop.sh # 数据刷新循环(每 15 秒)
│ ├── kanban_update.py # 看板 CLI(含旨意数据清洗 + 标题校验 + 状态机)
│ ├── skill_manager.py # Skill 管理工具(远程/本地 Skills 添加、更新、移除)
│ ├── agentrec_advisor.py # Agent 模型推荐(功过簿 + 成本优化)
│ ├── linucb_router.py # LinUCB 智能路由
│ ├── refresh_watcher.py # 数据变更监听
│ ├── sync_from_openclaw_runtime.py
│ ├── sync_agent_config.py
│ ├── sync_officials_stats.py
│ ├── fetch_morning_news.py
│ ├── refresh_live_data.py
│ ├── apply_model_changes.py
│