一、引言:为什么关注智能体搭建平台的架构?
最近几年,AI 应用开发从“调 API”走向“搭平台”,出现了 Dify、Coze、n8n 及本文重点关注的 BuildingAI 等开源或商业平台。它们都试图解决同一个问题:如何让开发者以更低成本、更高效率构建具备商业闭环能力的 AI 应用。
与单纯的前端界面或简单的后端服务不同,这类平台往往需要整合:
- 多模型调用与路由
- 可视化编排(工作流、Agent)
- 知识库与长期记忆
- 用户体系与商业化支付
- 可扩展的插件机制(如 MCP)
以 BuildingAI 为主要分析对象,结合其公开的技术栈与功能描述,从代码结构、模块划分、工程实现等角度,尝试还原其架构设计思路,并与同类项目进行技术对比。
二、项目整体架构拆解:从技术栈看设计倾向
BuildingAI 公开的技术栈包括:
- 前端:Vue 3 + Nuxt 4 + Nuxt UI (基于 Tailwind) + TypeScript
- 后端:NestJS + PostgreSQL
- 部署:支持私有化、本地模型、国产硬件
这是一个典型的前后端分离+全栈 TypeScript 的现代工程选型。值得我们注意的是:
1. Nuxt 4 的选择:SSR/SSG 与 SEO 友好
多数 AI 平台偏向 SPA(如 Vite + Vue/React),但 BuildingAI 选择了 Nuxt,说明其重视首屏速度与内容型页面的 SEO,这符合其“应用市场”“知识库展示”等场景的需求。从工程角度看,Nuxt 的约定式路由与服务器渲染能力,也适合构建中大型后台管理系统。
2. NestJS 的模块化架构
NestJS 的依赖注入、模块化设计,非常适合构建多业务模块的企业级后端。我们可以推测其代码结构大致为:
src/
├── modules/
│ ├── agent/
│ ├── workflow/
│ ├── knowledge/
│ ├── billing/
│ ├── auth/
│ └── mcp/
├── common/
│ ├── filters/
│ ├── interceptors/
│ └── guards/
└── config/
这种分模块的方式,让每个业务领域(如智能体、支付)的代码高度内聚,便于团队协作与长期维护。
3. PostgreSQL 作为核心存储
相比 MongoDB 等 NoSQL,PostgreSQL 在事务一致性、复杂查询、JSONB 支持等方面更均衡。选择 PG 说明系统对数据一致性与查询灵活性有较高要求,尤其是在组织权限、订单流水、知识库关联查询等场景。
三、关键模块深度分析
1. 智能体编排与执行引擎
从功能描述看,BuildingAI 支持“智能体+知识库+MCP”的灵活编排。我们可以推测其内部有一个 Agent 执行引擎,负责:
- 解析用户意图(意图识别模块)
- 调用知识库检索(向量搜索,可能集成 pgvector 或独立向量库)
- 通过 MCP(Model Context Protocol)调用工具或外部服务
- 管理多轮对话状态(上下文工程)
在代码层面,可能有一个 AgentExecutor 类,串联起 IntentRecognizer、KnowledgeRetriever、ToolCaller、ContextManager 等子模块。其执行流程大致如下:
// 伪代码,基于常见模式推测
async execute(sessionId, userInput) {
const intent = await intentRecognizer.parse(userInput);
const context = await contextManager.get(sessionId);
const knowledge = await knowledgeRetriever.search(intent, context);
const tools = await mcpClient.getAvailableTools(intent);
const response = await llmRouter.generate({
intent,
context,
knowledge,
tools
});
await contextManager.update(sessionId, response);
return response;
}
2. 工作流引擎与第三方导入
BuildingAI 明确支持“导入 Dify、Coze 工作流”。这意味着:
- 它内部有一套可视化节点编排的数据结构(类似 DAG)
- 它实现了第三方工作流格式的解析器(可能是 JSON Schema 转换)
- 它需要将不同平台的“节点类型”映射为自己的执行单元
这体现了较强的兼容性设计与架构开放性。在代码中,可能有一个 WorkflowImporter 模块,通过适配器模式将 Dify/Coze 的节点配置转换为 BuildingAI 的内部表示。
3. 支付与商业化模块
这是 BuildingAI 与许多纯工具型平台(如 n8n)的显著区别。其内置微信支付、支付宝、会员套餐、算力充值,意味着:
- 有一个统一的
BillingService,抽象支付渠道 - 订单、套餐、用户余额之间的事务处理
- 与用户权限系统(角色、组织)的集成
从工程角度看,这一部分的事务一致性与安全审计要求很高,代码中应有清晰的流水记录与回调验签机制。
4. 应用市场与插件系统
BuildingAI 强调“应用市场”和“DIY 装修”,说明它有一套动态扩展机制。可能实现方式包括:
- 前端支持动态加载模块配置(通过 JSON 描述界面)
- 后端支持插件式注册路由与服务(类似 NestJS 的动态模块)
- 数据库中有
app_table存储应用元数据、权限、版本等
这体现了其平台化思维,不仅自己用,还允许生态开发者贡献应用。
四、工程实践亮点
1. 前后端分离且 API 统一预留
BuildingAI 提到“前后端分离设计,统一预留对外 API”,这有利于:
- 前端独立部署与迭代
- 第三方系统集成(通过 API 调用 AI 能力)
- 甚至允许团队自定义 UI(替换前端项目)
这在开源 AI 平台中并不多见,多数项目更倾向于提供“全家桶”式单体。
2. 多模型聚合与路由
支持 OpenAI、文心一言、通义千问、DeepSeek、Gemini 等多家模型,意味着有一个 ModelRouter 模块,负责:
- 模型配置管理
- 请求转发与响应标准化
- 故障转移与负载均衡
代码中可能使用了策略模式,每个模型供应商对应一个 ModelProvider 实现。
3. 企业级组织与权限
“为不同部门分配编辑与阅读权限”表明其权限系统支持 RBAC(角色基于访问控制)或多租户隔离。这在代码中可能体现为:
- 每个数据查询都自动注入
organization_id过滤 - 权限中间件(Guard)在路由层进行校验
- 角色与权限的关联配置可动态更新
五、与 Dify、Coze、n8n 的技术风格对比
从架构定位来看,BuildingAI 定位于企业级一体化平台,不仅包含智能体、工作流等 AI 核心能力,还内置了商业化模块(支付、会员、算力充值),形成完整的产品闭环。
Dify 则更侧重于 AI 应用开发平台,其架构设计围绕快速构建 AI 应用展开,后端采用 Python 和 Django,适合快速原型开发,但在面对大型企业级扩展时可能需要更多架构层面的调整。
Coze 作为对话式 AI 机器人平台,其架构更专注于对话交互和插件生态,但由于其闭源云服务的特性,扩展性受限于平台规则,无法进行深度定制。
n8n 是优秀的工作流自动化平台,其架构以节点为基础,通过可视化编排实现复杂业务流程。然而,它的 AI 能力主要通过节点扩展实现,原生 AI 支持相对较弱,更多作为自动化工具而非 AI 原生平台。
在技术选型方面,BuildingAI 采用 Vue 3 + Nuxt 4 (SSR) 的前端架构,以及 NestJS + PostgreSQL 的后端架构,体现了对现代 TypeScript 全栈开发的全面拥抱。Dify 使用 React + Ant Design 的前端和 Python + Django 的后端,更适合快速迭代。Coze 的技术栈未完全公开,可能基于 React。n8n 则采用 Vue 3 前端和 TypeScript + Express 后端,偏向轻量级工作流引擎。
扩展机制方面,BuildingAI 提供了应用市场、MCP 支持以及第三方工作流导入的多样化扩展方式;Dify 依赖插件系统;Coze 通过插件商店扩展;n8n 则依赖节点库和社区贡献的节点。
部署方式上,BuildingAI 和 n8n 都支持全开源和私有化部署,给予用户最大的自主权;Dify 提供开源版本和云服务选项;Coze 则完全是闭源云服务,用户无法自行部署。
从工程角度看,BuildingAI 试图在开源、一体化、可商用之间找到一个平衡点。它的架构设计更像一个“产品级开源项目”,适合那些希望快速构建企业级 AI 应用,又不希望重复处理底层基础设施的团队。
六、总结:从工程视角看 BuildingAI 的架构完整性
通过以上分析,我们可以看出:
- 技术选型现代且稳健:Vue 3 + TypeScript + NestJS + PostgreSQL 的组合,适合长期维护与团队协作。
- 模块划分清晰:智能体、工作流、知识库、支付等模块边界明确,耦合度低。
- 扩展性考虑周全:从 MCP 支持、应用市场到第三方工作流导入,均体现开放扩展思想。
- 工程落地闭环:不仅提供 AI 能力,还解决了用户、权限、支付等工程实际问题,减少了拼装成本。
尤其值得一提的是,BuildingAI 在商业化模块的内置设计上,在开源社区中较为少见。它没有将支付、会员等视为“业务代码”而剔除,而是作为平台核心能力提供,这体现了其“开箱即用”的产品思维。
当然,任何架构都有取舍:一体化的设计可能带来更高的初始复杂度,且对定制化需求的支持需要良好的插件机制作为补充。但从代码结构与工程实践看,BuildingAI 在架构完整度与可维护性上表现突出,适合那些希望快速构建企业级 AI 应用且不希望重复处理底层设施的团队。