源码深度学习 · 零基础友好

Coze Loop 源码学习

20 天 · 每天 30 分钟 · 逐层读懂字节跳动开源的 AI Agent 开发运维(DevOps)平台 Coze Loop——Prompt 工程、评测(Evaluation)、可观测性(Observability)三大能力,全部从真实源码讲起。

00

开篇 · 这是个什么平台

Coze Loop 不是"搭 Agent 的地方",而是"让 Agent 变得更好用、更靠谱"的工程化平台。如果说 Coze Studio 是"画布 + 搭建 Agent"的地方,Coze Loop 就是"给 Agent 做体检、调优、上线后持续监控"的地方——两者定位完全不同,经常被新人搞混。

🎯 一句话:Coze Loop 帮你把"写 Prompt / 跑评测 / 看 Trace 排障"这三件 AI 应用开发中最花时间的事,做成一套全生命周期管理的平台——从"随手改改 Prompt"到"上线后每一次调用都能追溯"。

它有三大核心能力,对应 6 个后端业务模块:

✍️

Prompt 开发

Prompt 的创建、版本管理、在线调试,边改边看模型真实反馈。

📊

Evaluation 评测

用数据集 + 评估器批量跑实验,量化"这版 Prompt/Agent 到底好不好"。

🔍

Observability 观测

基于 Trace 的全链路追踪,上线后每一次调用都能回放排查。

🧱

Foundation 地基

用户、空间、鉴权——所有业务模块的统一身份与权限底座。

零基础也别怕:前 5 天完全不假设你懂 DDD/Hertz/Kitex/Thrift。我们从"这是什么、怎么跑起来"讲起,一步步拆到路由、Handler、分层架构,再纵切一条完整业务链路,最后进入评测和观测这些更"平台特色"的能力。
01

6 模块架构总图(动起来看)

Coze Loop 后端遵循 DDD(领域驱动设计)分层,业务被拆成 6 个独立模块,外面统一套一层网关。下图那颗发光小球模拟"一次 HTTP 请求从网关落到具体业务模块"的路径:

网关层  ·  backend/api/(Hertz)
router_gen.goIDL 生成的路由
middlewareSession / Locale
handler.goHandler 桥接层
本地 Kitex 客户端进程内转发
业务模块层  ·  backend/modules/
prompt提示词开发
evaluation评测实验
data数据集
observabilityTrace 观测
地基模块  ·  foundation / llm
foundation用户/空间/鉴权
llm多模型协议适配
EinoLLM 调用框架
Wire依赖注入组装
基础设施  ·  infra/
MySQL业务数据
Redis缓存/限流
ClickHouseTrace 存储
MinIO / RocketMQ文件/消息

6 个业务模块各自的职责边界(后面 20 天会逐一拆开):

prompt

Prompt 创建、版本、调试——Day 05/09/10 的主角。

evaluation

评测集、评估器、实验——Day 12/13 的主角。

data

数据集管理,评测的"原材料"——Day 11 的主角。

observability

Trace 全链路追踪与查询——Day 14 的主角。

foundation

用户/空间/鉴权,全平台地基——Day 08 的主角。

llm

基于 Eino 的多模型协议适配——Day 10 的主角。

为什么拆成 6 个模块? 每个模块内部还会再分 application / domain / infra 三层(Day 06 细讲),模块之间不直接互调,而是通过"本地 Kitex 客户端"(Day 05)互相访问,这样每个模块可以独立开发、独立测试,边界清晰。
02

怎么用这份教程

⏱️

每天 30 分钟

一天一个独立页面,跟着"今日小结 + 动手 5 分钟"收尾再关。

👶

零基础友好

不假设你懂 DDD/Hertz/Kitex/Thrift,每个术语首次出现都有大白话解释。

📍

真实路径引用

关键代码标 文件路径,可在真源码里跳转对照。

一条主线:整份教程围绕"从项目全景,到跑通一条完整业务链路,再到评测/观测这些平台特色能力"展开——第 1 周建立心智并本地跑起来,第 2 周纵向切开一条 Prompt 请求的完整生命周期,第 3 周进入评测与可观测性,第 4 周补齐前端视角并收官串讲。
W1

第 1 周 · 项目全景与部署

它是什么、怎么跑起来、进程如何启动
01

项目全景:它是什么

Coze Loop = AI Agent 开发运维平台,和 Coze Studio 的区别,6 大模块与目录结构。

≈30 min · 已就绪 NEW开始学 →
02

Docker 跑起来

docker-compose 一键部署,配火山方舟模型,MySQL/Redis/ClickHouse/MinIO/RocketMQ 全家桶。

≈30 min · 已就绪开始学 →
03

进程怎么启动

main.go:newComponent → api.Init → consumer → api.Start,基础设施组件的组装顺序。

≈30 min · 已就绪开始学 →
04

HTTP 网关与路由

Hertz 框架、router_gen.go 自动生成的路由、Session/Locale 中间件链。

≈30 min · 已就绪开始学 →
05

Handler 桥接模式

APIHandler、invokeAndRender、"本地 Kitex 客户端"——进程内调用而非网络 RPC。

≈30 min · 已就绪开始学 →
W2

第 2 周 · 分层与契约

DDD 分层、IDL 契约、纵切一条完整请求链路
06

DDD 分层与 Wire

application/domain/infra 三层、依赖方向、wire.go 自动装配依赖注入。

≈30 min · 已就绪开始学 →
07

IDL 契约入门

契约先行、idl/thrift 目录地图、kitex_gen vs loop_gen、thrift→Go→TS 三步生成。

≈30 min · 已就绪开始学 →
08

Foundation:用户/空间/鉴权

为什么每个业务模块都先过这一层,用户/权限/工作空间三件套。

≈30 min · 已就绪开始学 →
09

Prompt 读路径纵切

CreatePrompt 从 Handler 到 MySQL 事务写入的完整纵切面,DTO→DO→PO 数据形状演变。

≈30 min · 已就绪开始学 →
10

Prompt 调试与 LLM Runtime

调试执行链路、llm 模块 Runtime、Eino 多协议适配、model_config.yaml。

≈30 min · 已就绪开始学 →
W3

第 3 周 · 评测与观测

数据集、评估器、实验主链路、Trace 全链路观测
11

Dataset 数据集

评测的"原材料"从哪来:数据集的结构、Schema、导入与版本管理。

≈30 min · 已就绪开始学 →
12

评测集与评估器

评测集怎么组织、评估器(Evaluator)怎么给结果打分,内置与自定义评估器。

≈30 min · 已就绪开始学 →
13

实验主链路

一次评测实验(Experiment)从提交到出结果的完整调度与执行链路。

≈30 min · 已就绪开始学 →
14

Trace 观测

observability 模块、Span 与 Trace 数据模型、ClickHouse 存储与查询。

≈30 min · 已就绪开始学 →
15

跨模块组装

Prompt、Evaluation、Data、Observability 如何通过本地客户端互相协作完成一次评测。

≈30 min · 已就绪开始学 →
W4

第 4 周 · 前端与收官

前端分层视角、IDL 端到端、动手改一处功能
16

前端壳与路由

frontend 目录结构、Rush.js monorepo、页面壳层与路由怎么组织。

≈30 min · 已就绪开始学 →
17

前端分层一页通

Adapter 模式、loop-pages/loop-adapter 等分层包,一页看懂前端架构。

≈30 min · 已就绪开始学 →
18

IDL 端到端

从改一个 .thrift 文件,到前后端类型同步生效的完整端到端流程演练。

≈30 min · 已就绪开始学 →
19

改一处小功能

动手实战:跟着教程真实修改一处后端小功能,走完开发到验证的完整流程。

≈30 min · 已就绪开始学 →
20

收官串讲

20 天全局回顾、架构设计哲学、继续深入源码的学习路线建议。

≈30 min · 已就绪开始学 →

全部 20 天已就绪。建议按顺序学。准备好了就从 Day 01 · 项目全景 开始。