Files

522 lines
37 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: plan.index
title: 转岗计划总纲
type: index
domain: plan
stack: []
---
# 转岗计划总纲:Python AI 应用 / Agent 开发为主,Go 全栈为辅(16 周)
这是整个计划的入口文件。换了电脑或者隔一段时间回来,先看第 13 节“进度记录”,再打开当前所在周的计划文件继续做。
**状态**:未开始 / 进行中 / 已完成(   )
**开始日期**:
**当前所在周 / 天**:
---
## 1. 背景、起点和目标
### 背景
- 7 年 Web 前端(Vue / React),本科。
- AI 写代码越来越多,“只会把页面写出来”的价值在下降,需要往“能设计、能交付、能讲清原理”的方向走。
- 第 4 节的招聘调研显示:AI Agent 岗位的主语言是 **Python**,Go 多数只是加分项。所以本计划以 **Python + AI 应用**为求职主线;Go 压缩到 3 周,做出一个完整的全栈项目作为基础和加分项。
### 起点(已经具备,不用从零学)
- 能独立开发和改通业务前端,能和后端 Agent 网关联调接口。
- 在公司里接触过真实的多 Agent 产品链路:意图识别 → 多角色研讨 → 总结 / 交付 / 过程报告。
- 踩过真实的生产问题:流式连接断开、模型额度不足、状态没有回写、数据库表结构和代码不一致、关掉页面后编排中断。
这些经历是转岗最大的本钱,后面会把它们整理成“案例卡”,并做成可以公开演示的项目(**全部脱敏**,见第 10 节)。
### 目标岗位(按优先级)
1. AI Agent 开发 / 大模型应用开发工程师(应用侧)
2. AI 全栈工程师(前端 + Python 或 Go 后端 + 大模型集成)
3. 全栈工程师(前端 + Go / Python 后端)
### 终点(4 条必须同时满足,才算这条路径走完)
1. **能讲清**:一张架构图 + 三分钟口述“多 Agent 如何状态机化、状态存在哪、失败怎么办”。
2. **能做小**:一个**不带公司业务外壳**的多 Agent 项目,本地可跑,覆盖编排 + 持久化 + 断点续跑(或写清降级策略)。
3. **能举证**:2 到 3 个“问题 → 根因 → 方案”的案例,优先来自自己在工作中遇到的真实问题(脱敏后)。
4. **能对标岗位**:简历和面试条目写得像“应用侧 Agent 工程师 / AI 全栈工程师”,而不是“改过公司某个页面”。
另外还有两个作品:项目一“团队任务看板”(Go 后端 + Vue 前端)和项目二“RAG 知识库问答”(Python 后端 + React 前端)。
任意一条没满足,都不要提前宣布“学完了”。
### 非目标(故意不做)
- 不以模型预训练、微调为主业。
- 不把公司业务代码开源,也不整仓搬进作品集。
- 不深入 Kubernetes、服务网格、多云部署(微服务、消息队列做到“能讲清概念和取舍、跑过最小示例”)。
---
## 2. 技术栈(已确定)
| 用途 | 选择 | 说明 |
| --- | --- | --- |
| **求职主语言** | **Python 3.12** | 第 4 周开始,AI 岗位的主要要求 |
| Python 工具 | uv(主)、pip / poetry(会看)、ruff、pyright、pytest | |
| Python Web | FastAPI + Uvicorn | 招聘里 FastAPI、Flask 都常见,会一个另一个很快 |
| RAG | 手写主流程 + LangChain 对照;Chroma(默认),了解 Milvus、pgvector;BM25 混合检索、重排 | |
| Agent 框架 | **LangGraph**(主),先手写一遍循环理解原理 | 招聘普遍要求 LangChain / LangGraph 实际经验 |
| 工具与协议 | Function / Tool Calling、MCP | |
| 低代码平台 | Dify 或 Coze(体验 1~2 天) | 能讲清和写代码的取舍 |
| 加分语言 | Go + Gin | 第 1~3 周 |
| 数据库 | PostgreSQL(主学)+ MySQL(差异、索引、事务、隔离级别);SQLite(Agent 项目演示) | 招聘里 MySQL 更多,SQL 大部分通用 |
| 缓存 / 队列 | Redis(缓存、限流、锁、会话记忆、Streams);RabbitMQ 动手、Kafka 概念 | |
| 前端 | Vue 3 + React 19 + TypeScript(你的强项),Vite、pnpm monorepo、Vitest | 第 7 周查漏补缺 |
| 部署 | Docker、Docker Compose、Nginx、Linux 服务器、CI/CD | |
| AI 编程工具 | Cursor / Cursor CLI / Grok Build | 让 AI 写,你负责设计、审查、调试;简历里也写上 |
---
## 3. 十六周总路线
```text
第一段 Go 全栈基础(第 1~3 周) → 项目一:团队任务看板(Go + PostgreSQL + Redis + 队列 + Docker)
第二段 Python、RAG、前端(第 4~7 周) → 项目二:RAG 知识库问答(FastAPI + Chroma + Redis)+ 两个项目的前端
第三段 Agent 主线(第 8~13 周)
阶段0 盘点 + 阶段1 读通画图(第 8 周)
阶段2 五个重点 A~E + 案例卡(第 9 周)
阶段3 多 Agent 项目(第 10~13 周)★主交付 → 项目三
第四段 后端补强、包装与求职(第 14~16 周) 阶段4 + 终点验收 + 投递
```
| 周 | 主题 | 产出 | 计划文件 |
| --- | --- | --- | --- |
| 1 | Go 基础语法 + Gin 写 REST 接口(内存存储)+ 接前端 | `go-learning/`、`todo-api/` | `week01-go-gin.md` |
| 2 | PostgreSQL(兼顾 MySQL):表设计、索引、EXPLAIN、迁移、pgx、事务 + 注册登录 JWT | `todo-api/` 用上数据库和鉴权 | `week02-db-auth.md` |
| 3 | 项目一:看板权限、Redis 缓存 / 限流 / 锁、Redis Streams 队列、Docker + Nginx、CI | `task-board/` | `week03-project1.md` |
| 4 | Python 速成:uv、类型、pytest、asyncio、pydantic、httpx、FastAPI(依赖注入、中间件、鉴权、SSE) | `py-learning/` | `week04-python.md` |
| 5 | 项目二(上):手写 RAG——加载、切分、Chroma、检索、带引用生成、接口、流式 | `rag-qa/` 可用 | `week05-rag-1.md` |
| 6 | 项目二(下):评测、BM25 混合检索、重排、多轮记忆、Redis 缓存、LangChain 对照、Milvus / pgvector、部署 | `rag-qa/` 完成 | `week06-rag-2.md` |
| 7 | 前端工程化查漏:pnpm monorepo、TS、ESLint / Prettier、SSE、Vue 看板、React 问答、Vite vs Webpack、性能、SSR、Vitest、CI | `web/` | `week07-frontend.md` |
| 8 | 阶段 0 盘点 + 脱敏钩子 + 阶段 1 读通与画图 | `notes/00`、`notes/01`、`tools/` | `week08-inventory-architecture.md` |
| 9 | 阶段 2:五个重点 A~E 的小实验 + 案例卡 | `notes/cards/` | `week09-case-cards.md` |
| 10 | 项目三 M1:手写工具调用循环、手写多 Agent 循环、MCP 服务 | `agent-mini/`(手写版 + MCP) | `week10-agent-m1-tools-mcp.md` |
| 11 | 项目三 M2:LangGraph 多 Agent 编排、MCP 工具接入 | LangGraph 版跑通 | `week11-agent-m2-langgraph.md` |
| 12 | 项目三 M3:检查点续跑、interrupt 人机协作、后台作业 + 租约、SSE、长期记忆 | 可演示崩溃恢复 | `week12-agent-m3-persistence.md` |
| 13 | 项目三 M4:评测集、可观测性、文档和映射表、Docker + Dify / Coze 体验 | 项目三完成 | `week13-agent-m4-eval-lowcode.md` |
| 14 | 后端补强:RabbitMQ / Kafka、gRPC、Redis 和 MySQL 面试专题、全部项目部署、CI/CD;第 7 天了解级扩展(ES 混合检索、数据管道、K8s、MongoDB、Node.js、Java、网络 / 安全基础);(可选)Go 网关 | `backend-extend/`、`deploy/`、`notes/extend.md` | `week14-backend-extend-deploy.md` |
| 15 | 阶段 4(上):1~2 个代表项目(链接 / 截图 / 视频 / 负责范围)、从问题到上线案例、AI 编程 + 验证案例(附脱敏会话记录)、简历、STAR、口述稿 | `career/` | `week15-package-resume.md` |
| 16 | 阶段 4(下):面试笔记、算法与计算机基础、8 个跨栈场景练系统设计、模拟面试、终点验收、投递 | 开始投递 | `week16-interview.md` |
**依据 BOSS直聘 2026-10-23 调研的调整**(详见第 4 节):
- Go 保持约 3 周(第 1~3 周)不再加码:34 个有效岗位中 Go 只有 2 个是硬性要求;Python / Agent / RAG 和作品集是重点。
- **AI 编程练习从第 1 周开始**:每周至少一个功能用 AI 编程工具完成并保存验证证据,第 15 周整理成应聘案例(每个周计划文件的“本周相关专题”一节都有这条)。
- 第 14 周第 7 天改为了解级扩展(ES、数据管道、K8s、MongoDB、Node.js、Java、网络 / 安全);算法和计算机基础在第 16 周。
- 第 15 周按招聘方要求的应聘材料准备:代表项目的链接 / 截图 / 视频 / 负责范围、从问题到上线的案例、AI 编程案例和质量控制方式。
- 每个周计划文件末尾的“本周相关专题”由 `tools/gen_week_topics.py` 自动生成,链接到 `topics/` 和 `scenarios/`。
精力不够时可以整体拉长,但顺序不要变,也不要跳过验收。
---
## 4. 岗位要求对照
### 调研说明
两次调研,都只记录实际看到的内容,样本不大,只能看出方向,不代表整个市场。建议每过一个月自己再搜一次,在 [research/](../research/index.md) 新建一个文件并更新这一节。
| 日期 | 来源 | 搜索词 | 样本 | 记录 |
| --- | --- | --- | --- | --- |
| 2026-10-22 | 智联招聘 | “AI Agent开发”“Go全栈” | 约 17 个岗位 | 本节下方的两张表 |
| 2026-10-23 | BOSS直聘(北京,登录后只读) | 全栈工程师 Go / AI应用开发 / Agent开发 / 大模型应用 全栈 | 读了 37 个,有效约 34 个;薪资因字体混淆读不到 | [research/boss-2026-10-23.md](../research/boss-2026-10-23.md) |
### 学历和经验
- 智联:约 95% 的岗位写的是“本科”;有 1 个要求统招硕士,1 个标注统招本科;没看到要求 985 / 211 的。经验大多要求 3~5 年。
- BOSS直聘:明确写“统招”的只有 2 个(都是硕士 / 985 方向的视频算法岗,不在本计划的目标范围内),其余基本是本科。
- 结论:成人本科可以正常投递绝大多数岗位;简历如实写“本科”,标了“统招”的岗位也可以投,由对方判断。
### BOSS直聘(2026-10-23)技术出现次数(约数)
| 技术 | 出现的岗位数 | 技术 | 出现的岗位数 |
| --- | --- | --- | --- |
| Agent / 智能体 | 22 | Redis | 9 |
| Python | 21 | LangChain / LangGraph / AutoGen / LlamaIndex | 9 |
| RAG | 17 | MCP / Function Calling / Tool Calling | 9 |
| AI 编程工具(Claude Code / Cursor / Codex) | 16 | Docker | 7 |
| Vue / React | 14 | 向量库(Milvus / FAISS / Chroma) | 7 |
| Prompt 工程 | 13 | LoRA / 微调 | 7 |
| Java | 12 | PostgreSQL | 5 |
| Go(硬性要求只有 2 个) | 10 | Kafka / MQ | 5 |
| MySQL | 10 | CI/CD | 5 |
| TS / JS | 10 | FastAPI、MongoDB、Node.js | 各 4 |
| | | K8s | 3 |
和第一次调研相比,新出现或明显加重的要求:**AI 编程工具 + 对 AI 产出的验证**(不少岗位要求附“用 AI 做过的项目 + 怎么确认它有效”,有的要会话记录)、**Agent 工程化**(规划、上下文工程、Skills、A2A、评测、幻觉防护、Bad Case 分析、成本延迟、可观测性)、**AI 原生前后端**(流式、结构化输出、任务状态、异常恢复)、**RAG 全链路含 Elasticsearch**、**模型侧了解**(多模型接入、vLLM 部署、LoRA)、**数据管道和第三方接口**、**计算机基础**、**MongoDB / ES / K8s**、**Next.js / Node.js**、**Java**(全栈岗位常见)。完整的 12 类要求和代表性岗位链接见[调研记录](../research/boss-2026-10-23.md)。
### AI Agent 开发岗位(按出现频率从高到低)
| 要求 | 本计划在哪一周覆盖 |
| --- | --- |
| Python + FastAPI / Flask | 第 4 周;第 5~6、10~13 周项目里持续用 |
| RAG + 向量数据库(Milvus / Chroma) | 第 5~6 周 项目二(Chroma 实现,Milvus / pgvector 对照) |
| LangChain、LangGraph(要求实际项目经验) | 第 6 周 LangChain 对照实现;第 11~13 周 LangGraph 多 Agent 项目 |
| LlamaIndex;Dify / Coze / RAGFlow / FastGPT | 第 6 周了解 LlamaIndex;第 13 周第 6~7 天动手搭 Dify 或 Coze |
| Function / Tool Calling、MCP | 第 10 周(手写工具调用循环、写 MCP 服务),第 11 周接入 LangGraph |
| Prompt / Context Engineering、Agent 评测 | 第 5 周(提示词、上下文拼接)、第 6 周(RAG 评测)、第 11 周(调提示词)、第 13 周(Agent 评测、可观测性) |
| 工作流编排、Memory、多 Agent(加分项) | 第 11 周(编排)、第 6 周(短期记忆)、第 12 周(长期记忆、持久化、人机协作) |
| Docker、Linux、Git | 第 3 周(Docker、Compose、Nginx、CI),第 6、13、14 周部署;Git 全程 |
| AI 编程工具(Cursor / Claude Code / Codex) | 全程使用并记录;第 10 周把自己的 MCP 服务接进 Cursor;第 15 周整理“AI 编程 + 验证”案例;专题 [ai-coding](../topics/ai/ai-coding/index.md) |
| Go / Java(加分项) | 第 1~3 周 Go;第 14 周可选 Go 网关;Java 只做了解([java-spring 专题](../topics/backend/java-spring/index.md)) |
### Go 全栈岗位
| 要求 | 本计划在哪一周覆盖 |
| --- | --- |
| 后端语言多为“Java / Go / Node / Python 任选其一”,很少只要 Go | Go(第 1~3 周)+ Python(第 4 周起),两门都能拿出项目 |
| React / Vue + TypeScript | 已有强项;第 7 周工程化查漏,两个项目的前端 |
| MySQL、Redis(PostgreSQL 只出现过一次) | 第 2 周数据库(附 MySQL 差异)、第 3 周 Redis;第 14 周 MySQL / Redis 专题 |
| 微服务、消息队列 | 第 3 周 Redis Streams 入门;第 14 周 RabbitMQ 动手、Kafka 概念、gRPC |
| RESTful 接口 | 第 1~3 周 |
| Docker、CI/CD | 第 3 周、第 14 周 |
| “AI 全栈”:RAG / 大模型集成 | 第 5~6 周 项目二 |
### 岗位要求 → 延伸技术栈
招聘里一个词背后往往是一串技术点,面试会顺着问下去。下表是每个要求要准备的延伸内容和学习位置;每周文件里每个知识点都按“解释说明 / 案例 / 代码示例 / 易错点和面试常问”写。
| 岗位要求 | 延伸技术栈(要会的) | 在哪一周 |
| --- | --- | --- |
| Vue / React | Vite、Webpack(能讲差异和常用配置)、TypeScript 严格模式、Pinia / Vuex、Vue Router / React Router、组件库(Element Plus 按需引入)、SSR 基础(Nuxt / Next.js)、性能优化(拆包、懒加载、虚拟列表)、ESLint / Prettier、pnpm monorepo、Vitest 组件测试 | 第 7 周 |
| Python | uv / pip / poetry、类型标注(typing、Protocol)、asyncio、pytest(夹具、参数化、异步测试)、pydantic(校验、配置) | 第 4 周,之后全程 |
| FastAPI | Uvicorn、依赖注入、中间件、鉴权(JWT、HTTPBearer)、生命周期 lifespan、后台任务、SSE、TestClient | 第 4 周第 7 天;第 5、12 周 |
| RAG | 嵌入(Embedding)、切分(chunking)、重排(reranker)、向量库 Milvus / Chroma / pgvector、BM25 + 向量混合检索(RRF)、评测(Hit@K、MRR、拒答) | 第 5~6 周 |
| LangChain / LangGraph | LCEL、工具(tools)、记忆(短期:检查点;长期:Store)、checkpointer、interrupt、LangSmith 等可观测性 | 第 6 周(LCEL)、第 11~13 周 |
| MCP | 传输方式 stdio / Streamable HTTP;三类能力:tools、resources、prompts;客户端调用、接入 Cursor 和 LangGraph | 第 10~11 周 |
| Docker | Dockerfile 多阶段构建、Compose、Nginx 反向代理(含 SSE 配置)、Linux 常用命令、CI/CD | 第 3 周、第 14 周 |
| Redis | 五种数据结构和用途、缓存模式(旁路缓存、穿透 / 击穿 / 雪崩)、分布式锁(SET NX PX + Lua 释放)、限流、Streams 消费组 | 第 3 周、第 6 周、第 14 周 |
| MySQL | 索引(B+ 树、联合索引最左前缀、覆盖索引)、EXPLAIN、事务和隔离级别、MVCC、锁、与 PostgreSQL 的差异 | 第 2 周、第 14 周 |
| 微服务 / 消息队列 | RabbitMQ(交换机、队列、确认、死信)、Kafka(主题、分区、消费组、位移)概念、幂等消费、gRPC 基础(proto、一元调用、流式) | 第 3 周、第 14 周 |
| AI 编程工具(BOSS 16 个岗位) | Claude Code / Cursor / Codex 的工作流(先计划后执行、小步提交)、编写 Skills / 规则文件沉淀团队约定、对 AI 产出的验证(测试、代码审查、真实环境验证)、保留会话记录作为作品证据 | 全程;第 10、15 周;专题 [ai-coding](../topics/ai/ai-coding/index.md) |
| Agent 工程化(BOSS 22 个岗位) | ReAct、规划(Plan-and-Execute)、上下文工程、Skills、多 Agent 和 A2A、Agentic RAG、评测集、幻觉防护和质量门禁、Bad Case 分析、成本和延迟、可观测性 | 第 10~13 周;专题 [agent-design](../topics/ai/agent-design/index.md)、[agent-ops](../topics/ai/agent-ops/index.md) |
| AI 原生前后端 | 流式输出(SSE)、结构化输出(JSON Schema / Pydantic)、任务状态(排队 / 运行 / 等待人工 / 完成 / 失败)、异常恢复(检查点续跑、重试、降级) | 第 5、12 周;专题 [fastapi](../topics/python/fastapi/index.md)、[langgraph](../topics/ai/langgraph/index.md) |
| RAG 全链路 | 文档解析(PDF 表格、OCR)、切分、混合检索(向量 + Elasticsearch BM25)、重排、权限过滤、评测 | 第 5~6 周;专题 [rag](../topics/ai/rag/index.md)、[elasticsearch](../topics/backend/elasticsearch/index.md) |
| 模型侧(了解级) | 多模型 API 接入和路由、降级,vLLM 部署基础(OpenAI 兼容接口),LoRA / QLoRA 是什么、什么时候需要微调 | 第 10、13 周;专题 [llm-serving](../topics/ai/llm-serving/index.md) |
| 数据管道 / 第三方接口 | 批处理和流处理、失败重试、幂等、数据质量校验和告警、第三方 API 限流和字段变化 | 第 14 周;专题 [data-pipeline](../topics/backend/data-pipeline/index.md) |
| MongoDB / Elasticsearch / K8s | MongoDB 文档模型和索引;ES 倒排索引、中文分词、和数据库同步;K8s 的 Pod / Deployment / Service / 探针 / 滚动发布(基础,不深入运维) | 第 6、14 周;专题 [mongodb](../topics/backend/mongodb/index.md)、[elasticsearch](../topics/backend/elasticsearch/index.md)、[k8s](../topics/devops/k8s/index.md) |
| Next.js / Node.js | Next.js App Router、服务端组件、路由处理器做 AI 流式接口;Node.js 的 Express 中间件、NestJS 模块和依赖注入(了解级) | 第 7、14 周;专题 [ssr](../topics/frontend/ssr/index.md)、[nodejs](../topics/backend/nodejs/index.md) |
| Java(全栈岗位常见) | 了解级:能读懂 Spring Boot 的分层(Controller / Service / Repository)和常用注解,能说清和 Go / Python 的差异;不作为主线 | 第 14 周;专题 [java-spring](../topics/backend/java-spring/index.md) |
| 计算机基础 | 面试常见的数据结构和算法题、HTTP / TCP、操作系统(进程线程、内存、I/O)、Web 安全(XSS、CSRF、SQL 注入、CORS) | 第 14、16 周,平时每天一道题;专题 [algorithms](../topics/cs/algorithms/index.md)、[network-os](../topics/cs/network-os/index.md)、[web-security](../topics/cs/web-security/index.md) |
### 对学习重点的影响
1. Python 是主语言,Go 是加分项;Go 只用 3 周(BOSS 34 个岗位里 Go 硬性要求只有 2 个,其他多是“任选其一”),做到“能做出一个带数据库、鉴权、缓存、队列、部署的完整项目”为止。
2. RAG、Agent、LangChain / LangGraph 是硬要求,单独做成项目二和项目三,并补上 Agent 工程化(评测、幻觉防护、Bad Case、成本延迟、可观测性)。
3. 工具调用、MCP、评测、记忆这些“新要求”都要有能演示的代码,而不是只看过文章。
4. **AI 编程能力要拿证据**:全程用 AI 编程工具,但每个功能都要有验证方法(测试、审查、真实运行),保留会话记录,第 15 周整理成“AI 编程案例”。
5. 前端是差异化优势,第 7 周把工程化短板补齐(加 Next.js),两个项目都有像样的界面。
6. MongoDB、Elasticsearch、K8s、Node.js、Java、模型侧只做到“了解级、能回答基础面试题”,不另开项目,避免偏离主线。
7. 计算机基础(算法、网络、操作系统、Web 安全)平时每天少量练习,第 16 周集中复习。
---
## 5. 学习原则和每周文件的写法
1. **每一步都落到文件**:每天都有“学习内容 / 要建的文件 / 运行方式 / 完成标准”。禁止“只看不写”。
2. **每个知识点四件套**:解释说明(是什么、为什么)→ 案例(用在什么场景)→ 代码示例(最小、能运行)→ 易错点 / 面试常问。
3. **AI 写,你审**:代码可以让 AI 生成,但每个文件你都要能讲清楚每一行在做什么,面试时这是最大的区分点。
4. **先手写,再用框架**:RAG 和 Agent 都先手写一遍核心流程,再用 LangChain / LangGraph 重写。
5. **先有评测,再谈优化**:优化要拿数字说话,数字必须是自己跑出来的。
6. **以官方文档为准**:LangChain、LangGraph、MCP、Vite 等更新很快。计划里的代码在 2026-10 按当时的版本实际跑过,文件里标了版本和文档链接;你学的时候如果版本变了,以官方文档为准,并把差异记进对应周的笔记。
7. **边上班边学**:工作日每天 1.5~2 小时,周末多投入一些。不建议裸辞。
8. **只砍不加**:进度落后时按第 6 节砍范围;新想法记到第 12 节“完成后的下一步”。
9. **代码和计划都进 Git**:全部推到 `zhuangang` 仓库,换设备直接接着做。
---
## 6. 时间不够怎么砍
按顺序砍,越靠前越先砍:
1. 所有标了“可选”的内容:第 14 周 Go 网关、Milvus / pgvector 实现、第 7 周 SSR 动手部分(保留概念)。
2. 第 14 周的 Kafka 和 gRPC 动手(保留概念表和面试答案),RabbitMQ 只跑一个例子。
3. 第 7 周:会的部分只做“查漏清单”打勾,不重写;React 问答界面可以简化成一个页面。
4. 第 3 周的 CI 配置(保留本地脚本)、第 2 周的 MySQL 小练习(保留差异速查表,第 14 周再补)。
5. 第 13 周 Dify / Coze 压缩为 1 天,只做知识库问答。
6. **不能砍**:项目二评测、项目三的续跑 / interrupt / SSE、MCP 服务、案例卡、Agent 评测集、简历和口述稿。
整体时间不够时,宁可把 16 周拉成 20 周,也不要跳过第 8~13 周。
---
## 7. 阶段 0~4 和五个学习重点
| 阶段 | 周 | 做什么 | 验收要点 |
| --- | --- | --- | --- |
| 0 盘点 | 第 8 周前 2 天 | 一句话目标岗位、模块清单(通用名)、A~E 自评 | `notes/00-inventory.md` |
| 1 读通画图 | 第 8 周 | 架构图、接口职责表、断点标注、状态机 | 能口述主流程;图上标出“关页面时断在哪一层” |
| 2 案例卡 | 第 9 周 | A~E 每个重点一个小实验 + 案例卡 | 每张卡有“若重做的设计” |
| 3 项目三 | 第 10~13 周 | 多 Agent 项目 M1~M4 | 崩溃恢复可演示、评测有对比、映射表 ≥ 5 条 |
| 4 终点 | 第 14~16 周 | 部署、作品集、简历、面试、投递 | 第 14 节清单全部打勾 |
**五个学习重点(始终抓住这 5 条)**
| # | 重点 | 在工作中的抓手(通用叫法) | 学完应能回答的一句话 |
| --- | --- | --- | --- |
| A | 多 Agent 编排 | 链式 / DAG 编排、主角色派活、各角色交付、共识 | “角色怎么分工、什么时候结束、怎么避免同一个任务被跑两次” |
| B | 状态与权威源 | 草稿 / 作业 / 任务,谁说了算 | “刷新或关页后为什么丢进度,权威数据写在哪” |
| C | 流式与长任务 | SSE、连接断开处理、浏览器里循环 vs 后台作业 | “为什么编排不该只活在浏览器里” |
| D | 人机协作 | 意图澄清、等待用户输入、模型切换 | “Agent 什么时候必须停下来问人” |
| E | 与业务系统集成 | 过程报告、任务状态、鉴权隔离 | “LLM 的结果怎样落到可审计的业务对象上” |
项目三里每个重点都有对应的实现(映射表见第 13 周)。
---
## 8. 案例卡模板(直接复制)
每张卡一个文件,放在 `notes/cards/`。仓库里只放脱敏版本。
```text
标题:
对应重点:A / B / C / D / E
现象:
根因(一层):
根因(系统层,可选):
当时怎么处理 / 未处理:
可迁移结论(面试一句):
若重做的设计:
关联代码/路径:(私有,只写在 notes/private/ 里,不进仓库)
日期:
```
优先写成卡的题目(来自你已经遇到过的问题):
1. 关掉浏览器后,多轮研讨就停了(编排跑在前端)。
2. 分析已经进行到第三步,但任务状态还是“未开始”(权威源 / 回写缺失)。
3. 模型额度或鉴权失败,以及“换模型后恢复”。
4. 主分支升级后某张表缺字段导致接口 500(应用依赖和数据库迁移)。
---
## 9. 每周节奏和戒律
| 日 | 做什么 |
| --- | --- |
| 周一 | 定本周重点(第 8 周以后只选第 7 节中的一条,或一个里程碑) |
| 周二~周四 | 写代码 / 做实验 / 写案例卡 |
| 周五 | 验收:本周有没有“可展示的产出”;没有的话,周末只补交付,不学新东西 |
| 周日 | 30 分钟回顾:对照终点清单调整下一周范围(只砍不加),更新进度记录并 `git push` |
每周文件按“第 1 天~第 7 天”走,周五和周日的检查照做。
**戒律**
- 同一周不同时开“新框架 + 新业务功能 + 新论文”。
- 公司需求和学习冲突时:学习这边只保“案例卡或项目提交”,不保阅读量。
- 概念类资料每个重点最多读 1 篇,读完必须写进案例卡或项目文档。
- 不拿“无状态的聊天界面教程”当主线,最多用来对比“为什么不够”。
---
## 10. 脱敏和保密
- 仓库里**不放**:公司代码片段、公司项目名和仓库名、内网地址和端口、真实接口路径、服务器路径、真实任务 / 客户数据、密钥、截图里的业务内容。
- 案例卡只写机制:“草稿状态没有回写到任务表”可以写;具体表名、接口路径、字段名不写。
- 私有细节写在 `notes/private/`(已加入 `.gitignore`),只留在公司电脑上。
- 项目二、三的文档素材、题目、提示词都用公开或自己写的内容,不复制公司的。
- 第 8 周会装一个提交前检查钩子 `tools/check_sensitive.py`;每次 `git push` 前再看一眼 `git diff --cached`。
---
## 11. 简历和投递建议
**学历**
- 简历上写“本科”,加上学校、专业、起止时间即可。
- 标了“统招本科”“统招硕士”的岗位也可以投递试试;以项目和经验为重点准备,结果以对方反馈为准。
- 这次调研没看到要求 985 / 211 的岗位,竞争点主要在项目和经验上。
**经验**
- 招聘多要求 3~5 年。你有 7 年工作经验:简历里把公司多 Agent 产品的经历写在最前面(做了什么、解决了什么问题),这是“AI 应用经验”,不只是“前端经验”。
**项目(简历的重心)**
- 项目三(多 Agent)放第一,项目二(RAG)第二,项目一(Go 全栈)第三。
- 每个项目写:解决什么问题 → 关键设计(用岗位里的关键词:LangGraph、RAG、Chroma、MCP、Tool Calling、评测、Redis、Docker)→ 可验证的结果(评测数字、演示链接、仓库地址)。数字必须是你自己跑出来的,没有就写现象,不要编。
- 公司经历按 STAR 写三条:编排可靠性、状态权威、业务落地,内容来自案例卡(脱敏)。
- 技能栏顺序:Python / FastAPI → LangChain / LangGraph / RAG / MCP → 前端(Vue / React / TS / Vite)→ Go → MySQL / PostgreSQL / Redis / 消息队列 → Docker / Linux / Git → AI 编程工具。
**投递**
- 主投:AI Agent 开发、大模型应用开发、AI 全栈;中小公司、创业团队、AI 应用团队。
- 兼投:全栈(前端 + Go / Python)。
- 每个月按第 4 节的方法重新搜一次岗位要求,更新对照表,调整简历关键词。
详细做法见 `week15-package-resume.md` 和 `week16-interview.md`。
---
## 12. 仓库结构、文件清单和换设备
### 仓库结构(`zhuangang`)
```text
zhuangang/
├── .gitignore # 至少包含 notes/private/、.env、*.db、data/、node_modules/、.venv/
├── README.md # 仓库入口
├── CONTRIBUTING.md # 内容规范(目录、frontmatter、各类型写法)
├── catalog.json # 内容目录(tools/build_catalog.py 生成)
├── schema/ # frontmatter 的 JSON Schema
├── tools/ # build_catalog.py、run_examples.py、check_sensitive.py
├── plan/ # 本计划:总纲 + 16 个周文件(见下面的文件清单)
├── topics/ # 专项学习:<领域>/<技术栈>/ 课程、场景、面试题、示例
├── scenarios/ # 跨技术栈的企业服务场景
├── go-learning/ # 第 1 周:Go 语法练习
├── todo-api/ # 第 1~2 周:Gin 接口 + PostgreSQL + JWT
├── task-board/ # 第 3 周:项目一后端
├── py-learning/ # 第 4 周:Python 练习 + FastAPI
├── rag-qa/ # 第 5~6 周:项目二
├── web/ # 第 7 周:pnpm monorepo(shared、board-vue、rag-react)
├── notes/ # 第 8~9 周:盘点、架构图、案例卡(脱敏);低代码体验笔记
│ ├── cards/
│ └── private/ # 不进仓库
├── agent-mini/ # 第 10~13 周:项目三(含 MCP 服务、评测集)
├── lowcode/ # 第 13 周:Dify / Coze 导出的配置(去掉密钥)
├── backend-extend/ # 第 14 周:RabbitMQ、gRPC、Redis / MySQL 专题练习
├── deploy/ # 第 14 周:服务器上的总 Compose、Nginx、部署说明
└── career/ # 第 15~16 周:简历、口述稿、面试笔记
```
**周计划和专题的关系**:周文件是“日程”——每天做什么、建哪些文件、怎么验收;概念讲解、企业场景和面试题在 `topics/` 和 `scenarios/` 里,周文件开头的“本周相关专题”列出了链接。单独补某个技术栈时直接从 [topics/index.md](../topics/index.md) 进入。
### 计划文件清单(`plan/`)
| 文件 | 内容 |
| --- | --- |
| `README.md` | 本文件:总纲、岗位对照、进度记录、终点清单 |
| `week01-go-gin.md` | Go 基础 + Gin REST 接口 |
| `week02-db-auth.md` | PostgreSQL / MySQL + 注册登录 JWT |
| `week03-project1.md` | 项目一:权限、Redis、队列、Docker、CI |
| `week04-python.md` | Python 速成 + FastAPI |
| `week05-rag-1.md` | 项目二(上):手写 RAG |
| `week06-rag-2.md` | 项目二(下):评测、混合检索、重排、记忆、缓存、LangChain、部署 |
| `week07-frontend.md` | 前端工程化查漏 + 两个项目的界面 |
| `week08-inventory-architecture.md` | 阶段 0 + 阶段 1 |
| `week09-case-cards.md` | 阶段 2:A~E 实验 + 案例卡 |
| `week10-agent-m1-tools-mcp.md` | 项目三 M1:手写循环 + MCP |
| `week11-agent-m2-langgraph.md` | 项目三 M2:LangGraph |
| `week12-agent-m3-persistence.md` | 项目三 M3:续跑、人机协作、后台作业、SSE、记忆 |
| `week13-agent-m4-eval-lowcode.md` | 项目三 M4:评测、可观测性、文档 + Dify / Coze |
| `week14-backend-extend-deploy.md` | 消息队列、gRPC、Redis / MySQL 专题、部署、CI/CD |
| `week15-package-resume.md` | 作品集、简历、口述稿 |
| `week16-interview.md` | 面试准备、终点验收、投递 |
### 换设备后如何继续
1. 新设备安装:Git、Go(最新稳定版)、**Node.js 24 LTS** 和 pnpm(第 7 周的组件测试在 Node 20 上会报错)、Docker、Python 3.12 和 uv、编辑器(VS Code 或 Cursor)。
2. 配好能访问 `git.gozeros.com` 的 SSH 密钥,然后克隆仓库:
```bash
git clone ssh://wsk@git.gozeros.com:30023/wsk/zhuangang.git
# 如果 SSH 端口连不上(比如在外网),改用 HTTPS:
git clone https://git.gozeros.com/wsk/zhuangang.git
cd zhuangang
```
3. **重新装脱敏钩子**(钩子文件不随仓库同步),并在 `notes/private/sensitive-words.txt` 重新写好敏感词清单(不进仓库):
```bash
printf '#!/bin/sh\nexec python3 tools/check_sensitive.py\n' > .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
python3 tools/check_sensitive.py --self-test
```
4. 打开本文件第 13 节,找到上次做到哪周哪天;打开对应周的计划文件,从下一天继续。
5. Go 项目:在项目目录 `docker compose -f docker-compose.dev.yml up -d` 启动数据库和 Redis,再按项目 README 跑迁移。Python 项目:进入项目目录 `uv sync`,复制 `.env.example` 为 `.env`。前端:`cd web && pnpm install`。
6. 每天学完:更新进度记录 → `git add` → `git commit` → `git push`。
### 完成后的下一步(不属于本计划,完成终点验收后再选一个开新路径)
- 更完整的评测体系和线上反馈闭环、成本治理。
- Java / Spring 或 Go 微服务方向的深入,Kubernetes。
- 模型微调入门。
---
## 13. 进度记录
### 按周
每天学完把对应的 ☐ 改成 ☑。
| 周 | 主题 | 计划文件 | 每天 | 计划完成日 | 实际完成日 | 产出路径 | 周验收 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | Go 基础 + Gin | week01-go-gin.md | ☐☐☐☐☐☐☐ | | | go-learning/、todo-api/ | ☐ |
| 2 | 数据库 + JWT | week02-db-auth.md | ☐☐☐☐☐☐☐ | | | todo-api/ | ☐ |
| 3 | 项目一 | week03-project1.md | ☐☐☐☐☐☐☐ | | | task-board/ | ☐ |
| 4 | Python + FastAPI | week04-python.md | ☐☐☐☐☐☐☐ | | | py-learning/ | ☐ |
| 5 | 项目二(上)手写 RAG | week05-rag-1.md | ☐☐☐☐☐☐☐ | | | rag-qa/ | ☐ |
| 6 | 项目二(下)评测、优化、部署 | week06-rag-2.md | ☐☐☐☐☐☐☐ | | | rag-qa/ | ☐ |
| 7 | 前端工程化 | week07-frontend.md | ☐☐☐☐☐☐☐ | | | web/ | ☐ |
| 8 | 阶段0 盘点 + 阶段1 画图 | week08-inventory-architecture.md | ☐☐☐☐☐☐☐ | | | notes/00、01、tools/ | ☐ |
| 9 | 阶段2 案例卡 A~E | week09-case-cards.md | ☐☐☐☐☐☐☐ | | | notes/cards/ | ☐ |
| 10 | 项目三 M1 手写 + MCP | week10-agent-m1-tools-mcp.md | ☐☐☐☐☐☐☐ | | | agent-mini/ | ☐ |
| 11 | 项目三 M2 LangGraph | week11-agent-m2-langgraph.md | ☐☐☐☐☐☐☐ | | | agent-mini/ | ☐ |
| 12 | 项目三 M3 续跑、中断、SSE、记忆 | week12-agent-m3-persistence.md | ☐☐☐☐☐☐☐ | | | agent-mini/ | ☐ |
| 13 | 项目三 M4 评测、文档 + Dify/Coze | week13-agent-m4-eval-lowcode.md | ☐☐☐☐☐☐☐ | | | agent-mini/、lowcode/ | ☐ |
| 14 | 后端补强 + 部署 | week14-backend-extend-deploy.md | ☐☐☐☐☐☐☐ | | | backend-extend/、deploy/ | ☐ |
| 15 | 阶段4(上)作品集、简历 | week15-package-resume.md | ☐☐☐☐☐☐☐ | | | career/ | ☐ |
| 16 | 阶段4(下)面试、验收、投递 | week16-interview.md | ☐☐☐☐☐☐☐ | | | career/ | ☐ |
### 按阶段
| 阶段 | 计划完成日 | 实际完成日 | 产出路径 | 验收 |
| --- | --- | --- | --- | --- |
| 第一段 Go 全栈基础(项目一) | | | task-board/ | ☐ |
| 第二段 Python + 项目二 + 前端 | | | py-learning/、rag-qa/、web/ | ☐ |
| 0 盘点 | | | notes/00-inventory.md | ☐ |
| 1 读通与画图 | | | notes/01-*.md | ☐ |
| 2 案例卡 | | | notes/cards/ | ☐ |
| 3 项目三(多 Agent) | | | agent-mini/ | ☐ |
| 4 终点 | | | career/ | ☐ |
**项目三路径**:(阶段 3 完成后填写)
### 卡住和收获(每天一句)
| 日期 | 周/天 | 一句话收获或卡住的地方 |
| --- | --- | --- |
| | | |
---
## 14. 终点验收清单(全部勾选才算完结)
**AI 应用能力**
- [ ] 项目二:RAG 问答可演示,有评测集和对比结果,README 清楚
- [ ] 项目三:LangGraph 多 Agent 可演示:启动 → 中途杀进程 → 重启续跑 → 结果可查
- [ ] 写过 MCP 服务,能讲清 Tool Calling 和 MCP
- [ ] 项目三有评测集,至少两次对比结果
- [ ] 搭过 Dify 或 Coze 应用,能讲清和写代码的取舍
- [ ] 架构图最新版已归档,和项目三 README 一致
**全栈能力(加分项)**
- [ ] 项目一部署过,能讲清分层、鉴权、缓存、限流、消息队列、部署
- [ ] 能讲清 MySQL 和 PostgreSQL 的主要差异、索引和隔离级别
- [ ] 前端工程化查漏清单全部打勾
**参考文档的终点**
- [ ] 至少 2 张案例卡可以对外讲(已脱敏)
- [ ] 口述稿计时不超过 4 分钟,覆盖 A / B / C 中至少两项
- [ ] 第 1 节“终点”四条全部满足
**求职**
- [ ] 简历按第 11 节更新完成,没有编造的数字
- [ ] 已开始投递
- [ ] 写下一句“下一步如果继续学”(第 12 节里选一个),作为新路径,不塞进本计划
**完结动作**:把本文件开头的状态改成“已完成(YYYY-MM-DD)”,提交并推送。本路径正式结束。