快速开始指南
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项目骨架
按照以下步骤:
- 问题驱动 - 理解为什么要这样做
- 代码示例 - 按照教材写代码
- 自测清单 - 检查理解
- 作业 - 动手实现
第四步:持续学习(每天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的"问题解答"部分有详细答案 |
下一步
现在你可以:
- 立刻开始 → Day 1 - Go项目骨架
- 先了解架构 → 学习地图
- 看快速参考 → 参考资源
- 查系统设计 → 系统设计指南
准备好了吗? 👉 现在就开始Day 1!