一个对话框聚合 7 家大模型 + MCP 热装载,三千AI智能体的工程化思路拆解
本文最后更新于 2026-05-03 / 基于 v25.3.5 源码实测
TL;DR
三千AI智能体 把多模型聚合、MCP 热装载、Agent 编排、短视频流水线、商业化模块,用 Docker Compose 编排成单机可起的一体化 AI 工作台。本文从工程化角度拆它的三个有意思的设计:
- 多模型聚合层 — 一个对话框切换 7 家 LLM + 多家文生图/视频
- MCP 热装载 — 运行时挂载工具,不重启进程
- License 机制 — ECDSA P-256 签域名而非签机器
源码 + 部署文档:github.com/2961799660/… 在线 Demo:**ai1.zijie.lol**(demo / Demo123456)
一、为什么这套架构值得拆
2026 年「AI 应用」的工程标准其实已经分化得很清楚:
- 底层引擎层(Dify / LangChain / LlamaIndex)— LLMOps 工作流
- Agent 框架层(CrewAI / AutoGen / Coze)— 多 Agent 协作
- 业务成品层(三千AI智能体 / FastGPT 高阶玩法)— 前端 + 商业化 + 白标
业务成品层的工程难点不在「能不能跑」,在「如何把模型异构性、工具异构性、商业模块、白标系统,包成一个 90 秒拉起的 Docker Compose」。
下面拆三个最有工程美感的点。
二、多模型聚合层 — 一个对话框切 7 家
2.1 接入面
LLM 7 家:
- GPT-5.4 (OpenAI)
- Claude Opus 4.6 (Anthropic)
- Gemini 3.1 Pro (Google)
- Kimi K2.5 (月之暗面)
- 深度求索 (DeepSeek)
- 智谱 GLM (Zhipu)
- xAI Grok (xAI)
文生图:闪绘 / 精绘 / 可灵 omni-image / 豆包 Seedream 5.0
文生视频:创影 / 可灵动作控制 / 可灵 V3 / 豆包 Seedance 2.0 Pro / 1.x Lite
2.2 抽象设计的关键
不同 model provider 的 API contract 差异极大:
- OpenAI 走
messages[]+ tool_choice - Anthropic 走
messages[]+ system 单独字段 + tool_use block - Google Gemini 走
contents[]+ functionDeclarations - Kimi / 深度求索 / 智谱 兼容 OpenAI 格式但行为不一致
- 国内文生图各家 webhook / 轮询 / SSE 模式都有
聚合层的核心是 provider adapter 层 + 统一的 ChatRequest / ChatResponse 协议:
interface ChatRequest {
messages: Message[];
model: string; // 'gpt-5.4' / 'claude-opus-4.6' / ...
tools?: Tool[]; // MCP-style 协议
thinking?: boolean; // 深度思考开关
artifacts?: boolean; // 代码 artifact 预览开关
}
interface ChatResponse {
delta?: string; // SSE 流式增量
toolUse?: ToolCall;
artifact?: Artifact; // 代码 / HTML / SVG
thinking?: string; // 思考过程
usage: TokenUsage;
}
每个 provider 写一个 adapter 把自家协议映射到这套接口;前端永远只面对 ChatRequest / ChatResponse。这是最朴素也最稳的设计。
2.3 切换不破坏会话状态
切模型时,前端保留 messages 历史,重新走 adapter 即可。比起每家会员开一个 tab,这里是同一个会话流里换大脑。对长上下文场景(比如分析报告写一半切 Claude)非常关键。
2.4 深度思考 + Artifacts 的工程取舍
- 深度思考:协议层加
thinking字段,provider 不支持就 ignore(gracefully degrade) - Artifacts:识别响应里的
html /svg / ```react 代码块,前端用 iframe sandbox 实时预览
这两个能力是 Claude / GPT 体验的护城河,聚合层把它工程化了。
三、MCP 热装载 — 运行时挂载工具
3.1 MCP 是什么
Model Context Protocol,由 Anthropic 牵头的工具调用协议。把「外部工具」抽象成 server,模型通过统一协议调用。
三千AI智能体内置的 MCP server:
- 飞书 / 企微 / 钉钉 — 协作类
- TikHub — 14+ 社媒数据接口(抖音 / 小红书 / B站 / YouTube / Twitter / Reddit / TikTok 等)
- 小红书 — 单独的发布 / 数据接口
- 自定义 MCP — 后台可挂任意 MCP server URL
3.2 热装载的工程价值
传统插件架构:
改插件 → 重启服务 → 用户掉线 → 重新登录
MCP 热装载架杤:
管理员后台填 MCP server URL → 服务在线 register → 立刻在对话工具列表里出现
实现机制是 MCP registry 走 Redis pubsub:worker 进程监听 channel,收到新 server 注册事件就 hot-load adapter,整个过程对在线用户无感。
这个设计对生产环境的代理商非常重要 — 客户临时要接一个新的 SaaS 工具(比如某 CRM),运维 5 分钟挂上去,不用半夜停机。
3.3 一段示例:自定义 MCP 注册
后台 → MCP 管理 → 新增:
{
"name": "internal-crm",
"url": "http://crm.your-domain.com/mcp",
"auth": {
"type": "bearer",
"token": "xxx"
},
"scope": ["lead.search", "lead.create"]
}
提交后 Redis pubsub 广播 → 所有 worker 在线注册 → 模型在下一轮对话里就能调 lead.search。
四、License 机制 — ECDSA P-256 签域名
4.1 为什么签域名而不是签机器
传统 license:
- 绑 MAC 地址 / CPU ID → 换服务器要重签
- 绑 IP → 不能上云、不能多机部署
签域名的好处:
- 换服务器无感 — 把 MySQL / Redis / 数据卷搬过去,license.lic 一字不动
- 多机部署天然支持 — 同域名指向哪台机器都能验
- 支持通配
*.buyer.com— 客户做 SaaS 多租户时,每个子站不用重签
4.2 验证流程
license.lic
├── domain: "ai.your-brand.com" (或 *.your-brand.com)
├── version_constraint: ">=v25.0.0"
├── features: ["canvas", "mcp", "billing", "diy"]
├── expires_at: null (终身)
└── signature: ECDSA-P256(payload, vendor_private_key)
服务启动时校验 signature + 校验 request.host ∈ domain。整个过程不联网,不打回母站,对客户合规审计非常友好。
4.3 ECDSA-P256 选型理由
- 比 RSA-2048 短得多(签名 ~64 字节 vs 256 字节),license.lic 体积小
- 验证速度快(适合每个请求都校验 host)
- 主流 Go / Node / Python 标准库都原生支持,没第三方依赖
- 抗量子还没到,但常规威胁模型够用
五、5 分钟跑起来
# clone
git clone https://github.com/2961799660/sanqian_ai.git
cd sanqian_ai
# 配置
cp .env.example .env
vim .env # 填域名、DB 密码、模型 API key
# 起服务
docker compose up -d
# 验证
docker compose ps
curl http://localhost/api/health
容器列表:
| 容器 | 角色 |
|---|---|
| app | 主 API + 前端静态文件 |
| worker | 异步任务(视频合成、批量出图、MCP register 监听) |
| mysql | 默认数据库(生产可换 RDS) |
| redis | 缓存 + pubsub(MCP 热装载靠这个) |
| nginx | 反代 + SSL 终止 |
最低配 4C8G / 40G 磁盘,10 分钟内拉齐。
六、几个 ad-hoc 问题
Q1:能不能只跑 LLM 不跑视频/图?
能。docker-compose.yml 把 worker 拆出来,不需要的能力关掉对应模块的 feature flag 即可。
Q2:能改成 PostgreSQL 吗?
源码档 (¥万元级) 可改 ORM 层。授权档默认 MySQL。
Q3:MCP server 自己写要多久?
按 Anthropic 官方 spec,写一个 stdio 模式的 MCP server 通常半天到一天。三千AI智能体支持 HTTP / SSE / stdio 三种 transport。
Q4:模型成本怎么控?
后台有 Token 计费 + 按次计费 + 算力多级套餐 + 用户每日额度,可以按用户 / 按工作空间 / 按 IP 限流。
Q5:跟 LangChain / LlamaIndex 关系?
定位不同。LangChain 是引擎,三千AI智能体是业务成品。如果要在工作台里集成 LangChain 写的复杂 chain,挂成 MCP server 即可。
七、写在最后
工程角度看,这套设计没有炫技:聚合层是经典 adapter pattern,热装载是 Redis pubsub,license 是经典 ECDSA。但把这些朴素的工程做到「Docker 一键启 + 90 秒可用」的成品形态,对中小团队就是把「3 个月 + 2 个工程师」的研发投入直接砍掉。
文档、源码层级(授权档 / 包搭建档 / 开源源码档)的对比表、演示账号、license 说明全部在公开仓:
演示站直接体验:**ai1.zijie.lol**(demo / Demo123456)
基于 v25.3.5 实测,2026-05-03 更新。下一篇打算拆 AI 画布的 DAG 编排执行器,感兴趣的同学评论扣 1。