Skip to content

第 7 阶段:Go 与高性能 Agent 服务 ​

周期: 4 周(Phase 7 / Week 1-4,独立编号,非全局周号)——进阶阶段,主线 Phase 1-6 完成后开始目标: 系统掌握第二后端语言 Go,并用它做出一个 Agent 基建方向的作品集项目(高性能 LLM 网关)。 关键产出物: 可部署、可压测、有 README 的 Agent 网关 + "能用 Go 干活"的简历标签

阶段定位(先想清楚再开始) ​

主线到 Phase 6 已经完成。 6 个阶段走完,你已经具备独立设计、实现、部署、评测一个 Agent 系统的能力,转型目标已达成。本阶段是进阶投资,不是必修课——适合放在求职期(面试淡季)或入职后的缓冲期,投入 4 周兼职时间。

为什么值得学 Go:

  1. Agent 基建岗位的语言偏好。 LLM 网关、Agent 平台、高并发推理服务等基建方向,Go 是事实上的主流选择(Docker、Kubernetes 生态同源)。你在 Phase 6 面试题里见过"Agent 服务的并发、成本、监控怎么做"——Go 就是把这类问题答漂亮的工具。
  2. 读懂 Go 生态的 Agent 开源源码。 MCP 官方 Go SDK、Ollama、各类 LLM 代理/网关项目都是 Go 写的。读得懂源码 = 能抄到最一线的工程设计,而不是只看二手教程。
  3. 第二语言让工程理解升级。 用过 Python 的 asyncio 再学 Go 的 goroutine/channel,你会真正理解"并发模型"是什么,而不是"会用某个库"。这种对比带来的理解深度,是只学一门语言永远到不了的。

为什么放在最后而不是中间: 主线的第一优先级是最短路径拿到 Agent 工程师职位。中途插一门语言会推迟求职,且没有 Agent 场景做载体、Go 只能干学。现在你手上有 Phase 1-6 的全部知识和项目,Go 从第一周就能以"Agent 基建"为载体学习——每一行代码都在为作品集服务。

关键认知 ​

Go 与 Python 的心智模型差异(学习全程的锚点对比表) ​

维度Python(你已掌握)Go(本阶段掌握)
运行方式解释执行 + 虚拟机编译为单个静态二进制
类型动态类型 + Type Hints(可选)静态类型(编译期强制)
错误处理异常(try/except,可不安处理)显式 error 返回值(不处理编译都过不了 lint)
并发模型asyncio 协程(单线程事件循环,颜色函数)goroutine + channel(CSP,任意函数都是并发的)
继承class 继承没有继承,struct 嵌入 + interface 组合
部署产物解释器 + 依赖环境一个二进制文件,扔进 scratch 容器就能跑

学习策略与 Phase 1 相同:锚点对比。 Phase 1 你用 JS/TS 做锚点学 Python;这次用 Python + TS 双锚点学 Go。每遇到一个新概念,先问"这在 Python 里对应什么?在 TS 里呢?设计差异为什么存在?"——差异处就是理解增长处。

一个贯穿全阶段的心智转变 ​

Python 里并发是"库"(asyncio),Go 里并发是"语言"。 go 一个关键字就能起并发,channel 是一等公民。这意味着你不再需要区分 sync/async 两套 API(Python 里 httpx vs aiohttp 的割裂在 Go 里不存在),但也意味着数据竞争的风险无处不在——go test -race 会成为你的日常。这个转变的深度理解是本阶段的认知核心,比语法重要 10 倍。

进度追踪 ​

⏱ 耗时参考(预估,第一轮内测后补真实数据)

学习者画像实际/计划周数卡点高发周
本路线毕业生(Phase 1-6 完成)1.0-1.2x(4-5 周)Week 2(channel/select 并发模型)、Week 3(SSE 透传)
期间在职、投入不足 10h/周1.4-1.6x(6 周)Week 3(网关项目周最容易断)
之前翻过 Go 语法1.0x(4 周)Week 2(语法熟但并发模型仍要重学)

关键提醒: 有两门语言基础的人学 Go,语法从来不是卡点,并发模型和"显式一切"的工程文化才是。Week 2 觉得 channel 别扭是正常的,坚持写完 worker pool 练习就会通。

回填约定: 学习本阶段时,每周用复盘模板记录实际耗时;本阶段完成后,把实测周数回填到上表,并将标题中的"预估"改为"实测"。

  • [ ] Week 1 - Go 语法速通(对比 Python/TS 学)
  • [ ] Week 2 - 并发模型 + HTTP 服务 + 工程化
  • [ ] Week 3 - 网关项目核心(转发 + 流式 + 路由 + 限流)
  • [ ] Week 4 - 缓存 + 可观测 + 部署 + 压测 + 作品集化
  • [ ] 阶段产出物:Agent 网关上线 + 压测报告 + README

降级提示: 时间不够时——P2(可砍):压测报告优化、技术博客、响应缓存的语义升级;P1(降为最低可行):缓存只做"非流式 + 精确 key"、可观测只做结构化日志;P0(不可砍):Week 1-2 语言与并发基础 + 网关的多模型转发 + SSE 流式 + 基础限流 + Docker 部署。网关没有流式和限流就不叫网关,砍了等于没学。


Week 1 - Go 语法速通(对比 Python/TS 学) ​

核心思路: 与 Phase 1 完全相同的教学法——你是程序员,用对比学最快,优先掌握 80% 场景的 20% 语法。

本周学什么(一句话概览): 变量与类型系统、slice/map、struct 与组合、interface 与显式错误处理、go mod 与 testing。详细内容见 每日计划。

产出物 ​

Go 版 CLI 聊天机器人 v1: 复刻 Phase 1 Week 4 的 chatbot(命令行交互、多轮对话、流式输出)。写完把两版代码放在一起看——这门语言的性格就刻在这个对比里。

推荐资源 ​


Week 2 - 并发模型 + HTTP 服务 + 工程化 ​

核心思路: 本周是全阶段的认知核心。goroutine/channel/context 是 Go 区别于一切脚本语言的灵魂,也是 Agent 基建岗位面试的必考点。

本周学什么(一句话概览): goroutine 与数据竞争、channel 与 select、worker pool、context 超时取消、net/http 服务与中间件、golangci-lint 与标准项目布局。详细内容见 每日计划。

产出物 ​

并发 fetcher 工具: 并发抓取 N 个 URL(可配并发数、超时、重试),go test -race 干净通过。这个小工具就是网关的 embryo——Week 3 的转发与并发调度全是它的放大。

推荐资源 ​


Week 3 - 网关项目核心 ​

核心思路: 从本周起进入项目驱动。你要做的东西业界有成熟对照物(LiteLLM、OneAPI 等)——先自己设计,再对照它们的设计 diff 思路。

本周学什么(一句话概览): 网关架构与 openai 兼容协议、反向转发与多模型路由、SSE 流式透传、令牌桶限流、超时与重试。详细内容见 每日计划。

产出物 ​

网关 MVP: 一个进程、一个 openai 兼容端点,按路由规则把请求转发到至少 2 个模型厂商,流式请求全程透传,超限请求被令牌桶拒绝。Phase 6 的 chat 前端改个 base URL 就能直接接到这个网关上——这是最好的集成验收。

推荐资源 ​


Week 4 - 缓存 + 可观测 + 部署 + 压测 ​

核心思路: 把 MVP 打磨成能写进简历的作品:有数据(压测报告)、能一键部署(Docker)、能讲清设计(README)。与 Phase 6 作品集打磨的方法论完全同构。

本周学什么(一句话概览): 响应缓存、slog 结构化日志与请求指标、Docker 多阶段构建与云端部署、hey/wrk 压测与 P50/P95 优化、README 作品集化。详细内容见 每日计划。

产出物 ​

  • 网关 Docker 化并部署到 Fly.io / Railway,有公开端点
  • 压测报告:并发梯度下的 P50/P95/QPS,以及一处性能优化的前后对比
  • 完整 README:架构图、设计取舍(为什么用 channel 不用锁、为什么缓存只做非流式)、压测数据、快速开始

推荐资源 ​


阶段总结与自检 ​

完成标准 ​

  • [ ] 能向面试官讲清 goroutine/channel 与 asyncio 的模型差异,以及各自适用的场景
  • [ ] 网关可演示:openai 兼容端点 → 按路由转发到 ≥ 2 家厂商,流式对话全程可见
  • [ ] 有限流、超时、重试;go test -race 干净通过
  • [ ] Docker 部署上线,有公开端点
  • [ ] 压测报告有 P50/P95 数据,README 有设计取舍论述
  • [ ] 能读懂 MCP 官方 Go SDK 的示例源码并跑通一个 server

面试故事线(这个项目怎么讲) ​

"我注意到 Agent 基建岗位普遍用 Go,于是用 Go 写了一个 LLM 网关:openai 兼容协议、多厂商路由、SSE 流式透传、令牌桶限流。压测从 XX QPS 优化到 XX QPS,P95 控制在 XX ms。过程中最深的体会是 Go 的并发模型和 Python asyncio 的本质差异……"

数字是你压测出来的真实数据——这也是为什么 Week 4 的压测是 P1 而不是 P2:有数据的基建项目在面试里比十个 CRUD 有说服力。

学完之后 ​

  • 把网关接入你的 Phase 6 作品集项目(chat 前端 → 网关 → 模型厂商),让它从"练习"变成"架构的一层"
  • 进阶方向:给网关加成本核算与配额(Phase 6 的成本控制议题)、加 fallback 路由(主模型挂了自动切备用)、读 One API 源码对照你的设计
  • Go 的下一站:读 Docker/K8s 生态里你感兴趣的项目源码,或给 MCP Go SDK 提一个 PR