Day 01 / 共 20 天 · 第 1 周 环境与骨架

项目全景:它是什么

今天不写代码,只建地图。目标:搞清楚 Coze Loop 是个什么平台、和大家更熟悉的 Coze Studio 有什么区别、仓库里六大模块分别管什么、代码大概在哪。这张地图会贯穿后面 19 天。

📍 你在整门课的位置 · 第 1 周 环境与骨架(共 4 周 · 20 天)
D1 项目全景 D2 Docker 跑起来 D3 进程启动 D4 HTTP 网关 D5 Handler 桥接
L01

Coze Loop 到底是什么

🤔 痛点:写了个 Agent,上线之后怎么知道它有没有变笨? 你调好了一个 Prompt,上线跑了两周,忽然有人反馈"AI 回答得没有以前准了"。你怎么证明?怎么找到是哪次改动导致的?靠人肉翻聊天记录显然不现实——你需要一套"给 AI 应用做体检"的系统。这就是 Coze Loop 要解决的问题。
💡 本质:AI Agent 的开发运维平台(不是造 Agent 的平台) README.cn.md 开篇原话:"Coze Loop 是一个面向开发者,专注于 AI Agent 开发与运维的平台级解决方案,提供从开发、调试、评估、到监控的全生命周期管理能力"。注意关键词是"开发与运维"——它不负责画流程图拖节点搭 Agent,而是负责 Agent 做出来之后的"调优 + 质检 + 巡检"三件事。

🎯 一句话:Coze Loop 是给 AI Agent 用的"Prompt 调试台 + 自动化质检中心 + 全链路监控台"——三块拼在一起,帮你把"AI 是不是真的变好了"这件事,从凭感觉变成看数据。

README.cn.md 里给出了三大能力,对应三个模块:

能力大白话对应模块
Prompt 开发可视化 Playground 改 Prompt、对比不同模型效果、管版本prompt
评测用一批标准问答"考"你的 Prompt/Agent,自动打分(准确性/简洁性/合规性)evaluation + data
观测把一次调用从用户输入到 AI 输出的全过程录下来,出问题能回放observability
🍼 类比:体检中心 把 Coze Loop 想成"AI 应用的体检中心":Prompt 模块是问诊台(医生和你面对面调参数);评测模块是标准化体检套餐(同一套题给不同"病人"做,自动出报告);观测模块是住院监控仪(实时录下每一次心跳)。三者共用同一套"病历系统"(foundation 用户空间)和"检验科"(llm 模型调用)。
开源版 vs 商业版:README 说"Coze Loop 在商业化版本的基础上,推出开源版免费对开发者开放核心基础功能模块"。也就是说你现在读的这个仓库,是商业版抽出来的核心引擎——功能完整但没有商业版的多租户计费等企业能力。这和 Coze Studio 开源版的定位是一个套路。
L02

和 Coze Studio 的区别(新手最容易搞混)

🤔 痛点:名字都带"Coze",是不是同一个东西换了个皮? 很多人第一次看到 coze-loop 会以为它是 coze-studio 的另一个版本或者子模块。完全不是——它俩是"生产 Agent"和"体检 Agent"的关系,代码库、技术栈、职责都不同。
💡 本质:Studio 造 Agent,Loop 管 Agent 的质量 Coze Studio 是可视化搭建平台:拖节点、连工作流、接知识库、发布成一个能对话的智能体——它关心的是"Agent 怎么造出来"。Coze Loop 关心的是"造出来的 Agent(或者其中一段 Prompt)到底靠不靠谱、有没有退化、出了问题能不能查到根因"——它不负责造,只负责调优、质检、巡检。
维度Coze StudioCoze Loop
核心问题怎么一个 AgentAgent/Prompt 造出来后靠不靠谱
核心产物可发布、可对话的智能体应用Prompt 版本、评测报告、Trace 记录
典型用户动作拖节点、连插件、发布 Bot改 Prompt、跑评测集、查一条慢请求的调用链
后端分层关键词domain/crossdomain(Agent/Workflow/Knowledge/Plugin)modules/<domain>/{application,domain,infra}(DDD 四层)
关系两者都用 Eino 调大模型;实际使用中常常是"Studio 造 Agent → Loop 给 Agent 的 Prompt 做评测和观测"
🍼 类比:装修公司 vs 质检公司 Coze Studio 像装修公司(帮你把房子设计施工出来),Coze Loop 像第三方质检公司(房子装完了,来检测甲醛超不超标、承重墙有没有问题、日后维修要看哪个房间的监控)。两者可以合作,但干的是完全不同的活。
⚠️ 小白常见误解:以为装了 Coze Studio 就自动有 Coze Loop 的评测/观测能力——其实这是两个独立仓库、独立部署的系统,商业版里打通了,开源版需要你自己各自部署,用 SDK(cozeloop-go 等)把 Trace 上报过去对接。
L03

六大业务模块总览

💡 本质:backend/modules/ 下正好 6 个目录,一一对应产品能力 这不是巧合——Coze Loop 后端是严格按业务域划分的 DDD 架构,backend/modules/ 下每个子目录就是一个"业务模块",模块内部再分 application/domain/infra 三层(Day 06 细讲)。今天先记住六个名字和各自的角色。

prompt

Prompt 的编写、调试、版本管理(草稿/提交/回滚)、Playground 流式调试。今天到 Day 10 的主角。

evaluation

评测集、评估器(Evaluator)、实验(Experiment)——自动化地给 Prompt/Agent 输出打分。

data

数据集(Dataset)与标签(Tag)管理,是评测模块的"考卷仓库"。

observability

Trace 上报与查询、Span 检索、任务调度——全链路可观测性的落地。

foundation

用户、空间(Workspace)、鉴权(Auth)、文件服务——所有模块都要先过这里(Day 08 细讲)。

llm

模型接入与运行时:管理模型配置、通过 Eino 框架统一调用各家大模型(Day 10 细讲)。

模块之间怎么协作? 后面 Day 04/05 会看到:真实请求要经过 Foundation 鉴权,Prompt 模块要调用 LLM 模块跑模型,Evaluation 模块要调用 Data + Prompt + LLM 三个模块——但它们从不直接 import 彼此的内部包,而是通过一层"本地 Kitex 客户端"互相调用(这是 Coze Loop 一个很特别的设计,Day 05/06 会揭秘)。
L04

仓库顶层目录地图

顶层跑一遍 ls,除了几个说明文档,真正的"地盘"是这 5 个目录:

coze-loop/
├── backend/    ★★ Go 后端服务,DDD 六模块(本教程主战场)
├── frontend/   ★  Rush.js 管理的 TS/React 单体仓库,59 个包
├── idl/        ★  Thrift IDL:前后端共享的接口契约(Day 07 细讲)
├── release/    ★  Docker Compose / Helm Chart 部署配置(Day 02 细讲)
├── docs/       ★  guidance(部署/IDL 指南)+ reference(模块索引)
├── common/     Rush 管理的 git-hooks
└── README.cn.md / ARCHITECTURE.md / Makefile / rush.json ...
读源建议:跟着这个顺序——先 backend/cmd(进程怎么起,Day 03)、再 backend/api(请求怎么进来,Day 04-05)、然后 backend/modules/prompt(业务怎么分层,Day 06/09),最后 idl/(契约从哪来,Day 07)。本教程 10 天基本就是这条主线。

backend 内部顶层同样值得先扫一眼(ARCHITECTURE.md 有完整表格,Day 03-06 会逐个进去):

目录职责架构不变量
cmd/服务入口(main.go / consumer.go)只做启动编排,不含业务逻辑
api/HTTP 路由 + handler(Hertz 框架)只做参数校验和转发
modules/6 个 DDD 业务模块模块间不直接互调
infra/共享基础设施(DB/Redis/CK/MQ/中间件)被 modules 引用,不引用 modules
kitex_gen/ / loop_gen/Thrift 生成代码禁止手动修改
L05

后端 DDD 分层速览(今天先看个轮廓)

ARCHITECTURE.md 明确画出了一次请求从上到下要经过的四层。今天只建立直觉,Day 06 会拿真实代码逐层拆开。

api/ · 门卫
Handler参数校验
RouterIDL 生成
MiddlewareSession/Locale
application/ · 经理
用例编排
Wire DI装配依赖
domain/ · 专家
entity领域模型
service业务规则
repo仓储接口
infra/ · 水电工
repo 实现MySQL/Redis
rpc调其他模块
依赖方向铁律api → application → domain ← infra。domain 层只定义接口("我需要一个能存 Prompt 的仓库"),infra 层负责实现("用 MySQL 存")。domain 绝不反向引用 infra——这样领域规则可以脱离数据库单独测试。
L06

先混个脸熟:术语表

后面会反复出现这些词,今天先认识,不用记细节:

名词大白话解释哪天细讲
Hertz字节 CloudWeGo 团队的 Go HTTP 框架,Coze Loop 用它接收请求Day 04
KitexCloudWeGo 的 RPC 框架,这里被用来做"进程内本地调用"而不是跨机 RPCDay 05
Thrift IDL接口描述语言,一份 .thrift 文件生成前后端都能用的类型和接口Day 07
WireGoogle 的依赖注入代码生成工具,帮你手写"把哪些零件组装成哪个大对象"Day 06
EinoCloudWeGo 的 Go LLM 应用框架,Coze Loop 通过它统一调用各家大模型Day 10
Span / Trace一次调用链路里的"一段"和"整条",观测模块的核心数据单位后续周
Workspace 空间团队隔离单位,几乎所有资源(Prompt/数据集)都挂在某个空间下Day 08
L07

今日小结 + 动手

🧠 今天你应该能回答

  • Coze Loop 是什么?(AI Agent 开发运维平台:Prompt 调试 + 评测 + 观测,不负责搭 Agent)
  • 它和 Coze Studio 的关系?(Studio 造 Agent,Loop 给 Prompt/Agent 做质检和监控,两个独立系统)
  • 六大模块分别是什么?(prompt / evaluation / data / observability / foundation / llm)
  • DDD 四层依赖方向?(api → application → domain ← infra,domain 不依赖 infra)
🎵 记忆口诀调 Prompt、跑评测、看链路,三件套都靠 Foundation 撑腰、LLM 兜底」——今天记住这句,后面 9 天都是在往这个骨架上填肉。

✋ 动手 5 分钟

# 1. 看项目定位
head -30 README.cn.md

# 2. 感受六大模块
ls backend/modules/
# 输出应为: data evaluation foundation llm observability prompt

# 3. 看顶层目录地图
ls backend/ frontend/ idl/ release/ docs/

# 4. 瞄一眼架构文档的分层说明(明天会用到)
head -70 ARCHITECTURE.md
明天预告 · Day 02:把它跑起来!用 make compose-up 一键拉起 MySQL/Redis/ClickHouse/MinIO/RocketMQ 五件套 + 应用容器,浏览器打开 localhost:8082 看看真实界面长什么样,顺便把模型接进去。
← 返回 20 天总目录 下一天 · Docker 跑起来 →