乐于分享
好东西不私藏

Coze Studio 源码解读(一):项目架构与核心模块

Coze Studio 源码解读(一):项目架构与核心模块

Coze Studio 源码解读(一):项目架构与核心模块

深入理解一站式 AI Agent 开发平台的设计理念

一、项目概述

1.1 Coze Studio 是什么

Coze Studio 是字节跳动开源的一站式 AI Agent 可视化开发平台,源自服务于数万家企业和百万开发者的”扣子开发平台”。

Coze Studio 定位

核心价值
├── 降低 AI Agent 开发门槛
├── 提供可视化开发工具
├── 支持无代码/低代码开发
└── 快速构建和部署 AI 应用

目标用户
├── 企业开发者
├── AI 应用创业者
├── 技术爱好者
└── 教育培训机构

应用场景
├── 智能客服
├── 知识问答
├── 内容生成
├── 数据分析
└── 业务自动化

1.2 技术栈概览

技术架构

后端 (Golang)
├── 框架: Hertz (字节跳动开源 HTTP 框架)
├── 架构: 微服务 + DDD (领域驱动设计)
├── 运行时: Eino (CloudWeGo AI 框架)
├── ORM: GORM
└── Go 版本: >= 1.23.4

前端 (TypeScript)
├── 框架: React 18 + TypeScript
├── 构建: Rush (Monorepo)
├── 工作流: FlowGram.ai
├── 状态: Zustand
└── UI: 自研组件库

基础设施
├── 数据库: PostgreSQL
├── 缓存: Redis
├── 对象存储: MinIO
├── 容器: Docker + Docker Compose
└── 编排: Helm (Kubernetes)

二、项目目录结构

2.1 顶层目录

coze-studio/
├── backend/           # Go 后端服务
├── frontend/          # React 前端应用
├── docker/            # Docker 配置文件
├── helm/              # Kubernetes Helm Charts
├── idl/               # 接口定义语言 (IDL)
├── docs/              # 文档
├── scripts/           # 脚本工具
├── common/            # 公共代码
├── Makefile           # 构建脚本
└── README.md          # 项目说明

2.2 后端目录详解

backend/
├── main.go            # 入口文件
├── api/               # API 层
│   ├── router/        # 路由注册
│   └── middleware/    # 中间件
├── application/       # 应用层 (核心业务)
│   ├── app/           # 应用管理
│   ├── conversation/  # 对话管理
│   ├── knowledge/     # 知识库
│   ├── memory/        # 记忆系统
│   ├── modelmgr/      # 模型管理
│   ├── plugin/        # 插件系统
│   ├── prompt/        # 提示词管理
│   ├── workflow/      # 工作流引擎
│   ├── user/          # 用户管理
│   └── singleagent/   # 单 Agent 模式
├── domain/            # 领域层 (DDD)
├── infra/             # 基础设施层
├── pkg/               # 公共工具包
│   ├── logs/          # 日志
│   ├── lang/          # 语言工具
│   └── ...
├── internal/          # 内部模块
├── conf/              # 配置文件
└── types/             # 类型定义

2.3 前端目录详解

frontend/
├── apps/              # 应用入口
│   └── coze-studio/   # 主应用
├── packages/          # 共享包
│   ├── ui/            # UI 组件库
│   ├── workflow/      # 工作流组件
│   └── shared/        # 共享工具
├── config/            # 配置文件
├── infra/             # 前端基础设施
└── scripts/           # 脚本工具

三、核心功能模块

3.1 模块概览

核心功能模块

模型服务层
├── modelmgr/          # 模型管理器
├── 多模型支持         # OpenAI, Claude, 国产模型
└── 统一接口抽象       # 屏蔽模型差异

Agent 构建层
├── singleagent/       # 单 Agent 模式
├── app/               # 多 Agent 应用
├── prompt/            # 提示词管理
└── memory/            # 记忆系统

工作流引擎
├── workflow/          # 工作流核心
├── 节点执行器         # LLM, 代码, 条件等
├── 流程控制           # 串行, 并行, 分支
└── 状态管理           # 变量, 上下文

知识库系统
├── knowledge/         # 知识库管理
├── 文档解析           # PDF, Word, Markdown
├── 向量化             # Embedding
└── 检索系统           # 语义检索, 关键词

插件系统
├── plugin/            # 插件管理
├── API 插件           # HTTP 调用
├── 代码插件           # Python 执行
└── 内置插件           # 搜索, 图片等

对话系统
├── conversation/      # 对话管理
├── 会话上下文         # 多轮对话
├── 流式响应           # SSE/WebSocket
└── 消息存储           # 持久化

3.2 模块依赖关系

模块依赖架构

┌─────────────────────────────────────────────┐
│                  API Layer                   │
│            (router + middleware)             │
├─────────────────────────────────────────────┤
│              Application Layer               │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐       │
│  │ Agent   │ │Workflow │ │Knowledge│       │
│  └────┬────┘ └────┬────┘ └────┬────┘       │
│       │           │           │             │
│  ┌────┴────┐ ┌────┴────┐ ┌────┴────┐       │
│  │  Model  │ │ Plugin  │ │ Memory  │       │
│  └────┬────┘ └────┬────┘ └────┬────┘       │
├───────┴──────────┴──────────┴───────────────┤
│               Domain Layer                   │
│            (领域模型 + 业务规则)              │
├─────────────────────────────────────────────┤
│           Infrastructure Layer               │
│     (DB + Cache + Storage + External API)    │
└─────────────────────────────────────────────┘

四、架构设计原则

4.1 分层架构 (DDD)

DDD 分层设计

API 层 (Interface)
├── 职责: 接收请求、参数验证、响应格式化
├── 组件: Router, Middleware, Handler
└── 原则: 不包含业务逻辑

应用层 (Application)
├── 职责: 用例编排、业务流程协调
├── 组件: Service, UseCase
└── 原则: 协调领域对象完成业务

领域层 (Domain)
├── 职责: 核心业务逻辑、领域模型
├── 组件: Entity, ValueObject, Repository
└── 原则: 纯粹的业务规则

基础设施层 (Infrastructure)
├── 职责: 技术实现、外部服务
├── 组件: DB, Cache, API Client
└── 原则: 支撑上层实现

4.2 设计模式应用

常用设计模式

工厂模式
├── 模型提供者工厂
├── 插件实例工厂
└── 工作流节点工厂

策略模式
├── 不同模型的调用策略
├── 不同检索策略
└── 不同执行策略

观察者模式
├── 工作流事件监听
├── 对话消息订阅
└── 系统事件通知

装饰器模式
├── 中间件链
├── 插件增强
└── 日志装饰

依赖注入
├── 服务注册
├── 接口抽象
└── 测试友好

五、快速上手

5.1 环境准备

# 系统要求
CPU: 2 核+
内存: 4 GB+
磁盘: 20 GB+

# 必需软件
Docker: 24.0+
Docker Compose: 2.0+

# 可选 (开发环境)
Go: 1.23.4+
Node.js: 18+
pnpm: 8+

5.2 一键部署

# 克隆项目
git clone https://github.com/coze-dev/coze-studio.git
cd coze-studio

# macOS / Linux
make web

# Windows
cp ./docker/.env.example ./docker/.env
docker compose -f ./docker/docker-compose.yml up

5.3 初始化配置

部署后步骤

1. 注册账号
   URL: http://localhost:8888/sign
   
2. 配置模型
   URL: http://localhost:8888/admin/#model-management
   添加: OpenAI / 火山引擎 / 其他模型
   
3. 开始使用
   URL: http://localhost:8888/

六、核心配置说明

6.1 环境变量

# .env 配置示例

# 应用配置
APP_ENV=production
LISTEN_ADDR=:8888
LOG_LEVEL=info

# SSL 配置 (可选)
USE_SSL=0
SSL_CERT_FILE=
SSL_KEY_FILE=

# 数据库配置
DB_HOST=postgres
DB_PORT=5432
DB_USER=coze
DB_PASSWORD=coze123
DB_NAME=coze

# Redis 配置
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=

# 存储配置
STORAGE_TYPE=minio
MINIO_ENDPOINT=minio:9000
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_BUCKET=coze

6.2 模型配置

# 模型配置示例

models:
  - name: GPT-4o
    provider: openai
    api_key: sk-xxx
    base_url: https://api.openai.com/v1
    model: gpt-4o
    
  - name: Claude-3.5
    provider: anthropic
    api_key: sk-xxx
    model: claude-3-5-sonnet
    
  - name: 豆包
    provider: volcengine
    api_key: xxx
    model: doubao-pro

七、本章小结

7.1 知识点回顾

本章要点

1. 项目定位
   ├── 一站式 AI Agent 开发平台
   ├── 支持无代码/低代码开发
   └── 开源免费,Apache 2.0 协议

2. 技术架构
   ├── 后端: Go + Hertz + DDD
   ├── 前端: React + TypeScript + Rush
   └── 基础设施: Docker + PostgreSQL + Redis

3. 核心模块
   ├── 模型服务、Agent 构建
   ├── 工作流引擎、知识库
   └── 插件系统、对话管理

4. 快速部署
   ├── Docker 一键启动
   ├── 模型配置
   └── 开始使用

7.2 后续章节预告

系列教程规划

第二章 后端服务架构详解
├── 服务启动流程
├── 中间件机制
├── 路由设计
└── 错误处理

第三章 Agent 构建系统
├── Agent 模型设计
├── 提示词管理
├── 记忆系统
└── 多 Agent 协作

第四章 工作流引擎实现
├── 工作流定义
├── 节点执行器
├── 流程控制
└── 状态管理

第五章 插件系统开发
├── 插件架构
├── 插件开发指南
└── 内置插件实现

第六章 知识库与 RAG 实现
├── 文档处理
├── 向量化存储
└── 检索策略

第七章 前端架构与组件设计
├── Monorepo 架构
├── 工作流画布
└── 状态管理

第八章 部署与二次开发
├── 生产部署
├── 性能优化
└── 自定义扩展

软件定制开发,微信联系:rustgopy