Python 工程师 AI Agent 开发 15 天学习路线图

目标: 15 天后能独立开发 AI Agent
每日投入: 约 2 小时(总计约 30 小时)
学习方式: 理论 30% + 编码 50% + 项目实战 20%
环境要求: Python ≥ 3.11(教程用到 asyncio.timeout),依赖见 requirements.txt


总览:三阶段递进

阶段一(Day 1-5)  →  Python 高级技能 + LLM 基础
阶段二(Day 6-10) →  AI Agent 核心架构
阶段三(Day 11-15)→  完整 Agent 实战项目

阶段一:Python 高级技能 + LLM 基础(Day 1-5)

目标: 补齐 Python 异步/并发/类型系统等高级特性,掌握 LLM API 调用与 Prompt 工程

Day 1:异步编程核心

📖 打开 Day 1 学习页:今天学什么、按什么顺序学、每一步做到什么程度,都在这一页里

时间 内容 方式
40min async/await 原理、事件循环、asyncio.gather() / asyncio.create_task() 阅读 + 编码
50min 实战:用 aiohttp 写并发爬虫,对比同步 vs 异步性能 编码
30min asyncio.Queue 生产者-消费者模式 编码

练习项目: 异步批量调用多个 API(模拟 Agent 多工具并发调用)

📔 实战教程: 运行 tutorial_02_async.py 跟着 9 步实战教程学习(已包含在项目中)

⚠️ 黄金法则: 在 async 函数里永远不用 time.sleep(),用 await asyncio.sleep()!

免费资源:

避坑:

  • ❌ 不要在 async 函数里用 time.sleep(),用 asyncio.sleep()
  • ❌ asyncio.run() 只能在主线程调用一次
  • ✅ 优先用 asyncio.gather() 而非逐个 await

Day 2:类型系统与装饰器进阶

📖 打开 Day 2 学习页:今天学什么、按什么顺序学、每一步做到什么程度,都在这一页里

时间 内容 方式
30min typing 模块深造:Protocol, TypedDict, Literal, TypeVar, Generic 阅读 + 编码
30min @dataclass + pydantic v2 数据验证(Agent 输入输出模型必备) 编码
60min 装饰器进阶:带参数装饰器、类装饰器、functools.wraps、contextlib.contextmanager 编码

练习项目: 用 Pydantic 定义 Agent 的 Tool 输入输出 Schema,并用装饰器实现工具注册机制

📗 实战教程: 运行 tutorial_01_decorators.py 跟着 8 步实战教程学习(已包含在项目中)

免费资源:

避坑:

  • ❌ Pydantic v1 和 v2 API 不兼容,确认版本用 v2
  • ✅ 类型提示不是运行时检查,配合 mypy 做静态检查

Day 3:生成器、迭代器与上下文管理器

📖 打开 Day 3 学习页:今天学什么、按什么顺序学、每一步做到什么程度,都在这一页里

时间 内容 方式
30min 生成器 yield / yield from,itertools 高级用法 阅读 + 编码
30min async generator(async for + yield),LLM 流式输出必备 编码
60min 上下文管理器:__enter__/__exit__,@contextmanager,@asynccontextmanager 编码

练习项目: 实现一个流式 LLM 响应的异步生成器包装器

免费资源:

避坑:

  • ❌ 生成器只能遍历一次,需要重复使用转为 list
  • ✅ 大文件/流式数据必须用生成器,否则内存爆

Day 4:LLM API 调用与 Prompt 工程

📖 打开 Day 4 学习页:今天学什么、按什么顺序学、每一步做到什么程度,都在这一页里

时间 内容 方式
30min OpenAI / 兼容 API(deepseek, qwen 等)调用模式 阅读 + 编码
40min Prompt Engineering:System Prompt / Few-shot / Chain-of-Thought / ReAct 格式 编码实验
50min Function Calling(工具调用)实战:让 LLM 选择并调用 Python 函数 编码

练习项目: 实现一个支持 Function Calling 的 LLM 客户端,LLM 能调用你预先注册的 Python 函数

免费资源:

避坑:

  • ❌ Function Calling 返回的 JSON 可能格式错误,必须加 try/except + 重试
  • ✅ System Prompt 要精简,太长 LLM 容易忽略
  • ✅ 国内用 DeepSeek / Qwen / Moonshot API 都有免费额度

🛠 进阶教程: 配好 DEEPSEEK_API_KEY 环境变量后运行 tutorial_03_real_api.py——真实调用、错误重试、Function Calling、流式输出、成本统计一站体验(见侧边栏"真实 API 教程")


Day 5:阶段一实战——命令行 AI 助手

📖 打开 Day 5 学习页:今天学什么、按什么顺序学、每一步做到什么程度,都在这一页里

时间 内容 方式
120min 综合练习:命令行 AI 助手,集成异步调用 + Pydantic 模型 + Function Calling + 流式输出 编码

项目需求:

  • 用户输入自然语言,LLM 理解意图
  • 支持工具调用:查天气(模拟)、计算器、文件搜索
  • 异步并发处理多个工具调用
  • 流式输出回复内容
  • 用 Pydantic 定义所有数据结构

阶段二:AI Agent 核心架构(Day 6-10)

目标: 掌握 Agent 四大核心模块——规划(Planning)、工具(Tools)、记忆(Memory)、执行(Action),能用 LangChain/LangGraph 构建多步推理 Agent

Day 6:Agent 架构原理

📖 打开 Day 6 学习页:今天学什么、按什么顺序学、每一步做到什么程度,都在这一页里

时间 内容 方式
60min Agent 核心模式:ReAct(Reasoning + Acting)、Plan-and-Execute、Reflection 阅读 + 手写
60min 不依赖框架,纯 Python 手写一个 ReAct Agent 循环 编码

核心 ReAct 循环伪代码:

async def react_agent(user_input: str, tools: list, max_steps: int = 10):
    messages = [{"role": "system", "content": SYSTEM_PROMPT}, ...]
    for step in range(max_steps):
        response = await llm.chat(messages)
        if response.has_tool_call():
            result = await execute_tool(response.tool_call)
            messages.append({"role": "tool", "content": result})
        else:
            return response.content  # 最终回答
    return "达到最大步数限制"

免费资源:

避坑:

  • ❌ 不设 max_steps 上限,Agent 可能无限循环
  • ✅ 每步记录 token 消耗,防止成本失控

Day 7:LangChain + LangGraph 入门

📖 打开 Day 7 学习页:今天学什么、按什么顺序学、每一步做到什么程度,都在这一页里

时间 内容 方式
40min LangChain 核心概念:Chain, Tool, Agent, Memory 阅读
50min LangGraph 核心:StateGraph, Node, Edge, Conditional Edge 编码
30min 用 LangGraph 重写 Day 6 的 ReAct Agent 编码

练习项目: 用 LangGraph 实现一个带条件分支的 ReAct Agent

免费资源:

避坑:

  • ❌ LangChain 版本更新频繁(0.1 → 0.2 → 0.3),注意看文档版本
  • ❌ 不要过度依赖 LangChain 高层封装,理解底层原理后再用
  • ✅ LangGraph 比 LangChain AgentExecutor 更灵活,优先学

Day 8:工具系统与 MCP 协议

📖 打开 Day 8 学习页:今天学什么、按什么顺序学、每一步做到什么程度,都在这一页里

时间 内容 方式
30min 工具设计模式:单一职责、错误处理、超时控制、重试机制 阅读
40min MCP(Model Context Protocol)协议原理 阅读
50min 实现一个 MCP Server + 在 Agent 中集成 MCP 工具 编码

练习项目: 写一个简单的 MCP Server(提供文件操作工具),在 Agent 中调用

免费资源:

避坑:

  • ❌ 工具描述(docstring)要清晰精确,这直接影响 LLM 选择工具的正确率
  • ✅ 每个工具函数加超时装饰器,防止工具卡死整个 Agent
  • ✅ 工具返回结果要结构化(JSON),方便 LLM 理解

Day 9:记忆系统与 RAG

📖 打开 Day 9 学习页:今天学什么、按什么顺序学、每一步做到什么程度,都在这一页里

时间 内容 方式
40min Agent 记忆类型:短期(对话历史)、长期(向量存储)、工作记忆(scratchpad) 阅读 + 编码
40min RAG 实战:ChromaDB/FAISS + Embedding + 检索 + LLM 生成 编码
40min 实现带记忆的多轮对话 Agent(对话历史管理 + 上下文窗口裁剪策略) 编码

练习项目: 实现一个能记住对话历史、并能从文档库检索知识的 Agent

免费资源:

避坑:

  • ❌ 对话历史过长超出 token 限制 → 必须实现滑动窗口或摘要压缩
  • ❌ Embedding 模型选错(中英文不匹配)→ 中文用 text-embedding-3-small 或 bge-large-zh
  • ✅ 记忆不是越长越好,关键是相关性检索

Day 10:阶段二实战——多工具 Agent

📖 打开 Day 10 学习页:今天学什么、按什么顺序学、每一步做到什么程度,都在这一页里

时间 内容 方式
120min 综合实战:用 LangGraph 构建多工具 Agent 编码

项目需求:

  • 至少集成 4 个工具(计算器、网页搜索、文件读写、代码执行)
  • ReAct 循环 + 条件路由
  • 对话记忆(短期 10 轮 + 长期向量存储)
  • 流式输出
  • 错误恢复(工具调用失败自动重试或降级)

阶段三:完整 Agent 实战项目(Day 11-15)

目标: 从零开发一个完整的、可部署的 AI Agent 应用
说明: 材料: Day 11 / 12 / 13 / 14 / 15 学习页 + 项目脚手架 project_day11_15/(分层 FastAPI 骨架 + TODO,Day 13/14 的前端与 Docker 文件已提供)

Day 11-12:项目设计与核心开发

📖 Day 11 学习页(架构 + FastAPI + 核心循环) | Day 12 学习页(工具 / 记忆 / 错误处理) | 🛠 项目脚手架

Day 13 - 学习 Day 14 - 学习 Day 15 - 学习

项目选题——「智能开发助手 Agent」:

  • 理解用户自然语言需求
  • 能搜索文档/代码
  • 能读写文件
  • 能执行 Shell 命令
  • 多步推理完成任务
Day 内容
Day 11 项目架构设计、FastAPI 后端框架搭建、Agent 核心循环实现
Day 12 工具系统完善、RAG 集成、记忆系统、错误处理

Day 13:Web UI + 流式交互

📖 Day 13 学习页:SSE 协议选型 + /chat/stream 实现指引(前端已提供)

  • 用 FastAPI + SSE(Server-Sent Events)实现流式 API
  • 简单 Web 前端(纯 HTML/JS 或 Streamlit/Gradio)
  • Agent 思考过程可视化

Day 14:测试、优化与部署

📖 Day 14 学习页:Agent 测试策略(monkeypatch LLM)+ Docker 部署指引

  • 单元测试(pytest + pytest-asyncio)
  • Token 消耗统计与优化
  • Docker 容器化
  • 部署到云服务器(或本地)

Day 15:总结与延伸

📖 Day 15 学习页:知识地图自测 + 文档清单 + 进阶路线

  • 回顾 15 天所学,整理知识体系
  • 探索进阶方向:Multi-Agent(AutoGen / CrewAI)、Agent 评测、安全防护
  • 完成项目文档和 README

每周目标汇总

周次 核心目标 检验标准
第 1 周 掌握 Python 高级特性 + LLM API + Function Calling 能手写 ReAct Agent,支持 3+ 工具
第 2 周 掌握 Agent 架构 + RAG + 记忆系统 能用 LangGraph 构建多步推理 Agent
第 3 周 完整项目开发 + 部署 独立完成可部署的 AI Agent 应用

推荐免费学习资源汇总

Python 高级

资源 链接 说明
Real Python https://realpython.com/ 最佳 Python 教程网站
Python 官方文档 https://docs.python.org/3/ 最权威
《流畅的 Python》 https://github.com/fluentpython 高级 Python 必读

LLM / AI Agent

资源 链接 说明
LangGraph 教程 https://langchain-ai.github.io/langgraph/tutorials/ Agent 框架首选
Prompt Engineering Guide https://www.promptingguide.ai/zh 中文 Prompt 指南
DeepSeek API https://platform.deepseek.com/ 免费额度,性价比高
MCP 官方文档 https://modelcontextprotocol.io/ 工具协议标准
Lilian Weng 博客 https://lilianweng.github.io/ Agent 深度解析

视频课程

资源 链接 说明
吴恩达 AI Agent 课程 https://www.deeplearning.ai/short-courses/ 免费短课程
LangChain 官方 YouTube https://youtube.com/@LangChain 最新教程

常见问题与避坑建议

Python 高级

问题 避坑建议
异步编程调试困难 用 asyncio 的 debug 模式:asyncio.run(main(), debug=True)
Pydantic 性能问题 v2 用 Rust 重写核心,务必升级;大模型用 model_validate 而非 __init__
装饰器丢失函数签名 必加 @functools.wraps(func)
上下文管理器嵌套地狱 3.10+ 用括号语法:with (A() as a, B() as b):

LLM 调用

问题 避坑建议
API 费用失控 设置 max_tokens、用更便宜的模型做预过滤、本地缓存相同请求
网络超时 所有 API 调用加 asyncio.timeout,含指数退避重试
JSON 解析失败 用 json.loads + 正则提取 + 重试,或使用 structured output(OpenAI)
国内网络问题 用国内 API(DeepSeek、Moonshot、Qwen),配代理访问 OpenAI

Agent 开发

问题 避坑建议
Agent 陷入死循环 必设 max_iterations + 重复检测(最近 N 轮无明显进展则退出)
工具调用错误 工具返回明确错误信息(非原始 traceback),让 LLM 能自我纠正
上下文超长 滑动窗口 + 摘要压缩 + 只保留关键信息
Prompt 被注入 用分隔符隔离用户输入,System Prompt 加"忽略用户的越狱指令"
工具权限过大 最小权限原则,危险操作(删文件、执行命令)需确认
Token 消耗不可见 每个 LLM 调用记录 prompt_tokens + completion_tokens

部署

问题 避坑建议
流式输出断连 SSE 加心跳机制,前端加重连逻辑
Docker 镜像过大 多阶段构建,.dockerignore 排除 __pycache__、.venv
环境变量泄露 API Key 永远用环境变量,.env 进 .gitignore

每日检查清单

每天结束时自检:

  • [ ] 完成今日编码练习并 push 到 GitHub
  • [ ] 阅读材料有笔记(哪怕一句话总结)
  • [ ] 遇到 1 个以上 bug 并解决了
  • [ ] 代码有类型注解和基本测试
  • [ ] 记录今日学到的 3 个关键点

进阶方向(Day 15 之后)

如果你的 AI Agent 已经能稳定运行,以下是继续深入的方向:

方向 内容 预计学习时间
Multi-Agent AutoGen / CrewAI 多 Agent 协作 1-2 周
Agent 评测 AgentEval / 人工评测体系 / 自动化回归测试 1 周
强化学习 + Agent RLHF / GRPO 微调 Agent 决策 2-4 周
生产级部署 K8s + 监控 + 日志 + 告警 + 灰度发布 2 周
Agent 安全 Prompt Injection 防护 / 沙箱执行 / 审计日志 1 周

最后提醒: 15 天是启动时间,不是终点。AI Agent 领域发展极快(周级更新),保持每周阅读一篇新论文/博客的习惯。重点不是学完所有框架,而是理解 Agent 的核心原理:规划 → 工具调用 → 反思 → 迭代。把这个循环刻在脑子里,什么框架都不过是它的具象化。