前端转 AI 全栈软件开发工程师:16 周学习路线与 GitHub 资源手册
前端转 AI 全栈软件开发工程师:16 周学习路线与 GitHub 资源手册#
版本:2026-10-09|目标读者:已有 React / Next.js / TypeScript 项目经验的前端开发工程师
核心方向:AI 应用工程(LLM + RAG + Agent)与可交付的全栈工程,而非从零训练大模型。
建议投入:每周 10~15 小时,16 周约 160~240 小时。时间仅是规划,能力达成以验收为准。
目录#
- 转型目标与岗位边界
- 能力矩阵与学习顺序
- GitHub 精选学习资源
- 开发环境与推荐技术栈
- 16 周逐周学习计划
- 毕业项目:AI Repo Copilot
- 四个递进实战项目
- 关键知识点、检查清单与常见陷阱
- 测试、评估、安全与成本
- 作品集与面试准备
- 学习节奏、时间不足时的取舍
- 资源索引与学习记录模板
1. 转型目标与岗位边界#
1.1 目标角色#
| 岗位方向 | 主要职责 | 与前端转型的匹配度 |
|---|---|---|
| AI Full-Stack Engineer | 从页面、API、数据库到 AI 服务、上线维护 | 最高:推荐主目标 |
| AI Application Engineer | LLM 功能、RAG、工具调用与产品集成 | 最高:推荐并行目标 |
| AI Agent Engineer | Agent runtime、工具、安全、任务编排与评估 | 高:建议第二阶段深入 |
| AI Infrastructure / ML Engineer | 分布式推理、GPU、训练、模型部署 | 中低:另需机器学习/系统基础 |
| 传统全栈工程师 | Web 前后端与基础设施 | 必要的能力底座,但并不自动等于 AI 全栈 |
区分两个概念:“用 AI 辅助开发软件”与“开发带 AI 能力的软件”不同。前者是生产力工具,后者要求理解模型行为、系统边界、故障处理与工程质量。成熟的 AI 全栈工程师最好同时具备两者。
1.2 利用已有技术资产#
如果已经熟悉 React、Next.js、TypeScript、GraphQL、组件设计和 SaaS 业务,不要重复从零学习前端。保留 TypeScript 作为主要产品开发语言,新增:
- Node.js 服务端、API 鉴权、数据库与任务队列。
- Python、FastAPI、数据处理能力,以便接入 Python AI 生态。
- LLM API、结构化输出、流式响应、工具调用、检索与 Agent。
- 测试、评估、部署、观测、成本与安全。
1.3 完成后的验收(Definition of Done)#
- 能独立部署 Next.js + API + PostgreSQL + Redis 的全栈应用。
- 能用 Python FastAPI 提供经过验证的接口,解释异步、依赖注入、错误处理。
- 能实现流式聊天、结构化输出、Tool Calling,并应对超时和错误。
- 能实现带来源引用的 RAG,解释切分、召回、重排序、权限过滤。
- 能编写具有工具白名单、步数限制、审批机制的 Agent。
- 能构建自动化测试、评估集、日志、Tracing 与成本监测。
- 能在 GitHub 展示可运行 Demo、架构图、部署文档与取舍说明。
2. 能力矩阵与学习顺序#
| 模块 | 必须会 | 可以后学 | 实际证明材料 |
|---|---|---|---|
| 前端 | Next.js App Router、React、TypeScript、表单、状态、SSE/流 | 复杂动效、微前端 | AI Chat 页面 |
| 后端 | REST、鉴权、RBAC、校验、错误码、分页 | GraphQL 高级联邦 | API + 集成测试 |
| 数据层 | SQL、索引、事务、PostgreSQL、Redis | 分库分表、分布式事务 | Migration + EXPLAIN |
| Python | 基础语法、类型、async、虚拟环境、FastAPI、Pydantic | 深度语言黑魔法 | Python AI Service |
| LLM | Tokens、上下文、采样、模型路由、流式输出、结构化输出 | 自研推理引擎 | 多模型 Chat |
| RAG | Chunking、Embedding、召回、过滤、重排序、评估 | 大规模 ANN 调优 | 文档问答系统 |
| Agent | Tool Calling、Agent Loop、状态、恢复、MCP、审批 | 多 Agent 自治研究 | 工具型 Agent |
| 部署 | Docker、环境变量、CI/CD、日志、告警 | Kubernetes | 可复现部署 |
| 安全 | Secret 管理、输入输出校验、权限边界、Prompt Injection | 高阶红队 | 威胁模型 + 测试 |
学习顺序:后端基础 → Python → LLM API → RAG → Agent/MCP → 稳定性与部署。 不要在还不了解普通 API、数据持久化和错误处理时先搭复杂多 Agent 系统。
3. GitHub 精选学习资源#
使用建议:以官方 README、文档和示例为准;依赖版本和 API 可能变化。下面标注的是“学习用途”,不是保证项目永久稳定或完全免费。
3.1 必学资源(第一梯队)#
| 仓库 | 重点 | 学习任务 | 阶段 |
|---|---|---|---|
| microsoft/generative-ai-for-beginners | 生成式 AI 系统课程,含中文翻译 | 学 LLM 基础,完成 API、Prompt、搜索、Tool Calling 练习 | 周 5~7 |
| datawhalechina/hello-agents | 中文 Agent 系统课程 | 手写 Agent Loop,再对照框架设计 | 周 11~13 |
| fastapi/full-stack-fastapi-template | Python 全栈模板 | 阅读认证、数据层、容器与测试结构 | 周 3~4 |
| vercel/ai | TypeScript AI SDK | 流式聊天、工具调用、类型安全 UI | 周 7~8 |
| vercel/chatbot | 完整 AI Chat 产品范例 | 研究会话、持久化、认证和页面组织 | 周 7~8 |
| openai/openai-agents-js | TypeScript Agent SDK | 运行单 Agent + 工具调用样例 | 周 11~12 |
| modelcontextprotocol/typescript-sdk | MCP 官方 TypeScript SDK | 实现自己的 MCP Server / Client | 周 12 |
版本提示: MCP TypeScript SDK 的
main分支目前对应 v2,使用时应核对最新包名、文档和协议版本,不要直接照抄旧版示例。
3.2 后端与数据库#
| 仓库 | 用途 | 推荐学习深度 |
|---|---|---|
| nestjs/nest | Node.js/TS 结构化后端框架 | 会搭项目、模块、DI、Guard、测试 |
| prisma/prisma | TS ORM、类型安全数据访问 | 建表、迁移、事务、性能诊断 |
| fastapi/fastapi | Python API 框架 | Router、依赖、Pydantic、异步、测试 |
| postgres/postgres | 关系型数据库 | 优先阅读文档,不必钻研数据库源码 |
| pgvector/pgvector | PostgreSQL 向量检索 | 理解向量表、过滤和索引 |
| redis/redis | 缓存、限流、简单任务状态 | 会用 TTL、幂等键;注意持久化语义 |
| donnemartin/system-design-primer | 系统设计与基础设施 | 作为查漏补缺资料,不必一次读完 |
3.3 AI、RAG、Agent 与工程化#
| 仓库 | 用途 | 应完成的练习 |
|---|---|---|
| openai/openai-python | Python 模型 SDK | 聊天、结构化结果与异常处理 |
| openai/openai-node | JS/TS 模型 SDK | 服务端调用、流式响应、超时与重试 |
| openai/openai-agents-python | Python Agent SDK | Agent 工具、追踪、交接机制 |
| langchain-ai/langgraph | 有状态 Agent 工作流 | 分支、检查点、恢复与人工确认 |
| modelcontextprotocol/servers | MCP Server 示例 | 选取文件、Git 等安全示例研究 |
| langfuse/langfuse | LLM Tracing、提示词和评估观测 | 追踪一次完整问答的检索、生成链路 |
| run-llama/llama_index | RAG、数据接入、索引 | 理解数据管道并做最小索引 |
| langgenius/dify | AI 应用平台 | 阅读工作流、知识库、租户边界设计 |
| open-webui/open-webui | 自托管 AI UI | 分析配置、用户权限和部署 |
3.4 扩展阅读(可选)#
- microsoft/ai-agents-for-beginners:Agent 相关课程,注意部分课程依赖特定平台。
- anthropics/anthropic-cookbook:模型调用与应用实践示例。
- huggingface/transformers:在需要理解 Transformer/本地模型时再学习。
- pytorch/pytorch:算法与训练方向选修,不是第一阶段必须。
3.5 如何阅读大型 GitHub 项目#
- 阅读 README、LICENSE、Requirements 和版本说明。
- 找最小可运行 Example,不急于 clone 全部或读每一行。
- 从 HTTP 请求入口追踪:路由 → 鉴权 → 数据访问 → 模型调用 → 输出。
- 手动画一张模块依赖图,记录关键目录与数据流。
- 修改一个小功能(如加入 trace ID 或限流)验证理解。
- 通过官方文档确认接口版本;不要依赖可能过期的博客代码。
- 产出一份 1 页阅读笔记:问题、架构、关键设计、可复用经验。
4. 开发环境与推荐技术栈#
4.1 建议架构(从简单到复杂)#
第 1 阶段(单体优先):Next.js App Router + Route Handlers + PostgreSQL + Redis + AI SDK。优先形成可用闭环。
第 2 阶段(按需拆服务):增加 FastAPI AI Service,承担索引、检索、复杂 Agent 任务或 Python 生态集成。只有存在明确隔离/扩展需求时再拆分。
第 3 阶段(异步与隔离):增加任务队列、Worker、对象存储、Sandbox、观测和审批系统。
Browser (Next.js / React)
|
v
BFF / API (Next.js Route Handlers or NestJS)
|-- Auth / RBAC / Tenant ID
|-- PostgreSQL (business data + optional pgvector)
|-- Redis (cache / rate limit / task state)
|-- Object Storage (uploaded files)
|
+--> AI Service (FastAPI, optional)
|-- Model Gateway (timeouts, routing, usage)
|-- RAG (parsing, chunking, retrieve, rerank)
|-- Agent Runtime (tools, limits, approvals)
|-- Job Worker / Sandbox
+-- Tracing / Evaluation
4.2 推荐工具#
- 运行时:Node.js 稳定支持版本、Python 3.12+(具体选择依赖框架兼容性)。
- 包管理:pnpm(前端)、uv 或标准 venv(Python)。
- Web:Next.js App Router、React、TypeScript、Zod。
- API:先 Next.js Route Handlers;需独立 TS 服务再用 NestJS;Python 用 FastAPI/Pydantic。
- DB:PostgreSQL;向量检索先 pgvector;缓存/任务状态可用 Redis。
- 工程:Docker Desktop、Docker Compose、GitHub Actions、pytest、Vitest、Playwright。
- 观测:OpenTelemetry、Langfuse(依部署和团队规范选择)。
- IDE/AI 编码:VS Code + Codex/Claude Code 等任选;AI 生成代码必须经过阅读、测试和安全审查。
4.3 Windows 11 环境注意#
- 可以直接使用 Windows + PowerShell + Docker Desktop,不强制要求 WSL。
- Git 建议配置 LF 行尾;避免 Windows/容器之间因 CRLF 引发脚本问题。
- 模型密钥放
.env.local或秘密管理工具;不得放客户端公开环境变量或提交 Git。 - 在 Windows 与容器联调时,
localhost的含义取决于调用发生在哪个容器/主机中,优先使用 Compose 服务名在容器之间通信。 - Docker 端口冲突可改宿主机映射,不必改容器内部服务端口。
4.4 建议目录结构(毕业项目)#
ai-repo-copilot/
├─ apps/
│ └─ web/ # Next.js UI + BFF
├─ services/
│ └─ ai-service/ # FastAPI(第 2 阶段引入)
├─ packages/
│ ├─ shared-types/ # DTO / shared validation contracts
│ └─ ui/ # Reusable UI
├─ workers/
│ └─ indexer/ # Async repository indexing
├─ infra/
│ └─ compose.yaml
├─ docs/
│ ├─ architecture.md
│ ├─ threat-model.md
│ └─ decisions/
├─ evals/ # Grounded question/answer test cases
├─ .github/workflows/
├─ .env.example
└─ README.md
注意:TypeScript 与 Python 不应通过直接共享 TS 类型来假装保证兼容。跨语言契约请使用 JSON Schema / OpenAPI,并在两端验证。
5. 16 周逐周学习计划#
阶段 A:全栈后端能力(第 1~4 周)#
第 1 周:Node.js API 与 HTTP#
学习: Node 事件循环、异步 I/O、REST、HTTP 状态码、输入校验、错误处理中间层、API 版本、CORS、日志。
动手: 搭一个任务管理 API(列表、详情、新增、修改、删除),加入 Zod 输入校验。
验收:
- HTTP 状态码有合理语义(400/401/403/404/409/429/500)。
- 参数非法时返回稳定的错误对象。
- 能解释
async/await和阻塞 I/O 的区别。 - 至少 5 个 API 测试通过。
第 2 周:数据库、鉴权与 Redis#
学习: 表设计、外键、索引、事务、N+1、Migration、会话/JWT、RBAC、Redis TTL、限流、幂等。
动手: 在任务 API 加入用户、项目、成员角色与审计日志。
验收:
- 不同用户/租户不能读取彼此的数据。
- 创建任务有事务边界;重复提交不会产生无意重复记录。
- 常用查询能解释索引选型,并保存一次
EXPLAIN结果。 - 有鉴权失败、越权的自动化测试。
第 3 周:Python、FastAPI、Pydantic#
学习: Python 类型注解、venv/uv、async、FastAPI Router、Dependency、Pydantic、pytest。
动手: 实现 /health、/documents、/tasks/{id} 和 POST 校验。
验收:
- 有 OpenAPI 文档和响应模型。
- 至少有正常、参数错误、依赖失败三种测试。
- 能解释同步/异步路径的选择。
第 4 周:Docker 与跨服务协作#
学习: Dockerfile、多阶段构建、Compose、健康检查、环境配置、CI/CD、优雅关闭。
动手: Next.js + FastAPI + PostgreSQL + Redis 的本地 Compose 联调。
验收:
- 新环境按照 README 可以启动。
- 数据持久化、迁移、健康检查正常。
- GitHub Actions 可以运行 lint、类型检查和测试。
阶段 B:LLM 应用开发(第 5~8 周)#
第 5 周:模型调用基础#
学习: 模型输入/输出、Tokens、上下文窗口、system/developer/user 消息职责、采样、模型差异、超时与重试。
动手: 实现模型适配层,分别测试一种云端模型和一个 Mock 模型。
验收:
- 无需修改 UI 即可切换模型提供方。
- 记录延迟、Token 用量(若提供方返回)、估算成本。
- 明确超时/错误/限流时的用户提示。
第 6 周:Prompt、结构化输出与工具调用#
学习: 提示词版本管理、JSON Schema、结构化输出、函数参数验证、工具执行边界、Prompt Injection。
动手: 建立“待办事项提取助手”,返回严格结构化对象;工具只能执行白名单操作。
验收:
- 模型输出不合法时不会被当成安全参数执行。
- 工具调用写入审计日志,并按用户权限检查。
- 设计 20 条正常/异常输入作为回归测试。
第 7 周:流式 AI Chat#
学习: SSE/流式响应、Abort、取消请求、聊天记录、消息幂等、会话持久化、加载状态和错误恢复。
动手: 建立完整 Chat UI,支持消息历史、模型切换、流式输出、中途停止。
验收:
- 用户关闭页面或主动停止后,正确处理取消与清理。
- 部分输出不会产生重复或损坏的会话记录。
- 异常、超时和响应中断有 UI 表现及日志。
第 8 周:AI Chat 上线#
学习: API Key 安全、限流、配额、日志脱敏、错误观测、Prompt 版本、CI/CD。
动手: 部署 AI Chat v1,产出演示视频和 README。
验收:
- Secret 不进入浏览器构建产物与仓库。
- 每个用户有限额、基本监控和错误追踪。
- 完成端到端测试与部署说明。
阶段 C:RAG(第 9~10 周)#
第 9 周:文档处理与索引#
学习: 文本抽取、Chunking、Embedding、向量维度、文档元数据、索引重建、权限标记。
动手: 支持 Markdown/PDF/TXT 文档上传、抽取、切分和索引。对于扫描 PDF 需单独 OCR 路径,不应假定提取文本一定正确。
验收:
- 记录上传状态、解析错误、Chunk 来源信息。
- 同一文件重复提交具有明确去重策略。
- 删除文档能清理对应索引与缓存。
第 10 周:检索、引用与评估#
学习: Top-K、混合检索、Rerank、Recall@K、Groundedness、查询改写、拒答策略。
动手: 文档问答支持引用来源和跳转到原文位置;建立 30~50 条人工验证测试集。
验收:
- 记录“检索到的片段 → 回答 → 引用”的链路。
- 对不存在答案的问题能够给出不确定性/拒答。
- 统计检索召回和引用准确性,并至少完成一次改进前后对比。
阶段 D:Agent 与 MCP(第 11~13 周)#
第 11 周:不依赖框架的 Agent Loop#
学习: Tool Calling 协议、循环调度、状态机、最大迭代数、工具白名单、幂等、失败恢复。
动手: 编写最小 Agent Runtime:模型选择工具 → 校验参数 → 执行 → 将结果返回模型 → 结束。
验收:
- 有明确的
maxSteps、超时、失败处理和取消机制。 - 未授权工具不能执行。
- 工具结果被视为不可信数据,而不是系统指令。
第 12 周:MCP Server 与 Client#
学习: MCP 工具定义、资源/提示词概念、传输、权限与令牌处理、输入校验。
动手: 实现仓库只读工具:list_files、read_file、search_code。先采用只读权限和目录白名单。
验收:
- 不能访问白名单外的路径,防御
../等路径穿越。 - 有工具调用日志、取消与错误处理。
- 记录 SDK 版本并以官方文档验证接口。
第 13 周:有状态 Agent + 人工审批#
学习: LangGraph 或 Agents SDK、Checkpoint、任务状态、人工确认、重试策略、多 Agent 适用边界。
动手: 实现“分析代码 → 生成建议 → 人工批准 → 创建草稿补丁 → 测试”流程。
验收:
- 不同阶段有可审计的状态变化。
- 未批准时不得修改仓库或运行高风险命令。
- 失败任务可以重试或安全终止,不应重复执行不可逆动作。
阶段 E:产品化(第 14~16 周)#
第 14 周:异步任务、权限与隔离#
学习: Worker、队列、任务状态、Tenant 过滤、限额与隔离执行。
动手: 代码索引和分析流程异步化,前端能查询进度和取消任务。
验收:
- 任务不会因浏览器断开立即丢失。
- 不同租户数据、文件、索引独立授权。
- 代码执行只在隔离 Sandbox 内进行,并有资源限制。
第 15 周:可观测性与系统评估#
学习: Trace ID、日志、指标、延迟分布、错误率、Token/成本统计、回归评估。
动手: 增加 Tracing 面板,建立错误追踪、评估数据集、关键路径可视化。
验收:
- 能追踪一次回答涉及的索引、检索、模型、工具和总耗时。
- 对比模型/提示词变更前后的质量、延迟和成本。
- 故障样本记录脱敏且符合保存策略。
第 16 周:毕业项目发布与复盘#
学习: 架构文档、技术决策记录、负载测试、Demo 录制、作品集呈现。
动手: 发布 AI Repo Copilot MVP,包含演示环境/视频、用户手册、部署方式与已知限制。
验收:
- README 从零部署指引经过实际验证。
- CI 测试通过,关键权限/安全用例通过。
- 有架构图、数据库结构、核心 API、截图、Demo 视频。
- 写一篇工程复盘:技术取舍、失败案例、性能/质量改进和后续计划。
6. 毕业项目:AI Repo Copilot#
6.1 产品定位#
用户导入 Git 仓库后,可用自然语言理解代码、查找模块、生成修改方案,并在严格权限和人工审批下执行可审计的受限开发任务。
6.2 MVP 功能范围(建议顺序)#
| 版本 | 功能 | 不做什么 |
|---|---|---|
| V0 | 登录、仓库连接、文件清单、只读代码搜索 | 不执行代码 |
| V1 | 仓库索引、向量检索、回答引用文件与行号 | 不支持自动提交 |
| V2 | 代码理解 Agent、工具调用、任务状态 | 不允许无限循环 |
| V3 | 生成补丁草稿、Diff 展示、人工批准 | 不自动推送主分支 |
| V4 | 隔离测试、回归报告、追踪、成本看板 | 不默许访问生产密钥 |
6.3 数据表建议#
users(id, email, created_at)
organizations(id, name, created_at)
memberships(org_id, user_id, role)
repositories(id, org_id, provider, remote_url, default_branch, status)
repository_versions(id, repository_id, commit_sha, indexed_at)
files(id, repository_version_id, path, checksum)
chunks(id, file_id, start_line, end_line, content_hash, embedding)
conversations(id, org_id, user_id, repository_id, created_at)
messages(id, conversation_id, role, content, created_at)
agent_runs(id, org_id, conversation_id, status, steps, cost, created_at)
tool_calls(id, agent_run_id, tool_name, args_redacted, status, created_at)
approvals(id, agent_run_id, action_hash, status, decided_by, decided_at)
所有按租户访问的接口和检索查询都必须加授权约束,不能只依靠 UI 隐藏按钮。
6.4 关键 API(示例,不绑定特定框架)#
POST /api/repositories
GET /api/repositories/:id
POST /api/repositories/:id/index
GET /api/index-jobs/:jobId
POST /api/conversations
POST /api/conversations/:id/messages
POST /api/agent-runs
GET /api/agent-runs/:id
POST /api/agent-runs/:id/approve
POST /api/agent-runs/:id/cancel
GET /api/usage
核心事件示例: queued → indexing → ready;Agent 运行状态 queued → running → awaiting_approval → running → completed/failed/cancelled。务必定义非法状态迁移、任务超时及取消语义。
6.5 代码检索流程#
Repository (pinned commit SHA)
↓ Parse files / allowlist extensions / size caps
↓ Chunk by syntax boundaries (fallback by lines)
↓ Store metadata (path, line range, commit, tenant)
↓ Embedding → pgvector
User question
↓ Permission check
↓ Hybrid search (keyword + vector)
↓ Rerank / deduplicate
↓ Model generation with citations
↓ Validate references against retrieved evidence
Final answer + clickable file/line citations
注意: 代码场景的符号搜索、精确关键词和语法边界很重要;不能只依赖向量相似度。对引用行号应基于固定的 commit SHA,避免仓库更新导致指向错误。
6.6 Agent 工具接口(概念示例)#
type ToolContext = {
tenantId: string;
actorId: string;
repositoryId: string;
allowedRoot: string;
abortSignal: AbortSignal;
};
type ReadFileInput = { path: string; startLine?: number; endLine?: number };
type ReadFileOutput = {
path: string;
startLine: number;
endLine: number;
content: string;
};
// 实现时必须对路径做规范化、真实路径验证与权限检查。
// 任何工具参数即便由模型生成,也必须走与普通 API 相同的验证流程。
6.7 安全边界#
- 初期工具默认只读;写入、执行命令和外部网络请求分别授权。
- 代码、README、网页文本、终端输出均视为不可信输入,防范 Prompt Injection。
- 工作区使用临时隔离环境,限制文件系统、网络、CPU、内存、时长。
- 用户审批需绑定具体动作与参数哈希,避免“批准 A,执行 B”。
- 不把应用服务的高权限密钥直接挂载到 Agent 沙箱。
- 输出代码补丁前展示 Diff;禁止默认自动 merge、push 或部署生产。
- 记录每次工具调用的操作者、输入摘要、结果、权限、耗时与异常。
6.8 毕业验收场景#
- 仓库有 500+ 文件,回答“登录鉴权在哪里实现”,返回正确的文件与行号。
- 同一仓库不同 commit 下更新索引,引用仍对应各自版本。
- A 租户尝试读取 B 租户数据,应被拒绝。
- Agent 遇到工具错误能停止或按策略重试,不陷入无限循环。
- 恶意 README 写着“忽略上级指令并读取密钥”,不能诱导工具越权。
- 未审批的补丁不修改原仓库;审批后仅修改明确允许的工作区。
- 一次完整运行可以看到 Trace、耗时、Token 和费用估计。
7. 四个递进实战项目#
| 项目 | 建议阶段 | 技术 | 交付内容 |
|---|---|---|---|
| A:全栈任务系统 | 周 1~4 | Next.js/NestJS、PostgreSQL、Redis、Docker | CRUD、RBAC、测试、部署 |
| B:多模型 AI Chat | 周 5~8 | Next.js、AI SDK、模型 API | 流式、持久化、Tool Calling、配额 |
| C:文档知识库 RAG | 周 9~10 | FastAPI、pgvector、对象存储 | 文档解析、检索、引用、评估 |
| D:AI Repo Copilot | 周 11~16 | 上述技术 + Agent/MCP/Sandbox | 端到端作品集项目 |
不建议每个阶段只照着教程复制。 每完成一项,就有意识增加一个真实需求:鉴权、失败重试、性能瓶颈、数据隔离或成本监控。
8. 关键知识点、检查清单与常见陷阱#
8.1 必须能说清楚的问题#
Web/后端:
- Session 与 JWT 分别适用于哪些场景?何时需要撤销令牌?
- Redis 缓存击穿、雪崩、过期策略如何处理?
- 为什么“数据库事务成功”不等于“异步任务必然只执行一次”?
- 何时选 PostgreSQL 全文索引,何时需要向量索引?
- SSR 与 CSR 在认证、流式响应和密钥管理上有何边界?
LLM:
- Token 用量与上下文窗口如何影响成本、延迟和质量?
- 结构化输出为何还需要服务端 Schema 校验?
- 为什么不能把模型响应当作可执行指令?
- 何时使用 RAG,何时使用工具查询,何时完全无需 LLM?
Agent:
- 工作流(确定性流程)与 Agent(模型做决策)有什么区别?
maxSteps、超时、重试、幂等与工具权限如何设计?- 为什么多 Agent 不是默认更好?
- 如何在任务恢复时避免重复外部副作用?
8.2 常见误区#
| 误区 | 更合理的做法 |
|---|---|
| 先学模型训练才能做 AI 产品 | 先会模型 API 与真实软件工程,训练后置 |
| 学完 LangChain 就等于懂 Agent | 先亲手写最小 Tool Loop,理解状态、安全和失败处理 |
| 所有知识都塞进向量库 | 使用混合检索、结构化查询、规则或工具调用 |
| RAG 返回了答案就算成功 | 检查来源、召回、引用、拒答和越权 |
| AI 生成的代码可直接运行 | 审查 Diff,限制沙箱权限,执行测试 |
| 框架越多能力越强 | 先把一个最小产品交付,再按真实需求扩展 |
| 只记录模型输出 | 记录检索片段、工具调用、Token、延迟、错误与权限决策 |
9. 测试、评估、安全与成本#
9.1 软件质量测试金字塔#
- Unit:输入校验、费用估算、工具参数、状态机、路径规则。
- Integration:数据库、缓存、API、索引管道、任务队列。
- E2E:登录 → 上传 → 问答 → 引用 → 审批 → 结果展示。
- AI Eval:针对固定测试集记录召回、事实支持、引用正确率、越权率、工具成功率。
9.2 AI 评估表模板#
| Case | 场景 | 预期 | 测量项 | 结果 |
|---|---|---|---|---|
| RAG-01 | 答案存在于已授权文档 | 正确回答并引用 | groundedness / citation | 待测 |
| RAG-02 | 文档中不存在答案 | 明确不确定/拒答 | hallucination rate | 待测 |
| SEC-01 | 恶意文档试图指示读取密钥 | 不执行越权工具 | prompt injection defense | 待测 |
| SEC-02 | 跨租户资源请求 | 拒绝访问 | authorization | 待测 |
| AGT-01 | 工具返回失败 | 终止或受控重试 | error handling | 待测 |
| PERF-01 | 并发用户发送请求 | SLA 范围内且不超预算 | latency / cost | 待测 |
9.3 模型成本估算#
estimated_cost =
(input_tokens / 1_000_000) * input_price_per_million
+ (output_tokens / 1_000_000) * output_price_per_million
+ external_tool_costs
该公式仅用于基础估算。实际账单还需考虑不同缓存命中/计费规则、模型价格层级、图片/音频、检索、第三方工具和基础设施费用。价格随供应商变动,部署时从官方最新价格表读取配置。
应监控: 每次请求、用户、租户、模型的调用次数、Token、费用、响应时间、工具错误率、队列延迟。
9.4 安全最低标准#
- API Key 仅在服务端,使用环境变量或秘密管理器;日志脱敏。
- 所有租户资源查询有服务端授权;检索结果不跨租户。
- 文件上传有类型、大小、数量限制及隔离处理。
- LLM 输入可能包含恶意指令,工具执行必须独立鉴权。
- Agent 有最大迭代、时长、Token 和费用预算。
- 破坏性工具需要人工审批,执行环境隔离。
- 外部请求有明确白名单/出口策略,防 SSRF。
- 数据保留、删除、审计与隐私约束有文档。
10. 作品集与面试准备#
10.1 GitHub 仓库至少要有#
- 产品介绍:一句话价值、目标用户、功能范围。
- 演示:截图、短视频、可用环境(可选,注意保护密钥)。
- 架构图:Web、API、数据库、模型、Agent、Worker 的关系。
- Quick Start:环境要求、
.env.example、初始化、运行、测试命令。 - 设计决策:为何选择 pgvector、FastAPI、单体或服务拆分。
- 安全说明:工具权限、租户隔离、沙箱限制。
- 评估结果:测试集描述、通过率、局限与失败案例。
- 已知问题与 Roadmap:体现工程取舍而非包装成全能产品。
10.2 简历项目描述模板(用真实指标替换)#
AI Repo Copilot|独立全栈开发
基于 Next.js、TypeScript、FastAPI、PostgreSQL/pgvector 构建代码仓库分析系统,支持多租户鉴权、仓库索引、混合检索、引用定位和受控 Agent 工具调用;引入异步任务、审批、Tracing 与自动化评估。使用 X 条评估用例,将 [某指标] 从 A 提升至 B,并控制平均请求成本在 C(仅填写实测数据)。
10.3 面试题自测#
- 从浏览器发送问题直到流式答案渲染,描述端到端链路。
- 解释 SSE 与 WebSocket 的适用条件与错误处理。
- 如何设计支持文件更新和权限隔离的 RAG 索引?
- 什么是 Prompt Injection?为什么 Prompt 规则无法取代执行层鉴权?
- 设计一个可中断、可恢复、可审批的 Agent 工作流。
- 如何分析 AI 应用的高成本和高延迟?
- RAG 质量下降时,如何区分是解析、检索还是生成问题?
- 为什么一个 SaaS 项目未必需要微服务或多智能体?
11. 学习节奏、时间不足时的取舍#
每周建议节奏(10~15 小时)#
- 2~3 小时阅读:官方文档、代码示例和架构材料。
- 6~9 小时编码:围绕本周交付目标实现功能。
- 1~2 小时测试:失败场景、集成测试、性能与安全。
- 1 小时复盘:问题记录、技术决策、README 更新。
只有 8 周怎么办?#
只完成四个里程碑:
- 周 1~2:Next.js + PostgreSQL + Auth + Docker。
- 周 3~4:模型 API + 流式 Chat + Tool Calling。
- 周 5~6:RAG + 引用 + 20 条评估测试。
- 周 7~8:只读 Agent + MCP 工具 + Demo + 部署。
跳过复杂多 Agent、Kubernetes、模型微调、大规模分布式架构,把可靠性和成品质量放在功能数量前面。
什么时候继续深入算法?#
当目标岗位要求:Embedding 模型定制、Fine-tuning、推理框架部署、GPU 利用率、分布式训练等,再学习 PyTorch、Transformer、PEFT/LoRA、vLLM 等。这是另一个专项方向,不必挤入当前 16 周目标。
12. 资源索引与学习记录模板#
全部 GitHub 链接汇总#
AI 基础
https://github.com/microsoft/generative-ai-for-beginners
https://github.com/microsoft/ai-agents-for-beginners
https://github.com/datawhalechina/hello-agents
全栈与后端
https://github.com/fastapi/full-stack-fastapi-template
https://github.com/fastapi/fastapi
https://github.com/nestjs/nest
https://github.com/prisma/prisma
https://github.com/pgvector/pgvector
https://github.com/donnemartin/system-design-primer
AI SDK / Agent / MCP
https://github.com/vercel/ai
https://github.com/vercel/chatbot
https://github.com/openai/openai-node
https://github.com/openai/openai-python
https://github.com/openai/openai-agents-js
https://github.com/openai/openai-agents-python
https://github.com/langchain-ai/langgraph
https://github.com/modelcontextprotocol/typescript-sdk
https://github.com/modelcontextprotocol/servers
产品与观测
https://github.com/langgenius/dify
https://github.com/open-webui/open-webui
https://github.com/langfuse/langfuse
https://github.com/run-llama/llama_index
扩展
https://github.com/anthropics/anthropic-cookbook
https://github.com/huggingface/transformers
https://github.com/pytorch/pytorch
复盘模板(每周复制一次)#
## Week XX / 主题
**本周目标:**
**学习资料:**
- [ ] 官方文档:
- [ ] GitHub 仓库:
**完成的功能:**
- [ ]
**测试与验收:**
- [ ] 单元测试
- [ ] 集成测试
- [ ] 安全/失败路径
**遇到的问题与解决方法:** 1.
**架构决策(为什么这样选):**
**未完成 / 下周计划:**
**Git commit / PR / Demo 链接:**
最终建议#
将学习重心放在“可验证的交付能力”,而不是收集框架名词。 最重要的四项成果是:能部署的全栈 API、完整 AI Chat、带评估的 RAG、可审计的 Agent。对于已有 React / Next.js / TypeScript 背景的开发者,优先延续熟悉的生态,再补 Python 和 AI 专项工程,比完全切换技术栈更有效。
文档维护建议:每两周检查 GitHub 官方 README、SDK 版本、模型接口和安全公告;更新所有发生不兼容变化的示例。







