字节的Coze刚开源,我先给大家来一波简要分析。
Coze Studio 技术栈详情
后端技术栈
核心技术
- Go版本: 1.24.0
- Web框架: Cloudwego Hertz (高性能HTTP框架)
- 架构模式: 微服务架构 + DDD(领域驱动设计)
主要依赖库
- AI引擎: Cloudwego Eino (AI智能体和工作流运行时)
- 模型支持:
- OpenAI、Claude、DeepSeek、Gemini
- 火山方舟(Ark)、通义千问等
- 数据库: GORM (MySQL/SQLite驱动)
- 缓存: Redis (go-redis/v9)
- 消息队列: Kafka (IBM/sarama)、RocketMQ
- 搜索引擎: Elasticsearch
- 向量数据库: Milvus
- 对象存储: 火山引擎TOS、MinIO
- 配置管理: Viper、YAML
- 测试框架: Testify、GoMock
项目结构
backend/
├── api/ # API层 (Handler, Router, Middleware)
├── application/ # 应用层 (Application Services)
├── domain/ # 领域层 (Domain Models, Entities)
├── infra/ # 基础设施层 (Repository实现)
├── crossdomain/ # 跨域服务
├── pkg/ # 通用工具包
├── conf/ # 配置文件
└── types/ # 类型定义
前端技术栈
核心技术
- 包管理: Rush.js (Microsoft的monorepo管理工具)
- Node版本: >=16.13.0
- 包管理器: pnpm 8.15.8
- 构建工具: Rsbuild (基于Rspack的构建工具)
- UI框架: React + TypeScript
- 工作流编辑器: FlowGram (字节跳动开源的流程搭建引擎)
主要依赖
- UI组件库: Semi Design (@coze-arch/bot-semi)
- 状态管理: 自研Store系统
- 国际化: @coze-arch/i18n
- HTTP客户端: @coze-arch/bot-http
- 代码编辑器: Monaco Editor
- 工作流渲染: FlowGram + Fabric.js
项目结构
frontend/
├── apps/ # 应用入口
├── packages/ # 功能包
│ ├── arch/ # 架构层基础包
│ ├── common/ # 通用组件和工具
│ ├── workflow/ # 工作流相关
│ ├── agent-ide/ # 智能体IDE
│ └── studio/ # Studio核心功能
├── config/ # 配置文件
└── infra/ # 基础设施工具
数据存储
主要存储
- 关系数据库: MySQL 8.4.5
- 缓存数据库: Redis 8.0
- 搜索引擎: Elasticsearch
- 向量数据库: Milvus (用于知识库检索)
对象存储
- 火山引擎TOS (主要)
- MinIO (可选)
部署方案
容器化
- 容器: Docker + Docker Compose
- 最低配置: 2 Core、4 GB内存
- 服务编排: 支持多Profile部署
- middleware: 中间件服务
- mysql-setup: 数据库初始化
- web: 完整Web服务
Coze Studio 命令清单
开发环境搭建
前置要求
# 确保系统满足最低要求:2 Core、4 GB内存
# 安装Docker和Docker Compose并启动Docker服务
docker --version
docker-compose --version
快速开始
# 1. 克隆代码
git clone https://github.com/coze-dev/coze-studio.git
cd coze-studio
# 2. 配置模型 (必须步骤)
# 复制模型配置模板
cp backend/conf/model/template/model_template_ark_doubao-seed-1.6.yaml backend/conf/model/ark_doubao-seed-1.6.yaml
# 编辑配置文件,设置id、meta.conn_config.api_key、meta.conn_config.model字段
# 3. 部署并启动服务
cd docker
cp .env.example .env
docker compose --profile "*" up -d
# 4. 访问应用
# 浏览器打开 http://localhost:8888/
开发模式命令
使用Makefile (推荐)
# 启动完整开发环境 (中间件 + Python + 服务器)
make debug
# 单独构建前端
make fe
# 单独构建并运行服务器
make server
# 仅构建服务器(不运行)
make build_server
# 启动中间件服务 (MySQL + Redis + Elasticsearch等)
make middleware
# 启动完整Web服务
make web
# 同步数据库
make sync_db
# 导出数据库结构
make dump_db
# 停止所有服务
make down
# 清理所有数据(危险操作)
make clean
# 设置Python环境
make python
# 查看帮助
make help
直接使用脚本
# 前端相关
./scripts/setup_fe.sh # 设置前端环境
./scripts/build_fe.sh # 构建前端
./scripts/start_fe.sh # 启动前端开发服务器
# 后端相关
./scripts/setup/server.sh # 构建服务器
./scripts/setup/db_migrate_apply.sh # 数据库迁移
./scripts/setup/python.sh # 设置Python环境
前端开发命令
使用Rush.js
cd frontend
# 安装依赖
rush install
# 构建所有包
rush rebuild
# 构建特定应用
rush rebuild -o @coze-studio/app
# 运行开发服务器
rush start -p @coze-studio/app
# 运行测试
rush test
# 代码检查
rush lint
# 代码格式化
rush prettier
后端开发命令
Go开发
cd backend
# 安装依赖
go mod download
# 构建
go build -o bin/coze-server .
# 运行
./bin/coze-server
# 测试
go test ./...
# 代码格式化
go fmt ./...
# 代码检查
go vet ./...
Docker命令
开发环境
# 启动所有服务
docker compose --profile "*" up -d
# 启动特定Profile
docker compose --profile middleware up -d # 仅中间件
docker compose --profile mysql-setup up -d # 仅MySQL设置
# 查看服务状态
docker compose ps
# 查看日志
docker compose logs -f
# 停止服务
docker compose down
# 清理数据卷
docker compose down -v
数据库操作
# 数据库迁移
docker compose --profile mysql-setup up -d
# 查看MySQL日志
docker logs coze-mysql
# 连接MySQL
docker exec -it coze-mysql mysql -ucoze -pcoze123 opencoze
Git工作流
# 标准工作流
git checkout -b feature/your-feature
git add .
git commit -m "feat: your feature description"
git push origin feature/your-feature
# 提交前检查
rush lint # 代码检查
rush test # 运行测试
go test ./... # 后端测试