Skip to content

总体架构

Coze Plus 是一个采用现代化技术栈构建的 AI Agent 开发平台,采用前后端分离架构。

架构概览

┌─────────────────────────────────────────────────────────┐
│                      前端层 (Frontend)                   │
│  React 18 + TypeScript + Rsbuild + Rush Monorepo       │
│  240 个包管理, 4-layer dependency structure              │
└─────────────────────────────────────────────────────────┘
                           ↓ HTTP/WebSocket
┌─────────────────────────────────────────────────────────┐
│                    API 网关 (API Layer)                  │
│             Hertz HTTP Framework + Thrift IDL            │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│                   应用层 (Application)                   │
│          Use Cases, DTOs, Cross-Domain Logic            │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│                    领域层 (Domain)                       │
│  DDD Design: Entities, Repositories, Services           │
│  Agent | Workflow | Knowledge | Plugin | Channel        │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│                  基础设施层 (Infrastructure)              │
│  MySQL | Redis | Elasticsearch | Milvus | NSQ          │
└─────────────────────────────────────────────────────────┘

核心领域模块

1. Agent (智能体)

  • 智能体创建和管理
  • 对话流引擎
  • 单智能体和多智能体编排

2. Workflow (工作流)

  • 可视化工作流编排
  • 节点类型:LLM、知识库检索、工具调用、条件判断等
  • 执行引擎和状态管理

3. Knowledge (知识库)

  • 文档管理(支持多种格式)
  • 向量化和检索
  • 分片和索引管理

4. Plugin (插件)

  • 插件注册和发现
  • OAuth 认证流程
  • API 调用和工具执行

5. Channel (发布渠道)

  • 多渠道发布:微信、企业微信、钉钉、飞书
  • Webhook 处理
  • 渠道配置管理

6. Memory (记忆/数据库)

  • 结构化数据存储
  • 变量管理
  • 对话上下文

技术选型

前端技术栈

类型技术说明
框架React 18组件化开发
语言TypeScript类型安全
构建工具Rsbuild (Rspack)极速构建
UI 组件Semi Design企业级组件库
样式Tailwind CSS原子化 CSS
状态管理Zustand轻量级状态管理
MonorepoRush.js240 包管理

后端技术栈

类型技术说明
语言Go 1.24.0高性能、并发
HTTP 框架HertzCloudWeGo 高性能框架
IDLThrift接口定义语言
数据库MySQL 8.4主数据库
缓存Redis 8.0缓存和会话
搜索引擎Elasticsearch 8.18全文搜索
向量数据库Milvus v2.5向量检索
对象存储MinIO文件存储
消息队列NSQ异步任务
配置中心etcd 3.5配置管理

架构特点

1. 领域驱动设计 (DDD)

采用 DDD 架构模式,实现:

  • 清晰的领域边界: 每个领域独立开发和部署
  • 统一语言: 代码与业务概念一致
  • 聚合根: 保证领域对象的一致性
  • 仓储模式: 抽象数据访问层

2. 分层架构

API Layer (Handler)

Application Layer (Use Cases)

Domain Layer (Business Logic)

Infrastructure Layer (Data Access)

每层职责明确:

  • API Layer: 路由、参数验证、响应格式化
  • Application Layer: 用例编排、跨领域协调
  • Domain Layer: 核心业务逻辑、领域规则
  • Infrastructure Layer: 数据持久化、外部服务调用

3. Monorepo 前端架构

4 层依赖结构:

Level 4: apps/coze-studio (应用入口)

Level 3: agent-ide/, workflow/, studio/ (业务领域)

Level 2: common/ (通用组件和工具)

Level 1: arch/ (核心基础设施)

4. 微服务化设计

虽然目前是单体应用,但架构支持轻松拆分为微服务:

  • 每个领域模块高内聚、低耦合
  • 通过接口而非直接依赖通信
  • 使用消息队列解耦

5. 事件驱动架构

使用 NSQ 消息队列实现:

  • 异步任务处理
  • 领域事件发布/订阅
  • 跨领域通信

数据流

请求处理流程

1. 用户请求 → Hertz Router
2. Handler 参数验证 → Application Service
3. Application Service 业务编排 → Domain Service
4. Domain Service 领域逻辑 → Repository
5. Repository 数据访问 → Database
6. 响应原路返回

AI 对话流程

1. 用户消息 → Conversation Service
2. 获取 Agent 配置 → Agent Domain
3. 构建对话上下文 → Memory Domain
4. 知识库检索 → Knowledge Domain
5. 工具调用 → Plugin Domain
6. LLM 调用 → Model Provider
7. 流式响应 → WebSocket

扩展性设计

水平扩展

  • 无状态服务设计
  • Session 存储在 Redis
  • 文件存储使用 MinIO 集群

垂直扩展

  • 插件化架构
  • 策略模式
  • 工厂模式
  • 适配器模式

下一步

飞视数字技术|AI智能技术服务商