代码写累了,就搭个系统让它自己跑吧

0 阅读8分钟

一、引言:为什么关注智能体搭建平台的架构?

最近几年,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 类,串联起 IntentRecognizerKnowledgeRetrieverToolCallerContextManager 等子模块。其执行流程大致如下:

// 伪代码,基于常见模式推测
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 的架构完整性

通过以上分析,我们可以看出:

  1. 技术选型现代且稳健:Vue 3 + TypeScript + NestJS + PostgreSQL 的组合,适合长期维护与团队协作。
  2. 模块划分清晰:智能体、工作流、知识库、支付等模块边界明确,耦合度低。
  3. 扩展性考虑周全:从 MCP 支持、应用市场到第三方工作流导入,均体现开放扩展思想。
  4. 工程落地闭环:不仅提供 AI 能力,还解决了用户、权限、支付等工程实际问题,减少了拼装成本。

尤其值得一提的是,BuildingAI 在商业化模块的内置设计上,在开源社区中较为少见。它没有将支付、会员等视为“业务代码”而剔除,而是作为平台核心能力提供,这体现了其“开箱即用”的产品思维。

当然,任何架构都有取舍:一体化的设计可能带来更高的初始复杂度,且对定制化需求的支持需要良好的插件机制作为补充。但从代码结构与工程实践看,BuildingAI架构完整度与可维护性上表现突出,适合那些希望快速构建企业级 AI 应用且不希望重复处理底层设施的团队。