Skip to content

solonlab/Emperor

 
 

Repository files navigation

Emperor — 三省六部多智能体协作系统

一个 OpenCode 插件,将中国古代三省六部制的治理智慧映射为多智能体协作架构,用于编排复杂的编程任务。

架构概览

graph TD
    User["用户下旨"] --> Taizi["太子<br/>分诊定性"]
    Taizi --> Zhongshu["中书省<br/>拟定方案"]
    Zhongshu --> Menxia["门下省<br/>审核封驳"]
    Menxia -->|驳回| Zhongshu
    Menxia -->|通过| Dispatch["六部并行执行"]
    Dispatch --> Libu["吏部<br/>架构重构"]
    Dispatch --> Hubu["户部<br/>数据存储"]
    Dispatch --> Libu2["礼部<br/>API接口"]
    Dispatch --> Bingbu["兵部<br/>安全测试"]
    Dispatch --> Gongbu["工部<br/>基础设施"]
    Libu --> Memorial["奏折<br/>汇总回报"]
    Hubu --> Memorial
    Libu2 --> Memorial
    Bingbu --> Memorial
    Gongbu --> Memorial
Loading

完整流程:用户下旨 → 太子分诊 → 中书省规划 → 门下省审核 → 六部并行执行 → 奏折回报

八部Agent

Agent 角色 职责
太子 (taizi) 分诊官 接收用户请求,分析任务性质,转发给中书省
中书省 (zhongshu) 规划师 将任务拆解为子任务,分配给对应六部,输出结构化 JSON 方案
门下省 (menxia) 审查官 审核中书省方案的合理性、风险和依赖关系,可封驳退回
吏部 (libu) 架构师 负责代码架构、重构、类型系统、模块设计
户部 (hubu) 数据官 负责数据库、状态管理、缓存、数据迁移
礼部 (libu2) 接口官 负责 API 设计、协议对接、文档编写
兵部 (bingbu) 安全官 负责测试、安全审计、性能优化、错误处理
工部 (gongbu) 工程师 负责构建工具、CI/CD、部署、环境配置

自定义工具

下旨 (emperor_create_edict)

创建圣旨并启动完整流转流程。

输入参数:
  - title: 圣旨标题
  - content: 具体需求描述
  - priority: 优先级 (low / medium / high / critical)

查看奏折 (emperor_view_memorial)

查询历史圣旨和执行结果。

输入参数:
  - edict_id: (可选) 查看特定圣旨的奏折
  - status: (可选) 按状态筛选 (planning / reviewing / executing / completed / failed / halted)

叫停 (emperor_halt_edict)

紧急叫停正在执行的圣旨。

输入参数:
  - edict_id: 要叫停的圣旨 ID
  - reason: 叫停原因

安装配置

1. 插件注册

.opencode/opencode.json 中添加插件路径:

{
  "$schema": "https://opencode.ai/config.json",
  "plugin": [
    "./plugins/emperor/index.ts"
  ]
}

2. Emperor 配置

插件使用独立的 .opencode/emperor.json 配置文件(不与 opencode.json 混合):

{
  "agents": {
    "taizi": { "model": "anthropic/claude-sonnet-4-20250514" },
    "zhongshu": { "model": "anthropic/claude-sonnet-4-20250514" },
    "menxia": { "model": "anthropic/claude-sonnet-4-20250514" },
    "libu": { "model": "anthropic/claude-sonnet-4-20250514" },
    "hubu": { "model": "anthropic/claude-sonnet-4-20250514" },
    "libu2": { "model": "anthropic/claude-sonnet-4-20250514" },
    "bingbu": { "model": "anthropic/claude-sonnet-4-20250514" },
    "gongbu": { "model": "anthropic/claude-sonnet-4-20250514" }
  },
  "pipeline": {
    "maxPlanningRetries": 3,
    "reviewMode": "mixed",
    "sensitivePatterns": ["删除", "drop", "rm -rf", "production", "密钥", "credentials"]
  },
  "store": {
    "dataDir": ".opencode/emperor-data"
  }
}

配置项说明

  • agents: 每个 Agent 的模型配置,可按需指定不同模型
  • pipeline.maxPlanningRetries: 中书省规划被门下省驳回后的最大重试次数
  • pipeline.reviewMode: 审核模式
    • auto — 自动审核,敏感操作仍需人工确认
    • manual — 所有操作都需人工确认
    • mixed — 默认自动,检测到敏感操作时转为人工(推荐)
  • pipeline.sensitivePatterns: 触发人工审核的关键词列表
  • store.dataDir: 圣旨数据持久化目录

使用方式

方式一:通过太子 Agent

在 OpenCode 中切换到 taizi Agent,直接描述你的需求:

@taizi 我需要给项目添加用户认证系统,包括 JWT token、刷新机制、以及角色权限控制

太子会自动分诊并触发完整的三省六部流转。

方式二:通过下旨工具

任何 Agent 都可以调用下旨工具:

使用 emperor_create_edict 工具:
  title: "用户认证系统"
  content: "实现 JWT 认证、token 刷新、RBAC 权限控制"
  priority: "high"

查看执行结果

使用 emperor_view_memorial 工具:
  edict_id: "edict_1709712000000_a1b2"

流转机制

敏感操作检测

门下省会自动扫描子任务描述,匹配敏感关键词(如"删除"、"production"、"密钥"等)。匹配到时:

  1. 标记为敏感操作
  2. 弹出确认对话框,需用户手动批准
  3. 用户可选择批准或驳回

依赖调度

六部子任务支持依赖声明。调度引擎使用拓扑排序(Kahn 算法)将子任务分组为执行波次:

  • Wave 1: 无依赖的子任务并行执行
  • Wave 2: 依赖 Wave 1 结果的子任务并行执行
  • 依此类推...

奏折格式

执行完成后,系统生成结构化奏折(Memorial),包含:

  • 各部执行结果和状态
  • 成功/失败统计
  • 风险提示和门下省审核意见

项目结构

.opencode/
├── emperor.json                         # 插件配置
├── opencode.json                        # OpenCode 配置(注册插件)
└── plugins/emperor/
    ├── index.ts                         # 插件入口
    ├── types.ts                         # 类型定义
    ├── config.ts                        # 配置加载器
    ├── store.ts                         # 圣旨数据持久化
    ├── agents/
    │   └── prompts.ts                   # 八部 Agent 系统提示词
    ├── skills/                          # 📚 插件内置 Skills
    │   ├── taizi-reloaded/              # 太子增强版(判断-执行分离)
    │   ├── quick-verify/                # 快速验证技能
    │   ├── hubu-tester/                 # 户部测试官
    │   └── menxia-reviewer/             # 门下省审核官
    ├── engine/
    │   ├── pipeline.ts                  # 流转引擎主流程
    │   ├── reviewer.ts                  # 门下省审核 + 敏感操作检测
    │   └── dispatcher.ts               # 六部调度(拓扑排序 + 并行执行)
    └── tools/
        ├── edict.ts                     # 下旨工具
        ├── memorial.ts                  # 查看奏折工具
        └── halt.ts                      # 叫停工具

内置 Skills

插件自带以下增强版 Skills,安装插件后自动启用:

Skill 说明
taizi-reloaded 太子增强版,强调判断-执行分离和验证优先
quick-verify 快速验证技能,强制交付前验证
hubu-tester 户部测试官,完善的验证报告模板
menxia-reviewer 门下省审核官,增加代码安全审查

使用方式

@skill taizi-reloaded
@skill quick-verify
@skill hubu-tester
@skill menxia-reviewer
.opencode/
├── emperor.json                         # 插件配置
├── opencode.json                        # OpenCode 配置(注册插件)
└── plugins/emperor/
    ├── index.ts                         # 插件入口
    ├── types.ts                         # 类型定义
    ├── config.ts                        # 配置加载器
    ├── store.ts                         # 圣旨数据持久化
    ├── agents/
    │   └── prompts.ts                   # 八部 Agent 系统提示词
    ├── engine/
    │   ├── pipeline.ts                  # 流转引擎主流程
    │   ├── reviewer.ts                  # 门下省审核 + 敏感操作检测
    │   └── dispatcher.ts               # 六部调度(拓扑排序 + 并行执行)
    └── tools/
        ├── edict.ts                     # 下旨工具
        ├── memorial.ts                  # 查看奏折工具
        └── halt.ts                      # 叫停工具

技术栈

  • 运行时: Bun
  • 语言: TypeScript (strict mode)
  • 插件 SDK: @opencode-ai/plugin
  • 数据持久化: JSON 文件存储

About

🤖 OpenCode 插件 - 三省六部多智能体协作系统:将中国古代治理智慧融入 AI 编程助手,自动完成复杂编程任务的规划、审核与执行

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 100.0%