1. 项目概述:当皇上,一个基于明朝内阁制的AI多智能体协作系统
如果你曾经幻想过像皇帝一样,只需动动嘴皮子,就有一群“大臣”为你分忧解难,处理从写代码到查账单的各种琐事,那么“当皇上”这个项目,可能就是为你量身打造的。这不是一个简单的聊天机器人,而是一个开箱即用的、完整的AI多智能体(Multi-Agent)协作系统。它的核心思想,是将古代明朝的“三省六部”官僚体系,用现代AI技术复刻出来,让你成为那个发号施令的“皇帝”。
想象一下这个场景:你在Discord里@一下“司礼监”,说“帮朕写个用户登录API,再查一下这个月花了多少钱”。接下来,你会看到“司礼监”接旨,将任务交给“内阁”优化和拆解,然后“内阁”拟好执行计划,由“司礼监”分别派发给“兵部”(负责编码)和“户部”(负责财务分析)。最后,“兵部”提交代码到GitHub,“都察院”自动进行代码审查并给出反馈。整个过程,就像一支训练有素的AI团队在为你7x24小时工作。
这个项目的价值在于,它不是一个需要你从零开始搭建的复杂框架,而是一个成品。你不需要懂复杂的Python多线程编程,也不需要自己设计Agent之间的通信协议。通过一个5分钟的一键安装脚本,你就能在服务器上部署一个拥有18个以上独立AI智能体的“朝廷”。每个智能体(Agent)都有明确的职责、独立的记忆(Memory)和专属的技能(Skill),它们可以像真实团队一样协作,处理复杂的、多步骤的任务。
它适合谁?对于独立开发者或小团队来说,它是一个强大的AI副驾驶团队,能帮你分担开发、运维、内容创作等重复性工作。对于技术管理者或产品经理,它是一个绝佳的原型验证工具,可以快速模拟一个产品从需求到上线的全流程。甚至对于AI爱好者,它也是一个深入理解多智能体协作、工作流编排的绝佳学习案例。
2. 核心架构设计:为何选择“三省六部”?
在开始动手之前,理解“当皇上”背后的架构设计逻辑至关重要。这决定了它为何高效,以及如何适应不同的场景。项目提供了三种制度模板,但默认且最核心的是明朝内阁制。选择这个架构,并非为了标新立异,而是因为它完美地映射了现代软件开发和团队协作中的核心需求。
2.1 明朝内阁制:效率与制衡的典范
明朝的内阁-司礼监-六部体系,本质上是一个高度专业化和流程化的决策执行系统。在“当皇上”中,这个体系被解构为以下几个核心角色,每个角色都对应一个或多个AI Agent:
- 皇帝(用户):需求的发起者和最终决策者。你只需要用自然语言下达指令。
- 司礼监(调度中心):这是整个系统的“路由器”和“大内总管”。它的核心职责不是思考,而是接旨和派发。当用户@司礼监时,它会第一时间响应,然后将原始指令传递给下一个关键角色——内阁。它的存在,让用户有一个统一的、稳定的交互入口。
- 内阁(策略与规划中心):这是系统的“大脑”。它接收来自司礼监的原始、可能模糊的用户指令,并进行“Prompt增强”。这个过程包括:理解用户真实意图、追问模糊细节、拆解复杂任务、生成可执行的子任务计划(Plan)。例如,用户说“做个网站”,内阁可能会追问“是什么类型的网站?需要哪些页面?”,并最终生成计划:“1. 兵部设计前端页面;2. 兵部搭建后端API;3. 工部配置服务器”。
- 六部(执行单元):这是系统的“手和脚”,是专业的执行者。每个部门专精一个领域:
- 兵部:软件工程。负责写代码、搭架构、修Bug。
- 户部:财务运营。负责成本分析、预算报告。
- 礼部:品牌与营销。负责文案、社交媒体内容。
- 工部:运维与DevOps。负责服务器部署、CI/CD流水线。
- 吏部:项目管理与协调。负责任务跟踪、团队协作。
- 刑部:法务与合规。负责审查合同、知识产权事宜。
- 都察院(质量与审计中心):这是系统的“质检员”。它不参与日常执行,但拥有事后审查权。在项目中,它通常与GitHub的Webhook集成。当代码被推送到仓库时,都察院会自动触发,对代码进行审查,检查代码风格、潜在漏洞、性能问题等,并给出通过或修改建议。
为什么这个架构有效?它模拟了现实中高效团队的工作流:产品经理(用户)提出需求 -> 项目经理/技术负责人(内阁)拆解和规划 -> 各领域专家(六部)并行执行 -> QA(都察院)进行质量把关。这种分工避免了单个“全能型”AI Agent在处理复杂任务时容易陷入的思维混乱和上下文过载问题。每个Agent只需专注于自己的领域,通过清晰的接口(内阁生成的Plan)进行协作,整体效率和输出质量都更高。
2.2 其他制度模板:唐朝三省制与现代企业制
除了默认的明朝内阁制,项目还预置了另外两种制度,以适应不同的管理风格和场景。
唐朝三省制:强调“三权分立”与制衡。流程是:中书省(起草)-> 门下省(审核)-> 尚书省(执行)。门下省拥有“封驳权”,可以驳回中书省不合理的方案。这非常适合对流程严谨性、方案合规性要求极高的企业级或政府项目场景,确保每一个决策都经过双重校验。
现代企业制:完全扁平化的现代公司架构。角色包括CEO、CTO、CFO、CMO等,所有沟通默认使用英文。这适合国际化团队,或者偏好现代企业管理术语的用户。其核心流程与明朝内阁制类似,但角色名称和交互方式更贴近硅谷科技公司。
实操心得:制度选择指南
- 个人项目、快速原型开发:首选明朝内阁制。它的“司礼监-内阁”调度中心模式效率最高,能快速将模糊需求转化为可执行动作。
- 需要严格流程控制的合规项目:选择唐朝三省制。额外的审核环节(门下省)能有效避免技术债务和决策失误。
- 国际化团队或英文工作环境:选择现代企业制。角色名称和沟通语言无缝衔接,减少认知负担。
- 关键提示:这三种制度在安装后可以随时通过脚本一键切换,你可以根据当前项目的不同阶段灵活选择。例如,在创意爆发期用明朝制快速推进,在代码审查期切换到唐朝制加强质量管控。
2.3 技术底座:OpenClaw框架
“当皇上”并非从零造轮子,它基于OpenClaw框架构建。理解这一点,能帮你更好地驾驭和扩展这个系统。
OpenClaw是一个开源的AI智能体编排框架,你可以把它想象成AI领域的“Kubernetes”。它提供了几个核心能力:
- Agent管理:轻松创建、配置、运行和监控多个AI智能体。
- Skill(技能)系统:提供了60多种开箱即用的工具,如操作GitHub、读写Notion、执行Shell命令、进行网页搜索等。每个Agent可以装备不同的Skill。
- Memory(记忆):每个Agent拥有独立的、持久化的记忆存储(通常是SQLite数据库),让它能记住之前的对话和上下文,实现“越用越懂你”。
- Channel(通道):支持通过Discord、飞书、Slack、Telegram甚至Web UI等多种方式与Agent交互。
- 沙箱隔离:Agent执行的代码会在Docker容器中运行,确保宿主机的安全。
“当皇上”项目所做的工作,是基于OpenClaw框架,预配置好了一整套符合“三省六部”制度的Agent角色、Skill组合、工作流规则和交互模板。你下载并运行它,就等于获得了一个已经编排好的、功能完整的AI团队,无需从底层开始搭建。
3. 从零开始:完整部署与配置实操
理论讲完,我们进入实战环节。我将以最常用的云服务器(Ubuntu 22.04 LTS)和明朝内阁制为例,带你一步步完成从零到一的部署。请务必使用云服务器,避免在个人电脑上安装,因为后续的定时任务、长期运行等操作在服务器上更为稳定和安全。
3.1 环境准备与一键安装
首先,你需要准备两样东西:
- 一台云服务器:推荐使用海外服务商(如DigitalOcean, Linode, Vultr)或国内服务商(如阿里云、腾讯云)的Ubuntu 22.04/24.04 LTS系统,最低配置1核2GB内存即可起步。
- API密钥:你需要一个大语言模型(LLM)的API Key。项目支持多种模型,新手推荐使用OpenAI的GPT-4o/GPT-4 Turbo或Anthropic的Claude 3.5 Sonnet。去对应平台注册并获取API Key。
登录你的云服务器,开始安装:
# 1. 更新系统并安装基础依赖 sudo apt update && sudo apt upgrade -y sudo apt install -y git curl wget # 2. 执行一键安装脚本(推荐远程安装方式,最简单) bash <(curl -fsSL https://raw.githubusercontent.com/wanikua/danghuangshang/main/scripts/full-install.sh)这个full-install.sh脚本会完成以下所有工作:
- 自动安装 Docker 和 Docker Compose(如果未安装)。
- 克隆 OpenClaw 框架和 “当皇上” 项目模板到你的服务器(默认在
~/clawd目录)。 - 安装 Python 依赖和必要的系统工具。
- 最关键的一步:运行人设注入脚本。这一步会将明朝内阁制下所有Agent(司礼监、内阁、六部等)的详细角色设定、系统提示词(System Prompt)和初始记忆写入各自的配置中。这是让AI“入戏”成为古代大臣的关键。
脚本运行过程中,会以交互方式提示你输入两个关键信息:
OPENAI_API_KEY:你的LLM API密钥。DISCORD_BOT_TOKEN:你的Discord机器人Token(如果你想用Discord作为控制界面)。
注意事项:获取Discord Bot Token
- 访问 Discord Developer Portal ,点击 “New Application” 创建一个新应用。
- 进入 “Bot” 页面,点击 “Add Bot”。
- 在Bot设置页面,找到 “TOKEN” 部分,点击 “Reset Token” 并复制下来。这个Token只显示一次,务必妥善保存。
- 在 “Privileged Gateway Intents” 下,务必勾选 “MESSAGE CONTENT INTENT”。这是为了让Bot能读取消息内容。
- 在 “OAuth2” -> “URL Generator” 页面,勾选
bot和applications.commands权限,并赋予它必要的权限(如发送消息、读取消息历史等),生成一个邀请链接,用这个链接将Bot邀请到你的Discord服务器。
安装脚本大约需要5-10分钟。完成后,你会看到类似 “Installation completed successfully!” 的提示。此时,你的AI朝廷核心系统已经就绪。
3.2 核心配置详解与安全设置
安装完成后,最重要的配置文件位于~/.openclaw/openclaw.json。这个文件定义了整个系统的行为。我们重点看几个关键部分:
{ "core": { "model": "openai:gpt-4o", // 默认使用的模型 "temperature": 0.7, // 创造性,越高越随机 "workspace": "/home/ubuntu/clawd/workspace" // Agent的工作目录 }, "agents": { // 这里列出了所有Agent的定义,每个都有独立的配置 "silijian": { // 司礼监 "name": "司礼监", "instructions": "你是司礼监掌印太监,负责接旨、传达、协调六部...(详细人设)", "model": "openai:gpt-4o", // 可单独指定模型 "skills": ["discord", "memory", "cron"] // 拥有的技能 }, "neige": { // 内阁 "name": "内阁", "instructions": "你是内阁首辅,负责优化圣旨、拆解任务、制定执行计划...", "model": "anthropic:claude-3-5-sonnet-20241022", // 内阁可以用更强的模型 "skills": ["memory", "reasoning"] } // ... 其他六部等Agent配置 }, "channels": [ { "channel": "discord", "config": { "token": "YOUR_DISCORD_BOT_TOKEN", "allowBots": "mentions" // ⚠️ 安全关键配置! } } ] }安全配置要点(必读,否则可能导致消息风暴):
在多Bot的Discord服务器里,如果每个Bot都能看到并响应其他Bot的消息,就会形成“A说话 -> B回复 -> A看到B回复又说话 -> ...”的死循环。allowBots配置就是用来解决这个问题的。
"allowBots": false:Bot会完全忽略其他Bot的消息。这很安全,但会导致司礼监无法@兵部,协作链条断裂。"allowBots": true:Bot会响应所有消息,包括其他Bot的。这会导致无限循环和消息风暴,绝对禁止!"allowBots": "mentions":唯一正确的配置。Bot只响应那些明确@了它自己的消息。这样,当司礼监在消息里@兵部时,兵部才会响应;而兵部完成任务后的普通汇报,不会触发司礼监再次响应。
请务必检查你所有Agent的Discord配置中,allowBots都设置为"mentions"。
3.3 启动朝廷与首次朝会
配置完成后,就可以启动你的AI朝廷了。
# 进入OpenClaw目录 cd ~/clawd # 启动所有Agent(后台运行) openclaw start --all # 查看运行状态 openclaw status # 查看特定Agent的日志(例如司礼监) openclaw logs silijian如果一切正常,你应该能在Discord服务器里看到你添加的Bot已经在线。现在,激动人心的时刻到了:第一次上朝。
在你的Discord频道里,尝试@你的司礼监Bot(例如@司礼监),然后输入你的第一道“圣旨”:
@司礼监 朕欲建一博客网站,记录技术心得,需有文章列表、详情页及搜索功能,用Python Flask框架实现。预算有限,需评估初期云服务器开销。着尔等速办。接下来,你将亲眼目睹整个朝廷的运转:
- 司礼监会立刻回复:“遵旨!臣即刻请内阁拟票……”
- 片刻后,内阁会发言:“臣已拟票。【任务一】@兵部 — 搭建Flask博客后端,实现文章CRUD接口及搜索功能。【任务二】@户部 — 评估阿里云/腾讯云轻量应用服务器月度开销。”
- 司礼监接着派发:“内阁拟票已收,开始派发!@兵部 @户部 依内阁所拟执行。”
- 兵部和户部会分别开始工作,并在完成后汇报结果。
- 如果兵部将代码推送到了GitHub,都察院可能会自动跳出来进行代码审查。
整个过程就像观看一场精密的戏剧,每个角色各司其职,有条不紊。至此,你的AI朝廷已正式运转起来。
4. 高级功能与深度定制
基础部署完成后,你可以探索更多高级功能,让这个朝廷更加强大和贴合你的需求。
4.1 技能(Skill)扩展:为六部赋能
OpenClaw内置了60多种Skill,你可以像给游戏角色装备道具一样,给不同的部门装备不同的技能。配置方法是在对应Agent的配置里修改skills数组。
例如,如果你希望礼部不仅能写文案,还能自动发布到社交媒体,可以给它添加twitter或wechat技能(需要先配置对应平台的API)。如果你希望工部能监控服务器,可以添加monitoring技能。
实操示例:为兵部添加GitHub技能假设你已经配置好了GitHub的Personal Access Token(需要repo权限),并存储在~/.config/github/token文件中。那么,在兵部(bingbu)的Agent配置里,确保skills列表中包含"github"。之后,你就可以直接命令兵部:“@兵部,在仓库my-org/my-project中创建一个关于用户登录的Issue”,兵部就会自动去执行。
4.2 记忆(Memory)系统:打造专属智囊团
每个Agent都有独立的记忆。这意味着,你告诉兵部“我喜欢用TypeScript”,它就会记住,下次你让它写代码时,它可能会优先推荐TypeScript。记忆存储在SQLite数据库中,位于每个Agent的工作目录下。
记忆备份至关重要:这些记忆是Agent长期学习你习惯和偏好的成果,丢失了就无法恢复。项目提供了scripts/memory-backup.sh脚本。
# 进入项目目录 cd ~/danghuangshang # 执行一次完整备份(备份到 ./backups/ 目录) bash scripts/memory-backup.sh # 设置每天凌晨3点自动备份(强烈推荐) (crontab -l 2>/dev/null; echo "0 3 * * * cd /home/ubuntu/danghuangshang && bash scripts/memory-backup.sh -q 2>&1 | logger -t openclaw-backup") | crontab -4.3 定时任务(Cron):让朝廷自动运转
你可以让朝廷在固定时间自动执行任务,比如每日汇报、每周备份、健康检查等。这通过Cron Skill实现。
示例:让户部每天上午9点汇报昨日开销
- 在户部的配置中确保有
cron技能。 - 在Discord中向户部下旨:
@户部 添加一个定时任务:每天上午9点,分析昨日所有API调用开销,并总结成报告发到这个频道。 - 户部会理解指令,并在后台设置一个Cron Job。从此,每天9点你都会收到一份自动生成的财务简报。
4.4 接入其他平台:飞书与Web GUI
除了Discord,系统还支持飞书(Lark)、Slack、Telegram等,甚至有一个内置的Web管理界面(GUI)。
接入飞书(更适合国内团队): 飞书采用WebSocket长连接,不需要服务器有公网IP,对于部署在内网的服务非常友好。配置流程与Discord类似,在飞书开放平台创建应用、获取凭证,然后通过openclaw channels add feishu命令添加即可。之后,你就可以在飞书群里@你的AI大臣了。
启动Web管理界面: 项目根目录下的gui/文件夹里是一个React开发的管理面板,可以可视化查看所有Agent状态、会话记录、Token消耗等。
cd ~/danghuangshang/gui npm install npm run build cd ../server npm install BOLUO_AUTH_TOKEN=your_secret_password node index.js访问http://你的服务器IP:18795,输入密码即可进入管理后台。这为你提供了除聊天频道外的另一个控制视角。
5. 故障排查、优化与经验分享
即使按照教程一步步来,也可能会遇到问题。这里汇总了一些常见坑点和优化技巧。
5.1 常见问题与解决方案
问题一:Bot在Discord里不响应@命令。
- 检查1:确认Bot已在线(绿色状态)。
- 检查2:确认你在频道里有@它的权限,并且输入格式正确(如
@司礼监 你好)。 - 检查3:检查Bot的
Privileged Gateway Intents中的MESSAGE CONTENT INTENT是否已开启。这是最常见的原因。 - 检查4:查看Agent日志
openclaw logs <agent_name>,看是否有连接或认证错误。
问题二:Agent之间出现消息循环(一个说话,另一个不停回复)。
- 根本原因:
allowBots配置错误,设成了true。 - 解决方案:立即停止所有Agent (
openclaw stop --all),然后检查并修改~/.openclaw/openclaw.json中所有Discord Channel配置,将allowBots改为"mentions"。修改后重启。
问题三:内阁或六部给出的方案质量不高,不符合预期。
- 优化1:为关键Agent(如内阁、兵部)使用更强、更新的模型。在Agent配置中修改
model字段,例如换成anthropic:claude-3-5-sonnet-20241022。 - 优化2:细化你的“圣旨”。模糊的指令会得到模糊的结果。尽量清晰,例如不说“做个App”,而说“做一个用于个人记账的移动App,需要包含收入支出分类、图表统计、数据导出功能,技术栈用React Native。”
- 优化3:利用内阁的“追问”机制。当你下旨后,内阁如果觉得信息不足,会主动向你提问。认真回答这些问题,能极大提升后续执行计划的准确性。
问题四:运行一段时间后,Agent反应变慢或出错。
- 检查资源:用
htop或docker stats命令查看服务器CPU、内存和磁盘占用。如果资源吃紧,考虑升级服务器配置。 - 清理Docker:运行
docker system prune -a --volumes可以清理无用的Docker镜像、容器和卷,释放空间。注意:这会删除所有未运行的容器和未使用的镜像,操作前请确认。 - 重启大法:有时简单的重启能解决临时性问题:
openclaw restart --all。
5.2 成本控制与优化策略
让18个AI Agent 24小时待命,听起来很贵,但实际上通过策略优化,成本完全可以控制。
- 模型分级使用:这是最有效的省钱方法。不要所有Agent都用最贵的GPT-4。
- 内阁(首辅):用最强的模型(如Claude 3.5 Sonnet, GPT-4)。因为它负责理解和规划,它的输出质量直接决定了整个任务的成败。
- 六部(执行者):用性价比高的模型(如GPT-4o, Claude 3 Haiku,甚至DeepSeek)。它们执行的是相对明确、具体的子任务。
- 司礼监(调度员):可以用更轻量的模型(如GPT-3.5-Turbo),它的工作主要是格式化的接旨和派发。
- 设置使用限额:在OpenClaw配置中,可以为每个Agent设置每月或每日的Token消耗上限,防止意外超支。
- 善用“直接指挥”模式:对于简单、明确的任务,可以直接在Discord里@具体的部门(如
@兵部 修复这个函数的Bug),跳过司礼监和内阁。这节省了内阁进行Prompt增强的Token消耗。 - 关闭非核心Agent:如果你暂时不需要“翰林院”(写小说)或“刑部”(法务),可以用
openclaw stop hanlin_zhang xingbu命令停止它们,节省资源和费用。
5.3 我的实战心得与建议
经过一段时间的深度使用,我总结出以下几点经验,可能比官方文档更有用:
- 从简单任务开始:不要一开始就扔一个“做一个电商平台”这样的巨型需求。先从“写一个Python爬虫获取天气数据”、“生成一份本周工作汇报模板”这样的小任务开始。这有助于你理解各个部门的协作方式,并逐步调教它们的“性格”。
- 明确边界,人机共治:AI朝廷是强大的助手,但不是万能的神。将创意、战略决策、最终审核权牢牢掌握在自己手中。让AI处理重复性、模式化、信息收集类的工作,而你专注于只有人能做的部分。
- 定期“朝会”,统一思想:可以定期(比如每周)在频道里发一个总结性指令,例如“@司礼监 着内阁并六部,总结本周各衙门所办差事,呈报朕览。”这能促使各个Agent回顾和整理记忆,也让它们对你的整体目标有更一致的理解。
- 备份!备份!备份!:再说一遍,定期使用
memory-backup.sh脚本备份。我曾因为一次误操作丢失了调教了两个月的兵部记忆,痛心疾首。 - 拥抱混乱,迭代调整:多智能体系统是复杂的,有时会出现意想不到的交互或结果。把这看作一个有趣的实验过程。当出现问题时,不要急着否定,去查看日志,分析是哪个环节的指令或配置出了问题,然后调整。这个过程本身,就是对你管理能力和系统思维的一种锻炼。
最后,这个项目的魅力在于,它不仅仅是一个工具,更是一个关于人机协作、组织管理的有趣隐喻。当你看着一群AI按照数百年前设计的官僚制度,有条不紊地处理着21世纪的数字任务时,那种穿越时空的奇妙感,或许才是“当皇上”带给你的最大乐趣。现在,你的朝廷已经就绪,是时候发布你的第一道圣旨了。