☰
三省六部制AI框架揭秘:用Edict开源框架搭建多智能体系统
2026/10/2 11:53:05 网站建设 项目流程

1. 从“一群AI各干各的”到“有制度的多智能体系统”

多智能体系统(Multi-Agent System,MAS)这两年很热,但真正动手搭过的人多半踩过同一个坑:几个 Agent 一放出来,就开始互相“客气”——A 说让 B 先做,B 说等 C 的输入,C 又回头问 A 要需求,转一圈任务没推进,Token 倒是烧了不少。更麻烦的是出了问题根本查不到是谁的锅,日志散在四五个进程里,只能靠猜。

Edict 这个开源框架想解决的就是这件事。它把中国古代的“三省六部制”搬进了多智能体系统:中书省负责接旨和拆解任务,门下省负责审议和封驳,尚书省负责派发和汇总,六部(户部、礼部、兵部、刑部、工部、吏部)各管一摊具体执行。每个 Agent 有明确职责,每一步流转有记录,任务卡住能定位到具体环节。说白了,它不是让 AI 更聪明,而是让 AI 协作变得可管理、可审计、可干预。

这篇文章面向想入门多智能体系统的开发者,我会用 Edict 搭一套能跑起来的多智能体任务流转,从环境准备、配置片段、本地启动到验证请求完整走一遍,并且用 TaoToken 统一 Key 和 API 通道接入模型,避免在多个模型供应商之间来回切换配置。你跟着做,大概半小时能跑通第一次“下旨到回奏”的完整链路。

2. Edict 框架前置准备与 TaoToken 统一接入配置

2.1 Edict 是什么,适合谁

Edict 是一个把“制度化协作”作为核心设计的多智能体开源框架。和 CrewAI、AutoGen 那种自由协商式框架不同,Edict 的每个 Agent 角色是固定的,任务必须经过“分拣→接旨→审议→准奏→执行→汇总→回奏”这条链路。它适合三类人:想理解多智能体协作机制但不想一上来就啃论文的开发者;需要可追溯、可干预的 AI 工作流的工程团队;以及拿它做教学演示的人——用“唐制”讲 MAS 原理,比画一堆箭头图直观得多。

它的角色分工大致是这样:太子做消息分拣和需求提炼,中书省接旨后规划拆解,门下省审议方案并有权封驳打回,尚书省派发协调并汇总结果,六部并行执行具体任务,军机处看板提供实时监控和人工干预入口。所有角色都是独立运行的 Agent,支持远程调用和模型替换。

2.2 为什么用 TaoToken 统一 Key 和 API 通道

Edict 的 12 个角色可以各自配不同的模型,比如中书省用推理强的,兵部用代码能力好的,刑部用安全审计擅长的。如果每个角色都去单独申请一家供应商的 Key,配置会非常碎,而且切换模型时要改一堆地方。

TaoToken 提供的是统一的 API 通道:一个 Key、一个 Base URL,就能调用多家模型。在 Edict 里,你只需要在模型配置处填 TaoToken 的地址和 Key,然后通过 Model ID 指定具体用哪个模型。这样换模型只是改一个字符串,不用动其他配置。对于多智能体这种“一个任务里好几个模型协作”的场景,统一通道省掉的是大量重复的鉴权和地址管理。

TaoToken 的 API 地址是https://taotoken.net/api,官网是https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=。Key 在控制台的 API Keys 页面创建,模型对话入口可以用来先验证通道是否通。

2.3 环境准备清单

在开始之前,确认本地具备这些条件:

  • Python 3.9 或更高版本(python3 --version检查)
  • Node.js 18+(前端看板构建需要,node -v检查)
  • Git(拉取仓库)
  • Docker(可选,想快速体验用 Docker 方式)
  • 一个 TaoToken API Key(后面配置用)

如果你在 Windows 上,建议用 WSL2,因为 Edict 的启动脚本是 bash 写的,原生 Windows 跑起来会有路径和权限的坑。我试过在 WSL2 的 Ubuntu 里操作,和 macOS/Linux 体验一致。

3. 可复制的 Edict 配置片段与本地启动步骤

3.1 拉取仓库与安装

先克隆 Edict 仓库并进入目录:

git clone https://github.com/cft0808/edict.git cd edict

然后执行安装脚本。这个脚本会创建 12 个 Agent 的工作区、写入每个角色的 SOUL.md 人格文件、并把它们注册到通信配置里:

chmod +x install.sh && ./install.sh

安装完成后,你会看到agents/目录下出现 12 个角色文件夹,每个里面有一个SOUL.md,定义了该角色的行为准则和输出格式。这一步不需要联网调模型,只是本地文件初始化。

3.2 配置 TaoToken 统一通道

Edict 的模型配置集中在一个 JSON 文件里,通常在config/models.json(不同版本路径可能略有差异,以仓库实际结构为准)。你需要把模型供应商的 Base URL 和 Key 指向 TaoToken。下面是一个可复制的配置片段:

{ "provider": "taotoken", "base_url": "https://taotoken.net/api", "api_key": "sk-你的TaoToken密钥", "models": { "zhongshu": "claude-3-5-sonnet", "menxia": "claude-3-5-sonnet", "shangshu": "gpt-4o", "hubu": "gpt-4o-mini", "libu": "gpt-4o-mini", "bingbu": "claude-3-5-sonnet", "xingbu": "gpt-4o", "gongbu": "gpt-4o-mini", "libu_hr": "gpt-4o-mini", "zaochaoguan": "gpt-4o-mini" } }

这里的关键点:base_url填 TaoToken 的 API 地址,api_key填你在控制台创建的 Key,models里每个角色对应一个 Model ID。你可以根据任务类型分配不同模型——代码类任务给代码能力强的,文档类任务给轻量模型省成本。因为走的是统一通道,这些 Model ID 都可以在同一个 Key 下调用,不需要额外配置。

如果你用的是环境变量方式,也可以这样写:

export TAOTOKEN_API_KEY="sk-你的TaoToken密钥" export TAOTOKEN_BASE_URL="https://taotoken.net/api"

然后在 Edict 的配置里引用这两个变量。这样 Key 不会硬编码在文件里,适合团队协作时避免泄露。

3.3 启动服务

Edict 需要两个终端分别启动数据刷新循环和看板服务器。

终端 1,启动数据刷新循环:

bash scripts/run_loop.sh

终端 2,启动看板服务器:

python3 dashboard/server.py

启动成功后,访问http://127.0.0.1:7891就能看到军机处看板。看板上会显示各个 Agent 的状态、当前任务节点、以及历史流转记录。

如果你只想快速体验,也可以用 Docker 方式:

docker run -p 7891:7891 cft0808/edict

Docker 镜像里内置了演示数据,适合先看看界面和流程长什么样,再决定要不要本地完整安装。

3.4 自定义角色人格

每个角色的行为由agents/<角色名>/SOUL.md定义。比如你想让兵部更注重代码质量和测试覆盖,可以这样改:

name: "兵部·精锐" role: "代码攻坚专家" personality: "严谨、高效、注重性能与可读性" output_format: "Python + docstring + unit test" skills: - git_commit - code_review - performance_optimize

改完保存,重启数据刷新循环即可生效。这个文件是纯文本,改起来没有门槛,你可以给每个角色调出不同的“性格”和输出规范。

4. 验证请求:跑通一次完整的多智能体任务流转

4.1 下旨:发起一个任务

打开看板界面,在输入框里下达一条指令。比如:

帮我设计一个用户注册系统,要求: 1. RESTful API(FastAPI) 2. PostgreSQL 数据库 3. JWT 鉴权 4. 完整测试用例 5. 部署文档

这条消息会先到太子那里做分拣。太子判断这是正式旨意还是闲聊——如果是“你好”“在吗”这类,它会直接回复,不进入任务链路。确认是正式任务后,转给中书省。

4.2 观察五阶段流转

任务进入链路后,你可以在看板上看到它依次经过这些阶段:

第一阶段,中书省接旨。它会把你的需求提炼成目标,制定执行计划,拆解成子任务。比如上面这个注册系统,会被拆成“API 设计”“数据库建模”“鉴权实现”“测试编写”“部署文档”几个子任务。

第二阶段,门下省审议。这是 Edict 和自由协作框架最大的区别——门下省有权封驳。如果它认为方案有风险、逻辑不完整、或者资源估算不合理,会打回给中书省重新规划。你在看板上能看到“封驳”状态和具体理由。

第三阶段,尚书省准奏派发。审议通过后,尚书省把子任务分派给六部并行执行。户部算资源、兵部写代码、刑部扫漏洞、工部准备部署、礼部写文档。

第四阶段,六部执行。每个部独立调用模型完成任务,输出结果汇总到尚书省。

第五阶段,回奏。尚书省整合所有输出,生成最终报告,经中书省返回给你。看板上会显示完整的五阶段时间线和每一步的耗时、输出内容。

4.3 验证 API 通道是否正常

在任务流转过程中,如果某个 Agent 调用模型失败,看板会显示错误状态。你可以先用一个简单的请求验证 TaoToken 通道是否通:

curl https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-你的TaoToken密钥" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-4o-mini", "messages": [{"role": "user", "content": "回复OK"}] }'

如果返回正常的 JSON 响应,说明 Key 和通道没问题。如果报 401,检查 Key 是否复制完整;如果报连接错误,检查 Base URL 是否写成了https://taotoken.net/api(注意不要多加路径)。

4.4 人工干预与回溯

军机处看板支持手动叫停、取消、恢复任务。如果某个部的输出明显跑偏,你可以在看板上暂停整个链路,修改该角色的 SOUL.md 或直接编辑中间结果,然后恢复执行。所有操作都有记录,方便事后回溯是哪一步出了问题。

这个能力在多智能体系统里很关键。自由协作框架一旦跑起来,你很难在中途插手;而 Edict 的每个节点都是可控的,相当于给 AI 协作装了一个“控制台”。

5. 本篇常见错误排查:401、local proxy failed、reading choices、OAuth

5.1 401 Unauthorized

这是最常见的错误,通常有三个原因。一是 Key 复制时带了空格或换行,建议用echo $TAOTOKEN_API_KEY | wc -c检查长度是否符合预期。二是 Key 被禁用或额度耗尽,去控制台确认状态。三是 Base URL 写错,比如写成了https://taotoken.net而漏了/api,或者多加了/v1导致路径重复。正确的 Base URL 是https://taotoken.net/api,具体请求路径由框架拼接。

5.2 local proxy failed

这个报错一般出现在本地网络环境有额外代理设置时。Edict 的 Agent 调用模型走的是 HTTP 请求,如果系统里设置了HTTP_PROXY或HTTPS_PROXY环境变量,请求可能会被转发到不可达的地址。检查方式:

env | grep -i proxy

如果有输出,临时取消:

unset HTTP_PROXY HTTPS_PROXY

然后重启数据刷新循环。另外确认本机 DNS 能正常解析taotoken.net,可以用nslookup taotoken.net验证。

5.3 reading choices 相关报错

这个错误通常出现在模型返回格式不符合预期时。Edict 的某些角色期望模型返回结构化的 JSON 或特定格式,如果模型输出的是自由文本,解析就会失败。排查步骤:先看该角色的 SOUL.md 里output_format定义是否清晰;然后在看板上查看该角色的原始输出,确认模型是否真的按格式返回。如果模型能力不足,换一个更强的 Model ID,比如把gpt-4o-mini换成claude-3-5-sonnet。因为走 TaoToken 统一通道,换模型只需要改配置里的一个字符串。

5.4 OAuth 相关错误

如果你在配置里误用了需要 OAuth 流程的鉴权方式,会看到 OAuth 报错。TaoToken 的 API 通道用的是 Bearer Token 方式,不需要 OAuth 跳转。确认配置里没有残留的oauth_token、refresh_token等字段,api_key直接填sk-开头的 Key 即可。如果之前配过其他供应商的 OAuth 配置,清理掉再重启。

5.5 看板无法访问

端口 7891 被占用时,看板起不来。检查:

lsof -i :7891

如果有进程占用,kill 掉再重启。或者改dashboard/server.py里的端口号,同时更新访问地址。

5.6 任务卡住不动

先看军机处看板,确认卡在哪个阶段。如果是“审议中”一直不推进,可能是门下省的模型响应超时,检查该角色的模型配置和网络。如果是“执行中”某个部没输出,单独看那个部的日志。大部分卡住的情况是模型调用失败但错误没冒泡到看板,这时候去终端 1 的run_loop.sh输出里找报错信息最直接。

6. 用 TaoToken 统一通道把多智能体系统跑顺

Edict 的价值不在于让单个 Agent 更聪明,而在于把多智能体协作变成一件有章法的事。三省六部制这套类比之所以好用,是因为它天然包含了分权、审核、执行、追溯这几个工程上最需要的机制。你搭一次完整链路就会发现,真正花时间的不是写代码,而是调通每个角色的模型调用和输出格式。

用 TaoToken 统一 Key 和 API 通道,省掉的是在每个角色里重复配置供应商地址和鉴权的麻烦。一个 Key 管所有模型,换模型只改 Model ID,这在多智能体场景里是实打实的效率提升。如果你要长期跑编码类或 Agent 类任务,可以看看 Coding Plan 的额度方案;如果只是想先验证模型对话是否正常,模型对话入口可以直接试;接入过程中遇到配置问题,接入文档里有各语言的示例。

先把这条链路跑通一次,再根据你的实际任务调整每个角色的人格和模型分配。跑顺之后,你会发现多智能体系统真正难的不是“让它们协作”,而是“让协作可控”——Edict 和 TaoToken 的组合,恰好把这两件事都覆盖了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询