最强agent学习路线

发布时间:2026/7/30 3:06:19

最强agent学习路线 # Agent 开发学习计划从入门到独立完成项目建议采用 **8 周、每周 812 小时** 的学习周期。核心路线是 **大模型 API → Prompt 与结构化输出 → 工具调用 → Agent 循环 → 记忆与知识库 → 工作流编排 → 评估与安全 → 完整项目**第一阶段不要同时学习多个框架。建议先使用 **Python OpenAI Agents SDK** 理解 Agent 的基本机制再学习 LangGraph 处理复杂、可恢复的工作流。OpenAI Agents SDK 的核心抽象相对少主要包括 Agent、工具、handoff、guardrails、sessions 和 tracing比较适合作为入门框架。([OpenAI][1])---## 一、你最终要达到的能力完成学习后你应该能够独立完成下面这些工作1. 调用大模型 API并正确管理配置、异常和费用。2. 为模型设计清晰的系统提示词。3. 让模型输出符合 Pydantic 定义的结构化数据。4. 把 Python 函数、数据库和第三方 API 封装成工具。5. 实现“思考—调用工具—观察结果—继续执行”的 Agent 循环。6. 管理多轮对话、短期记忆和长期记忆。7. 构建基于文档的 RAG Agent。8. 使用工作流控制 Agent而不是完全依赖模型自由决策。9. 编写测试集评估 Agent 的正确率、成本和延迟。10. 将 Agent 封装为 API 或 Web 应用并部署。---# 二、8 周学习安排## 第 1 周理解大模型应用而不是急着写 Agent### 理论目标理解以下概念* LLM 是如何根据上下文生成结果的* system、user、assistant 消息的区别* Token、上下文窗口、温度、输出长度* Prompt、结构化输出和普通文本输出* 幻觉为什么会发生* API 调用与网页版聊天的区别* 同步、异步和流式输出最重要的是建立一个认识 Agent 不是一个全新的模型而是“大模型 指令 工具 状态 控制循环”。### 实践任务完成三个小程序1. 命令行聊天机器人2. 文本总结器3. 信息提取器信息提取器要求输出固定的数据结构例如pythonfrom pydantic import BaseModelclass TaskInfo(BaseModel):title: strpriority: strdeadline: str | None输入text我需要在周五之前完成 Agent 项目的数据库设计这件事很重要。输出json{title: 完成 Agent 项目的数据库设计,priority: high,deadline: 周五}### 本周验收标准你能够* 独立调用一次模型 API* 从环境变量读取 API Key* 捕获请求异常* 获得稳定的 JSON 或 Pydantic 对象* 解释什么是 Token 和上下文### 项目结构textweek1_llm_basics/├── app.py├── config.py├── schemas.py├── prompts.py├── requirements.txt└── .env.example不要把 API Key 直接写进代码。---## 第 2 周工具调用与最小 Agent这是 Agent 开发最关键的一周。### 理论目标理解* 什么是 Tool Calling也叫 Function Calling* 工具名称、描述、参数 Schema 的作用* 模型只是“决定调用哪个工具”真正执行工具的是你的程序* 工具调用结果为什么要重新交给模型* Agent Loop 的基本结构* 最大循环次数和停止条件* 工具报错如何反馈给模型工具调用的基本流程是text用户提出任务↓模型判断是否需要工具↓模型生成工具名称和参数↓Python 执行工具↓把工具结果交回模型↓模型继续调用工具或生成最终答案### 实践任务先手写三个工具pythondef calculate(expression: str) - str:...def get_current_time(timezone: str) - str:...def search_local_notes(keyword: str) - list[str]:...然后完成一个“个人效率 Agent”支持* 数学计算* 查询本地笔记* 获取时间* 自动判断是否需要使用工具* 最多执行 5 轮* 工具异常时不崩溃OpenAI Agents SDK 可以将 Python 函数封装为工具并自动生成参数 Schema、进行 Pydantic 验证适合用来理解工具调用。([OpenAI][2])### 建议做两遍第一遍自己手写 Agent Loop。伪代码pythonmessages [system_message, user_message]for step in range(MAX_STEPS):response call_model(messages, toolstools)if response_has_tool_call(response):tool_result execute_tool(response.tool_call)messages.append(response.output)messages.append(tool_result)else:return response.final_textraise RuntimeError(Agent exceeded maximum steps)第二遍使用 Agents SDK 重写。pythonfrom agents import Agent, Runner, function_toolfunction_tooldef calculate(expression: str) - str:计算一个数学表达式。return str(eval(expression, {__builtins__: {}}))agent Agent(nameProductivity Assistant,instructions帮助用户完成任务必要时使用可用工具。,tools[calculate],)result Runner.run_sync(agent, 计算 125 * 48)print(result.final_output)实际项目中不要直接使用未经限制的 eval这里仅用于理解最小示例。### 本周验收标准你能够解释* 模型是否真的执行了 Python 函数* 工具描述为什么影响调用准确率* 为什么需要最大执行轮数* 工具返回值应该是文本、字典还是对象* 什么情况下不应该调用工具---## 第 3 周Prompt、上下文和对话记忆### 理论目标学习 Prompt 的基本结构text角色目标输入说明可用工具执行规则输出格式边界条件失败处理方式示例理解两种“记忆”### 短期记忆当前对话中的消息历史。问题* 对话越长Token 成本越高* 历史内容可能包含无关信息* 旧指令可能干扰新任务常用处理* 保留最近 N 轮* 对旧对话进行摘要* 只保留与当前任务相关的信息### 长期记忆保存到数据库中的用户偏好、历史事实和任务记录。例如json{user_id: u001,preferred_language: Chinese,coding_level: Python beginner,current_goal: Build an independent agent project}### 实践任务开发一个“学习教练 Agent”* 用户可以设定学习目标* Agent 能记录用户的学习进度* 下次对话能够读取之前的进度* 长对话自动生成摘要* 用户可以纠正或删除记忆推荐先使用 SQLitetextusersconversationsmessagesmemorieslearning_tasks### 必须理解的原则不要把所有聊天内容都写入长期记忆。只保存* 稳定偏好* 明确目标* 用户主动要求保存的信息* 后续任务确实需要的信息敏感信息、临时内容和未经确认的推断不应直接成为长期记忆。Agents SDK 支持会话状态管理Agent 与 Runner 也可以代替开发者处理轮次、工具、handoff 和 session 等编排工作。([OpenAI][3])---## 第 4 周RAG 与知识库 Agent### 理论目标理解 RAG 的完整流程text文档↓解析和清洗↓切分 Chunk↓生成 Embedding↓存入向量数据库↓用户提问↓检索相关 Chunk↓将检索结果交给模型↓生成带来源的回答需要掌握* Chunk 大小与重叠* Embedding* 相似度检索* Top-K* 元数据过滤* 关键词检索和向量检索* 混合检索* 引用来源* 无答案时拒绝猜测### 实践任务开发“Python 学习资料问答 Agent”1. 准备若干 Markdown、TXT 或 PDF 学习资料。2. 对文档进行切分。3. 建立向量索引。4. 用户提问时检索相关片段。5. Agent 必须给出来源。6. 资料中没有答案时明确说明没有找到。7. 增加一个普通计算工具。这样你会得到一个同时具备* 知识检索* 工具调用* 对话能力的基础 Agent。### 验收测试至少准备 20 个问题* 10 个资料中明确有答案的问题* 5 个需要综合两个片段的问题* 5 个资料中没有答案的问题记录text问题期望答案检索到的文档最终回答是否正确是否出现无依据内容---## 第 5 周工作流、状态机与 LangGraph完成前四周之后再开始学习 LangGraph。LangGraph 是一个偏底层的 Agent 编排和运行框架重点在持久化执行、状态管理、人机协作以及复杂工作流控制其官方文档也建议先熟悉模型和工具再学习 LangGraph。([Docs by LangChain][4])### 理论目标分清两个概念### Workflow执行路径主要由程序决定。text接收需求→ 分类→ 检索资料→ 生成答案→ 审核答案→ 返回结果### Agent由模型动态决定下一步。text接收目标→ 模型选择工具→ 根据结果决定下一步→ 直到完成LangGraph 官方文档也将 workflow 描述为预定义代码路径而 agent 会动态决定过程和工具使用。([Docs by LangChain][5])### 实践任务使用 LangGraph 重构第 4 周的项目textSTART↓问题分类├── 普通知识问题 → 直接回答├── 资料问题 → RAG 检索├── 计算问题 → 计算工具└── 高风险问题 → 人工确认↓答案检查├── 合格 → 输出└── 不合格 → 重新生成↓END建议定义清晰的状态pythonfrom typing import TypedDictclass AgentState(TypedDict):user_query: strquery_type: strretrieved_documents: list[str]draft_answer: strreview_result: strretry_count: intfinal_answer: strLangGraph 的核心思路是用图表达 Agent 流程节点通常是 Python 函数边表示节点之间的流转关系。([Docs by LangChain][6])### 本周验收标准你能够判断* 哪些节点应该由代码控制* 哪些决策可以交给模型* 什么状态需要持久化* 失败后应该从哪个节点恢复* 如何防止流程无限循环---## 第 6 周多 Agent 与 MCP### 多 Agent不要因为名字听起来高级就把所有系统都做成多 Agent。单 Agent 能完成时优先使用单 Agent。只有下面这些情况才考虑多 Agent* 不同任务需要完全不同的提示词* 不同角色拥有不同的工具权限* 上下文过大需要拆分* 各任务可以并行处理* 需要独立审核角色* 不同任务需要不同模型Agents SDK 支持两类常见方式* **Agents as tools**主 Agent 把其他 Agent 当作工具调用。* **Handoff**当前 Agent 将任务交给另一个 Agent继续处理。([OpenAI][1])### 实践任务构建一个“研究报告 Agent”textCoordinator Agent├── Research Agent收集和整理资料├── Analyst Agent分析和归纳└── Reviewer Agent检查证据和逻辑工作流程text用户给出研究主题→ Coordinator 拆分任务→ Researcher 返回资料→ Analyst 形成初稿→ Reviewer 检查→ 不合格则返回修改→ Coordinator 输出最终报告### MCP本周只需要理解并做一个简单练习。MCP 是连接 AI 应用与外部系统的开放标准可用于暴露工具、资源和提示模板。([Model Context Protocol][7])你需要理解textMCP HostMCP ClientMCP ServerToolsResourcesPromptsTransport实践* 写一个本地 MCP Server* 暴露两个工具* 查询学习任务* 新增学习任务* 让 Agent 通过 MCP 调用它们不要一开始研究复杂的远程部署、认证和大量 MCP Server 集成。---## 第 7 周测试、评估、安全与可观测性一个能运行的 Agent不代表是一个可靠的 Agent。### 理论目标建立四类指标。### 1. 任务效果* 最终答案是否正确* 是否完成用户目标* 是否遗漏步骤* 是否使用了正确工具### 2. 工具行为* 工具选择准确率* 参数是否正确* 是否进行了不必要调用* 工具出错后是否正确恢复### 3. 系统指标* 响应时间* 模型调用次数* Token 消耗* 单次任务成本* 错误率Agents SDK 可以追踪每次运行的请求数、输入 Token、输出 Token和总 Token可用于成本监控和限制。([OpenAI][8])### 4. 安全指标* Prompt Injection 防护* 越权工具调用* 敏感数据泄露* 危险操作确认* 输出格式校验* 无限循环* 超预算执行### 实践任务为前面的项目建立测试集pythonTEST_CASES [{input: 计算 38 * 27,expected_tool: calculate,expected_contains: 1026,},{input: 根据资料解释 Python 装饰器,expected_tool: search_documents,must_have_citation: True,},]至少完成* 30 个固定测试案例* 5 个工具异常案例* 5 个 Prompt Injection 案例* 5 个长对话案例* 5 个资料中不存在答案的案例### 必须加入的保护机制text最大 Agent 步数单次任务 Token 上限工具超时参数验证工具白名单危险操作人工确认外部内容不可信标记输出 Schema 验证日志脱敏SDK 内置 tracing可用于查看和调试 Agent 的运行过程。([OpenAI][1])---## 第 8 周完成一个可展示的完整 Agent推荐你的第一个完整项目做成# 智能学习助理 Agent它与你现在的实际需求一致也能覆盖 Agent 开发的大多数核心能力。### 核心功能1. 用户设定学习目标。2. Agent 将目标拆解成学习计划。3. 查询用户当前的学习进度。4. 根据学习资料回答问题。5. 自动生成练习题。6. 批改用户答案。7. 保存学习记录。8. 每周生成学习总结。9. 必要时调用计算、检索和任务管理工具。10. 对重要数据修改要求用户确认。### 推荐技术栈textPython 3.11FastAPIPydanticOpenAI Agents SDKLangGraphSQLite后续可替换为 PostgreSQL向量数据库先选择一个轻量方案Streamlit 或简单前端pytestDocker### 推荐目录结构textlearning_agent/├── app/│ ├── main.py│ ├── api/│ │ ├── chat.py│ │ └── tasks.py│ ├── agents/│ │ ├── learning_agent.py│ │ ├── reviewer_agent.py│ │ └── prompts.py│ ├── workflows/│ │ ├── learning_graph.py│ │ └── state.py│ ├── tools/│ │ ├── calculator.py│ │ ├── knowledge_search.py│ │ ├── task_manager.py│ │ └── progress_tracker.py│ ├── memory/│ │ ├── short_term.py│ │ └── long_term.py│ ├── retrieval/│ │ ├── ingestion.py│ │ ├── chunking.py│ │ └── retriever.py│ ├── database/│ │ ├── models.py│ │ └── repository.py│ ├── schemas/│ │ ├── chat.py│ │ └── tasks.py│ ├── evaluation/│ │ ├── datasets.py│ │ ├── graders.py│ │ └── runner.py│ └── core/│ ├── config.py│ ├── logging.py│ └── exceptions.py├── tests/├── data/├── scripts/├── .env.example├── requirements.txt├── Dockerfile└── README.md### 最终演示流程text用户我想在一个月内掌握 Agent 开发。Agent1. 读取用户当前水平2. 生成学习计划3. 将计划写入任务数据库4. 推荐今天的学习任务5. 根据知识库回答问题6. 生成练习题7. 批改答案8. 更新学习进度9. 输出当日总结---# 三、每周固定学习节奏建议每周按照下面的比例安排| 环节 | 时间 | 内容 || ---- | ---: | --------------- || 理论学习 | 2 小时 | 阅读官方文档整理概念 || 示例复现 | 2 小时 | 不修改地运行官方示例 || 独立编码 | 4 小时 | 不照抄示例完成任务 || 测试调试 | 2 小时 | 构造错误输入和边界情况 || 复盘总结 | 1 小时 | 编写 README 和学习笔记 |每天推荐采用text20 分钟阅读概念60 分钟写代码20 分钟测试和记录问题最重要的是**每学一个概念立即写一个可以运行的小程序。**---# 四、推荐学习顺序严格按照这个顺序学习text模型 API→ 消息与 Prompt→ 结构化输出→ Tool Calling→ 手写 Agent Loop→ 使用 Agent SDK→ 对话状态→ RAG→ LangGraph→ 多 Agent→ MCP→ 评估与部署不要采用下面这种顺序text一开始就学多 Agent→ 同时学习五个框架→ 复制一个复杂开源项目→ 程序能运行但不知道为什么---# 五、学习过程中必须手写的 6 个项目按难度依次完成1. **结构化信息提取器**学习 API、Prompt 和 Pydantic。2. **工具调用助手**学习 Function Calling 和 Agent Loop。3. **带记忆的聊天助手**学习状态、会话和数据库。4. **本地文档问答 Agent**学习 RAG、引用和知识边界。5. **研究报告多 Agent**学习任务拆解、handoff 和审核。6. **智能学习助理**综合 API、工具、记忆、RAG、工作流、评估和部署。每个项目都必须包含textREADME环境变量示例类型注解异常处理日志单元测试测试数据集运行截图或演示视频---# 六、你暂时不需要深入学习的内容入门阶段先不深入* 模型微调* 自己训练大语言模型* 复杂强化学习* 大规模分布式 Agent* Kubernetes* 十几个 Agent 的群体协作* 高复杂度知识图谱* 浏览器自动化和电脑控制* 自主执行高风险操作* 同时适配大量模型供应商先做到 一个 Agent三个可靠工具一个清晰工作流一套测试数据。这比做十个不能稳定运行的 Agent 更有价值。---# 七、判断自己是否真正学会了遇到一个新 Agent 需求时你应该能回答1. 这个任务真的需要 Agent 吗2. 普通工作流是否已经足够3. 哪些步骤必须由代码控制4. 哪些步骤可以让模型判断5. Agent 可以使用哪些工具6. 每个工具需要什么权限7. 哪些操作必须人工确认8. 状态和记忆保存在哪里9. 如何判断任务已经完成10. 如何测试它比普通聊天机器人更好能够独立回答并实现这些问题就已经具备了独立开发 Agent 的基础能力。---## 最重要的学习原则**先理解循环再学习框架先做单 Agent再做多 Agent先建立测试再增加功能。**你的第一周不要追求做出“万能助手”。只完成一个能够稳定调用模型、返回结构化结果、具备异常处理的小程序。第二周再让它真正使用工具。这样进步最快也最不容易陷入“会调用框架但不会设计 Agent”的状态。[1]: https://openai.github.io/openai-agents-python/?utm_sourcechatgpt.com OpenAI Agents SDK[2]: https://openai.github.io/openai-agents-python/zh/tools/?utm_sourcechatgpt.com 工具 - OpenAI Agents SDK[3]: https://openai.github.io/openai-agents-python/agents/?utm_sourcechatgpt.com Agents - OpenAI Agents SDK[4]: https://docs.langchain.com/oss/python/langgraph/overview?utm_sourcechatgpt.com LangGraph overview - Docs by LangChain[5]: https://docs.langchain.com/oss/python/langgraph/workflows-agents?utm_sourcechatgpt.com Workflows and agents - Docs by LangChain[6]: https://docs.langchain.com/oss/python/langgraph/graph-api?utm_sourcechatgpt.com Graph API overview - Docs by LangChain[7]: https://modelcontextprotocol.io/docs/getting-started/intro?utm_sourcechatgpt.com What is the Model Context Protocol (MCP)? - Model Context Protocol[8]: https://openai.github.io/openai-agents-python/usage/?utm_sourcechatgpt.com Usage - OpenAI Agents SDK

相关新闻