Coze Studio 源码学习
80 天 · 每天约 30 分钟 · 读懂字节开源的「一站式 AI Agent 开发平台」。
后端 Go(Hertz + Eino + DDD)· 前端 React/TS(Rush 海量包)· 核心在
AgentRun → agentflow → ReAct 与 Workflow Canvas→Compose→Execute。
真路径走读 + 大白话类比 + CSS/SVG 动图,AI 小白也能跟上。
开篇 · 这是个什么平台
Coze Studio(扣子工作室开源版)是一站式 AI Agent 可视化开发平台: 搭智能体、拖工作流、挂知识库与插件、调模型,还能用 OpenAPI / Chat SDK 集成到你的产品。
🎯 一句话:Coze = 后端 backend/(Go/DDD)+ 前端 frontend/(Rush+React)+ 合同 idl/(Thrift)。
用户发一句话,主线是 Handler → Application → AgentRun(Pipe) → agentflow(BuildAgent) → Eino ReAct/LLM → 流式回写;
复杂业务则走 Workflow 画布 → Schema → Compose → 节点执行。
智能体
人设 + 模型 + 插件 + 知识 + 工作流,ReAct 可自主调工具。
工作流引擎
几十种节点,Canvas 可视化,底层 Eino compose。
知识库 RAG
切片、Embedding、ES + Milvus 检索。
插件与模型
OpenAPI 插件 + ModelBuilder 多供应商。
backend/domain/;
启动看 backend/main.go 与 application/application.go;
跨域协作看 backend/crossdomain/;前端从 frontend/apps/coze-studio 与 packages/agent-ide、packages/workflow 入手。架构全景(动起来看)
发光小球 = 「用户的一句话」从进门到吐字的旅程。
怎么用这份教程
每天 30 分钟
一页一天:类比 → 动图 → 源码坐标 → 动手命令 → 明日预告。
零基础友好
不假设你会 Go/DDD/Eino;术语第一次出现都有大白话。
真仓库路径
焦点文件来自真实 coze-studio 树,可对照本地 clone。
取舍与坑
每天讲「为什么这样设计」和「一改就炸」的边界。
Coze Studio 是什么
扣子开源的心智模型
顶层目录地图
backend / frontend / idl / docker
DDD 四层大楼
api · application · domain · infra
Docker 全家桶
MySQL Redis ES Milvus NSQ MinIO
Make 命令与三种启动姿势
Make 命令与三种启动姿势
main.go 启动剧本
env → Init → Spin
application.Init
三级装配 + SetDefaultSVC
中间件链条
顺序绝不能乱
IDL / Thrift
前后端的合同本
路由注册
GeneratedRegister 与静态页
Handler 一览
薄薄一层转给 application
SessionAuth 与 OpenapiAuth
两种进门方式
Crossdomain 防腐层
为什么 domain 互不直接引用
一次 Chat 请求的完整旅程(总览)
一次 Chat 请求的完整旅程(总览)
SSE / Pipe
流式吐字怎么回来
错误码与 types
errno · consts · ddl
SingleAgent 实体
智能体到底存了什么
SingleAgent Service
CRUD · 发布 · StreamExecute
Conversation 域
会话生命周期
Message 域
消息怎么落库
AgentRun 接口
Run · Cancel · List
AgentRun 实现
Pipe + safego.Go
AgentRuntime.Run
加载 Agent 再分支
agentflow.BuildAgent
人格→检索→提示→ReAct
Persona 与 Prompt 节点
人设如何注入
Knowledge Retriever 节点
对话前先查资料
Eino ReAct
有工具就变成自主 Agent
工具全家桶
Plugin · Workflow · Database · Variables
Workflow 域全景
最大的业务心脏
Canvas 画布
前端拖的是什么 JSON
Schema
Canvas 如何变成可执行图
Compose
用 Eino Workflow 组装节点
Node Runner
一个节点怎么被调度
Execute 事件流
前端怎样实时看执行
Entry / Exit
图的大门与出口
LLM 节点
工作流里调模型
Plugin 节点
在图里调第三方 API
Code 节点
Python 沙箱怎么跑
Knowledge 节点
索引 / 检索 / 删除
HTTP Requester
通用 HTTP 积木
Selector 与 IntentDetector
分支决策
Loop 与 Batch
循环与批处理
SubWorkflow
工作流套娃
变量三件套
Assigner · Aggregator · WithinLoop
TextProcessor 与 JSON 节点
TextProcessor 与 JSON 节点
Conversation 系列节点
会话也能编排
QA · Emitter · Receiver
人机协作节点
Workflow as Tool
工作流变身 Agent 工具
Knowledge 域总览
文档 · 切片 · 策略
Document Processor
不同文档类型怎么处理
Embedding 基础设施
向量从哪来
检索
ES 关键词 + Milvus 向量
Plugin 域
插件与 Tool 实体
Plugin 执行
exec_tool 与 invocation
ModelBuilder 工厂
统一造 ChatModel
模型供应商全家桶
OpenAI Ark Claude…
Memory
变量与用户数据库
Prompt 资源库
提示词怎么管
Permission
资源级授权怎么查
User · Passport · Space
租户与登录
Search + EventBus
ES 索引与 NSQ
Upload · Storage · MinIO
文件去哪
Cache · ORM · IDGen
基础件地图
Checkpoint
中断与恢复的底座
App · Template · Connector
项目与渠道
OpenAuth
个人访问令牌 PAT
Rush Monorepo
level-1~4 依赖金字塔
apps/coze-studio
壳应用怎么起来
agent-ide
智能体编排页地图
chat-area
对话区是怎么拼出来的
workflow playground
可视化画布前端
workflow/nodes
前端节点与后端的对应
Zustand stores
状态放哪
IDL → TypeScript
合同怎样到前端
Adapter 模式
开源版如何换皮