这篇文章把四条通常被分开讲的学习线——Python 工程、Linux 系统、数据结构与算法、AI/Agent——放进同一张路线图。核心判断是:它们不是四份独立的清单,而是围绕同一个能力闭环收敛。Linux 提供 Agent 的运行与隔离边界,Python 提供工程化底座,算法提供检索/规划/限流/缓存的内核,AI/Agent 是最终交付形态。
为什么要四线交叉,而不是串行
AI Agent 工程师与传统后端工程师的差别,不在模型本身,而在围绕模型的系统工程:如何把一次不稳定的模型调用,包装成可恢复、可观测、可评测、可审计的运行时。
这个目标恰好落在四类能力的交集上:
- 模型调用会失败,要重试与限流 → 需要并发与算法;
- 工具调用要触碰真实文件与网络 → 需要 Linux 内核能力做边界;
- 上下文、检索、评测要长期维护 → 需要 Python 工程化;
- 最终形态是一套服务 → 需要容器、部署与可观测性。
所以正确姿势是交叉推进,而不是"先学完 A 再学 B"。下面这张表是整体节奏,每周建议投入 10–15 小时:工作日 1–1.5 小时(以算法为主),周末 5–6 小时(以项目为主)。
| 阶段 | 周期 | Python | Linux | 算法(贯穿) | AI / Agent |
|---|---|---|---|---|---|
| P0 环境基线 | 第 1–2 周 | uv + ruff + pytest + mypy 模板仓库 | Shell 最小集 + SSH 密钥登录 | 复杂度分析 | 通读 Anthropic《Building Effective Agents》 |
| P1 工程打底 | 第 3–10 周 | 类型系统、Pydantic v2、asyncio、FastAPI 流式服务 | 权限/进程/cgroup v2/systemd/网络 | 数组、哈希、双指针、二分、排序 | 原生 API 手写 ReAct Agent;结构化输出 |
| P2 应用构建 | 第 11–24 周 | 数据栈、profiling、打包发布 | 容器化、反代 TLS、VPS 加固、可观测性 | 树、堆、图、DFS/BFS、拓扑排序、回溯、DP 入门 | RAG(混合检索+重排)、评测、MCP server/client |
| P3 Agent 深化 | 第 25–40 周 | 异步多工具运行时、性能优化 | eBPF/perf 排障、Landlock/seccomp 沙箱 | 并查集、Trie、贪心、高级 DP、字符串算法 | LangGraph 1.0 有状态工作流、多 Agent、A2A |
| P4 生产化 | 第 41–52 周 | vLLM 本地部署、服务切换 | 高可用、备份、监控告警 | 图算法综合、位运算、综合题 | 可观测+评测回归+安全防护的生产级 Agent |
一、Python 工程线:把"能跑"变成"敢维护"
版本基线
生产基线选 Python 3.12/3.13,新项目可以上 3.14(3.15 处于 RC 阶段)。需要掌握的语言特性集中在四处:
类型系统——类型注解、PEP 695 泛型语法、Protocol、TypedDict,大型项目直接上 --strict。Pydantic v2——Agent 领域几乎所有的"结构化输出"都靠它,Rust 核心带来实打实的性能提升。asyncio——TaskGroup 与 asyncio.timeout() 是并发的正确姿势。自由线程(PEP 779)——3.14 起官方支持但非默认,构建名 python3.14t;由于 C 扩展兼容性仍不完整,不建议作为 Agent 服务默认运行时,只用于评估。
工具链已经收敛
2026 年的答案基本没有争议了:包管理用 uv(0.12.x,Rust 实现,uv init 默认生成 src layout),Lint/Format 用 ruff(一站式替代 flake8 + black + isort + pyupgrade),类型检查 pyright + mypy 双门禁,测试 pytest + pytest-asyncio + hypothesis。CI 用 GitHub Actions + astral-sh/setup-uv,流水线应在 60 秒内跑完 lint + 类型 + 单测。
需要主动扬弃的旧习惯:手工维护 requirements.txt、setup.py、以及把 from __future__ import annotations 当作标配(3.14 的延迟注解求值之后,多数场景可以移除)。
Agent 场景的并发写法
这一节是 Python 线上最容易踩坑的地方,直接给对照表:
| 需求 | 正确用法 |
|---|---|
| 全部成功才继续,任一失败即取消 | asyncio.TaskGroup |
| 允许部分失败、需要逐条结果 | gather(..., return_exceptions=True) |
| 单任务超时隔离 | 每个任务包 asyncio.wait_for |
| 限流 LLM API | asyncio.Semaphore(N) |
| 阻塞调用 | asyncio.to_thread() |
两个必须注意的细节:Semaphore 限的是并发数而不是 TPM,真正控制速率需要叠加 token 感知限流与指数退避;另外不要裸 create_task() 而不持有引用,任务可能被 GC 静默回收,同时绝不要在 except Exception 里吞掉 CancelledError。
线上排障首推 py-spy——进程外采样、零改码、开销低于 1%,容器中需授予 SYS_PTRACE 能力。
二、Linux 线:Agent 的沙箱不是"跑个 Docker 就安全了"
最小熟练集
Shell 层面需要 set -euo pipefail、管道与重定向、grep/sed/awk、sort | uniq -c | sort -nr、jq,外加现代替代工具 rg / fd / bat / fzf / ncdu。判据很具体:能用一条管道从 1GB Nginx 日志里统计出 Top IP 与状态码分布。
与 Agent 直接相关的内核能力
这是 Linux 线区别于普通运维教程的地方:
权限最小化——专用低权用户 + 工作目录 chmod 700;systemd 硬化项 NoNewPrivileges=yes、ProtectSystem=full、ProtectHome=yes、PrivateTmp=yes、CapabilityBoundingSet=。
容器加固——--cap-drop=ALL、--read-only、--security-opt=no-new-privileges、seccomp profile。这里有一个必须理解的结论:Docker group 权限约等于 root,容器并不是天然的安全边界。
Landlock(Linux 5.13+)——无需 root 就能把进程可读写的目录限定在指定路径之下,是目前给编码 Agent 做文件级沙箱的轻量方案;需要更强隔离时用 gVisor 或 Firecracker 微虚拟机。
cgroup v2——统一层级下的 memory.max / cpu.max / io.max,配合 PSI 判断真实压力。注意 cgroup v1 正在被移除:Ubuntu 26.04 起仅支持 v2,Kubernetes 1.35 起移除 v1 支持。
单台 VPS 的加固清单
针对"1GB 内存 VPS 部署 Agent"这个典型场景:SSH 改非默认端口 + 仅密钥认证 + 禁用 root 登录 + 禁用密码认证;ufw default deny incoming 后再放行必要端口(注意 Docker 会绕过 UFW 规则,需要用 DOCKER-USER 链或直接上 nftables);fail2ban;unattended-upgrades;配置 2GB swap 并调低 vm.swappiness(1GB 内存跑 Agent 必需);/tmp 挂载 noexec,nosuid,nodev。
至于编排:单台 VPS 用 Docker + Compose 就够了,不需要 Kubernetes。等出现多节点、高可用、团队共享或自动扩缩需求时再学 K8s,从 minikube/kind 起步。
三、算法线:不是"为了面试才学"
认知框架
必须内化的不只是大 O,而是三个尺度的区分:最坏、平均、摊还。动态数组扩容、哈希表扩容、并查集路径压缩,都是摊还而非单次。工程判断尺:n ≤ 20 上指数/回溯,n ≤ 5000 上 O(n²),n ≤ 10⁶ 上 O(n log n),n ≥ 10⁸ 必须 O(n) 且做常数优化。还有一个常被忽视的点:常数因子与缓存局部性常常比理论阶更重要,连续内存数组在真实硬件上经常打败链式结构。
算法在 Agent 工程里的真实落点
这是我认为最值得强调的部分——算法在 Agent 里是高频出现的,不是负担:
| 算法 / 数据结构 | Agent 工程中的落点 |
|---|---|
| 分层可导航图 + 跳表思想 | HNSW 向量索引(pgvector / Qdrant / FAISS 默认),关键参数 M / efConstruction / efSearch |
| k-means + 倒排表 | IVF 向量索引,nlist≈√n,nprobe 调召回 |
| 堆 / 优先队列 | 重排 Top-K、beam search、合并 K 路 |
| 哈希表 + 双向链表 | LRU 缓存 O(1);LFU 用频率桶 + minFreq 指针 |
| 令牌桶 / 滑动窗口 | LLM API 限流;分布式用 Redis + Lua 原子化 |
| DAG + 拓扑排序 | Agent 任务规划:依赖图分层并行 + DFS 环检测 |
| 分块 + 滑动窗口 + 递归摘要 | 上下文压缩,对抗 “lost in the middle” |
| MinHash + LSH / Rabin-Karp | 数据去重、内容寻址 |
刷题策略与面试现实
Blind 75、Grind 75、NeetCode 150 三个题单重叠度约 85%,选哪个不重要,按模式刷而非按题号刷才重要。推荐路线:先用 Blind 75 做 4–6 周快速覆盖,再用 NeetCode 150 系统补齐(含贪心、高级图、二维 DP),约 16 周可达到 Hard 题可解。复习用间隔重复(Anki SM-2 或 1/3/7/14/30 天的表格),每天 5–10 题封顶。核心信条:深度 20 题 × 5 遍 胜过 广度 100 题 × 1 遍。
面试趋势需要客观地说:非算法类后端岗位的算法权重确有下降(社区数据称降至 20–25%,系统设计升至 35–40%),但 AI/大模型岗位并未降低算法权重,而是新增了"组件手撕"这条第二轨——Self-Attention/MHA、K-Means、MLP 反向传播、top-p/Beam Search、LoRA 都可能被要求现场手写。结论是:算法是下限,系统设计与项目经验是上限。
四、AI / Agent 线:先手写,再上框架
一个已经完成的概念换代
2025 年最重要的概念迁移,是 prompt engineering 被 context engineering 取代并包含。Anthropic 在 2025-09 给出正式定义:统一编排 system instructions、tools、MCP、外部数据与消息历史。配套的核心认知是 context rot——token 越多,模型召回越差,上下文是有限预算而非免费资源。所以学习时要直接以"上下文工程"为组织框架,别继续停留在单轮 prompt 调优。
RAG 的生产范式已经变了
“纯向量检索 + 固定 512 token 切分"是早期做法。2025–2026 的生产范式是:混合检索(BM25 + dense,用 RRF 融合)+ cross-encoder 重排 + 语义/层级分块。cross-encoder 重排通常带来 20–35% 的准确率提升,代价是 200–500ms 延迟;语境化检索和语义分块另有 20–30% 增益。评测必须分层——检索质量、忠实度、答案相关性分开测,工具用 RAGAS 或 DeepEval。
框架选型的当前事实
| 框架 | 状态 | 定位 |
|---|---|---|
| LangChain 1.0 + LangGraph 1.0 | 2025-10 GA | Agent 跑在 LangGraph runtime 上,生态最广 |
| Microsoft Agent Framework | 2026-04 1.0 GA | AutoGen + Semantic Kernel 合并产物,后两者维护模式 |
| OpenAI Agents SDK | 2025-03 | Handoff + guardrails + 默认 tracing |
| Claude Agent SDK | 2025-09 更名 | 子 Agent + 权限钩子 + MCP 一等公民 |
| Google ADK | 2025-05 v1.0 | Sequential/Parallel/Loop + A2A |
选型建议很明确:先用原生 API 手写 ReAct loop,不要一上来就上框架。Anthropic 官方明确把过早的框架抽象称为反模式——在没理解 Agent Loop 之前,框架只会掩盖问题。理解循环之后,若无云厂商绑定,优先学 LangGraph 1.0。
协议与可观测性
MCP 自 2024-11 由 Anthropic 发布,2025-12 捐赠给 Linux Foundation 下的 Agentic AI Foundation,规格已演进到无状态化版本,生态已有上万 server。A2A 由 Google 于 2025-04 发布、同年捐赠 Linux Foundation,2026-04 达到 v1.0。这两个协议属于"必须动手实现一遍"的内容。
可观测性方面,OpenTelemetry GenAI 语义约定已成为事实标准,落地工具选 Langfuse(开源)、LangSmith、Arize Phoenix 或 AgentOps。
安全以 OWASP LLM Top 10(2025 v2.0) 为准,与 Agent 最相关的是 LLM01 提示注入、LLM06 过度授权、LLM07 系统提示泄露;另有 Agentic Top 10 覆盖目标劫持与工具滥用。防护归结为最小权限、人在环审批、输入输出 guardrails、间接注入检测。
五、四线怎么收束到一个项目
这才是这套路线图和"四个清单拼盘"的根本区别。建议把最终项目设计成一个同时压测四条线的系统:
- 沙箱边界来自 Linux——用 systemd 硬化 + cgroup v2 内存上限 + Landlock 文件白名单约束 Agent 进程,而不是简单地
docker run。 - 并发与限流来自 Python + 算法——
asyncio.TaskGroup管多工具并发,Semaphore 控并发数,令牌桶控速率,LRU 缓存复用工具结果。 - 检索内核来自算法 + Python——HNSW/IVF 索引 + cross-encoder 重排(堆取 Top-K),预处理用 Polars,服务用 FastAPI。
- 任务规划来自图算法——多步任务建成 DAG,拓扑排序分层并行,DFS 检测依赖环。
- 可观测性来自 Linux + AI——OTel GenAI span 汇聚到 Langfuse,主机与容器指标由 node_exporter/cAdvisor 供给 Prometheus,内核层排障用 bpftrace。
- 交付形态来自两端——Python 打包(
uv build)+ 容器化(Compose + Caddy TLS)部署到 VPS。
当这六条全部打通,你就越过了"会调 API"的阶段,进入"能负责一个 Agent 服务上线"的层次。
六、最小可用路径与常见反模式
如果无法投入 12 个月,可压缩为 6 个月、每周 12 小时:砍掉 Kubernetes、eBPF、小模型训练、高级 DP 与字符串算法、多 Agent 系统;保留 uv/ruff/pytest/FastAPI/Pydantic、Linux 基础 + VPS 加固 + Docker Compose、手写 ReAct Agent + RAG + 一个 MCP server、NeetCode 150 精刷。判据不变——每个阶段都要有可运行的产出物,而不是"看完了”。
最后是六个我见过最多的反模式:
- 教程地狱:只看不写。任何超过 40 分钟没有代码产出的学习都值得警惕。
- 先框架后原理:直接上手 LangChain,出问题无法定位是模型、提示还是编排的错。
- 追求数学完备:手推注意力反向传播对应用工程师没有边际收益,理解 QKV/softmax 与梯度下降直觉即可。
- 算法只刷不总结:不按模式归类、不做间隔重复,等于用最高成本换最低留存。
- 过早引入复杂度:单机 VPS 就上 K8s,单 Agent 就上多智能体,典型的过度工程。
- 忽视评测与可观测性:这是 demo 与生产之间最大的鸿沟,也是最容易被跳过的部分。
结语
这四条线的最优推进方式是交叉而非串行。Python 与前 8 周的工程化打底决定后续所有项目的质量上限;Linux 的系统能力决定 Agent 能否安全地触碰真实世界;算法决定检索、规划、限流、缓存这些"看不见但决定性能"的环节;AI/Agent 则是前三者收束的交付形态。以 12 个月为周期、以可运行产出物为里程碑,是当前最务实的路径。
需要说明的是,AI/Agent 生态迭代极快,文中涉及的框架版本与协议规格均为 2025–2026 年的核实结果,落地时请以官方文档为准;部分效率提升数字(如重排的准确率增益)来自厂商口径,应视为方向性参考。
说明:本文由深度研究流程产出(四路并行调研 + 微信公众号信源交叉验证)。完整的调研过程、45 条参考来源与最小可用路径细节,见配套研究报告 research_report_ai_agent_learning_path.md;调研方法与任务拆分见 research_plan_ai_agent_learning_path.md。