快速开始指南

5分钟看懂这个项目

是什么?

一个30天学习计划,从零到一完整实现一个Go版的企业级agent系统,包括:

  • ✅ Agent Runtime(LLM + Tools + State Management)
  • ✅ RAG Pipeline(Chunking + Embedding + Retrieval)
  • ✅ Workflow & Security(Approval + RBAC + Guardrails)
  • ✅ Production(Docker + Observability + Eval)

为什么要做这个?

  • 面试友好 - 涵盖Go、系统设计、agent架构的所有核心点
  • 实战对标 - 对标真实的企业agent系统(Copilot、Claude等)
  • 完整性 - 从API到数据库到监控,一个系统的全部环节都涉及
  • 深度 - 不是跟风做demo,而是理解为什么这样设计

谁适合?

  • Go后端工程师想深度理解agent系统
  • 准备高频面试的候选人
  • 想从toy project升级到enterprise architecture的人

怎样开始?

前置条件(15分钟检查)

# 1. 检查Go版本(需要1.21+)
go version
# 应该看到:go version go1.21.x or higher

# 2. 检查项目已下载
cd /Users/zhangruobin/Episodes/Areas/interview-prepare
ls -la

# 3. 看看项目结构
tree -L 2

第一步:打开文档(现在)

你正在读这个文档,说明成功了 ✅

第二步:了解学习地图(10分钟)

点击左侧导航:学习地图

或直接看:

第三步:开始Day 1(2-3小时)

打开 Week 1总览,然后进入:

👉 Day 1 - Go项目骨架

按照以下步骤:

  1. 问题驱动 - 理解为什么要这样做
  2. 代码示例 - 按照教材写代码
  3. 自测清单 - 检查理解
  4. 作业 - 动手实现

第四步:持续学习(每天2-3小时)

  • Day 1-7 (Week 1) - Agent基础,~15小时
  • Day 8-14 (Week 2) - RAG系统,最复杂,~20小时
  • Day 15-21 (Week 3) - 安全和工程,~15小时
  • Day 22-30 (Week 4) - 生产和面试准备,~20小时

核心学习方法

苏格拉底法(Socratic Method)

每个Day的教材都遵循这个结构:

1️⃣ 问题驱动 └─ 为什么要分割文档? └─ Chunk大小怎样选择? └─ 怎样保证准确性? 2️⃣ 层层递进的代码 └─ 版本1: 最简单实现(SimpleChunk) └─ 版本2: 改进实现(SmartChunk) └─ 版本3: 生产实现(WithMetadata) 3️⃣ 关键概念 └─ Token vs Characters └─ Metadata的用途 └─ 为什么这个设计? 4️⃣ 自测清单 └─ [ ] 我能解释为什么要分割文档? └─ [ ] 我能讲清Chunk大小的权衡? 5️⃣ 实战作业 └─ 任务1: 准备真实数据 └─ 任务2: 实现chunker └─ 任务3: 生成chunks.jsonl 6️⃣ 常见问题Q&A └─ Q: 段落太长怎么办? └─ A: 需要继续分割...

关键点:

  • ❌ 不要死记硬背代码
  • ❌ 不要跳过"问题驱动"部分
  • ✅ 先理解Why,再看How
  • ✅ 自己写代码,不要复制粘贴
  • ✅ 每个Day末做自测清单

推荐学习流程

每天3小时的建议分配

0:00 - 0:15 阅读"问题驱动"部分 ↓ 在脑子里思考答案(不查资料) 0:15 - 0:30 看教材的"答案揭示"对比自己的想法 ↓ 理解核心概念 0:30 - 2:00 跟随"代码示例"部分写代码 ↓ 不要复制粘贴,要敲进去 2:00 - 2:30 做"自测清单" ↓ 答不出来就回头重读 2:30 - 3:00 做"作业"部分 ↓ 把理论付诸实践

周末review(2小时)

每周末花2小时:

  • 回顾这周的5-7个Day
  • 把每个Day的自测清单再做一遍
  • 看看有没有理解不够的地方
  • 更新 PROGRESS.md

常见坑位避坑指南

❌ 坑1:想直接看代码

错误现象: "我直接看Day 1的code-examples就行了,不用看教材"
为什么错: 代码只是表象,理解为什么这样设计才是关键
正确做法: 先读问题驱动和答案揭示,再看代码

❌ 坑2:跳过自测清单

错误现象: "我已经看完代码了,可以进Day 2了"
为什么错: 自测清单用来验证深度理解,跳过会导致后续Day理解困难
正确做法: 每个Day必须完成自测清单,答不出来就回头重读

❌ 坑3:复制粘贴代码

错误现象: "我把教材的代码复制到IDE里跑起来了,这样就懂了"
为什么错: 打字的过程本身就是学习,记忆会更深
正确做法: 自己敲代码,遇到错误要理解为什么错

❌ 坑4:忽略算法题

错误现象: "我只做Day的代码,算法题可以跳"
为什么错: 算法题穿插在Day里,是面试必考
正确做法: 每个Day都有配套的3-4道算法题,必须用Go完整实现

❌ 坑5:Week间跳跃

错误现象: "Week 1太简单了,我跳到Week 2"
为什么错: Week 1的agent loop是Week 2-4的基础
正确做法: 必须Week 1完整做完,再做Week 2


卡住了怎么办?

问题 解决方案
看不懂某个概念 回到前一个Day,补基础。该概念的background会在前面的Day讲清
代码跑不起来 检查error message,按error message修改。不要瞎改试试看
作业不会做 先完整看懂该Day的代码示例,再看常见问题Q&A部分
进度太慢 正常的。Day 4和Day 6是最难的,预留4-5小时。不要硬赶
想看答案 每个Day的"问题解答"部分有详细答案

下一步

现在你可以:

  1. 立刻开始Day 1 - Go项目骨架
  2. 先了解架构学习地图
  3. 看快速参考参考资源
  4. 查系统设计系统设计指南

准备好了吗? 👉 现在就开始Day 1!