AI Agent 学习路线
来源
本页整理自 Datawhale 公众号文章《重磅 |完备的 AI Agent 学习路线,最详细的资源整理!》和开源仓库 datawhalechina/Agent-Learning-Hub。原仓库由 陈思州 维护,作者主页见 小红书。PDF 导出版丢失了大量跳转链接,因此这里以仓库 README 的链接版为主,重写成站内学习笔记。
如何使用
- 如果你是新手:按“学习路线”从 Stage 0 往下做,每完成一项就打勾。
- 如果你已经会 LLM 应用:从 Stage 2 或 Stage 3 开始,重点补 Agent loop、工具调用、评测和工程化。
- 如果你想做项目:直接看“项目阶梯”,每一档做一个可运行作品。
- 如果你只想找资料:看“资源地图”,优先读官方文档和经典论文。
先说结论
学 AI Agent 不建议一上来就追“多角色聊天框架”。更值得投入的是能真实完成任务的 agent harness:
- 能观察环境、调用工具、拿到结果、继续决策。
- 有状态、记忆、权限边界、失败恢复和 trace。
- 能在真实代码库、网页、文件系统、RAG 资料库或业务系统里完成闭环。
- 有 eval 和回归测试,而不是只靠一次 demo 看起来成功。
一句话概括:
模型能力很重要,但 agent 的可靠性常常来自模型外面的 harness:工具协议、上下文管理、权限门禁、日志、回放、评测和部署方式。
先区分四个概念
| 概念 | 核心特征 | 什么时候适合 |
|---|---|---|
| Chatbot | 主要生成文本,不主动操作外部环境 | 问答、解释、改写、头脑风暴 |
| Workflow | 固定流程,步骤由人或程序提前写死 | 规则稳定、可预测、低不确定性的任务 |
| Agent | 根据观察结果动态决定下一步,并调用工具行动 | 任务步骤不完全确定,需要搜索、尝试、修正 |
| Multi-agent | 多个 agent 分工协作,本质是协调问题 | 单 agent 职责过宽,需要 planner、executor、reviewer 等边界 |
如果一个普通脚本或固定 workflow 能稳定解决问题,就不必强行做成 agent。Agent 的价值在于处理不确定性,而不是把简单流程包装得更复杂。
当前优先级
| 优先级 | 方向 | 为什么重要 |
|---|---|---|
| 1 | Claude Code / Codex 风格 coding agent | 真实代码库、shell、文件编辑、测试、权限和上下文压缩,是最好的工程样本 |
| 2 | Agent harness engineering | Agent 能力很大一部分来自工具、状态、权限、反馈、回放和 eval |
| 3 | OpenClaw / Hermes 风格个人 agent | 长运行、本地优先、跨应用、记忆、skills 和消息入口,更接近个人操作系统 |
| 4 | Skills / MCP / A2A / ACP | Skills 复用能力,MCP 连接工具和数据源,A2A 连接 agent,ACP 连接宿主应用 |
| 5 | Evaluation and safety | 没有 eval、trace 和权限边界的 agent 只能算 demo |
老式 crew / role-play 框架可以了解历史脉络,但不应成为主线。现在更该关心的是:agent 怎样可靠地做事、怎样被调试、怎样被限制、怎样上线。
学习路线
Stage 0:理解什么是 Agent
要先能回答三个问题:
- 这个任务为什么需要 agent,而不是普通 workflow?
- Agent loop 里的 observe、think、act、observe 分别是什么?
- 哪些操作必须交给人确认?
推荐先读:
- Anthropic: Building effective agents:区分 workflow 和 agent 的边界。
- OpenAI: A practical guide to building agents:从产品和工程角度理解 agent 落地。
本阶段产出:写一页短笔记,说明你想做的场景为什么需要 agent,以及失败时应该怎样停下来。
Stage 1:搭一个最小 Agent Loop
这一阶段不要急着上框架。目标是亲手写出最小闭环:
- 用一个 LLM API 完成普通对话。
- 让模型输出结构化 JSON。
- 定义一个工具函数,例如
calculator、search、read_file。 - 解析 tool call / function call。
- 执行工具,把结果喂回模型。
- 加最大步数、超时、异常处理和最终答案判断。
推荐阅读:
本阶段产出:一个 50-150 行的最小 agent,可以选择工具、执行工具、返回最终答案。
最小 loop 可以长这样:
messages = 用户问题
for step in range(max_steps):
model_output = llm(messages, tools)
if model_output 是最终答案:
return answer
if model_output 是工具调用:
result = run_tool(model_output.tool_name, model_output.args)
messages += 工具结果
return "达到步数上限,停止执行"
Stage 2:工具调用、RAG 与记忆
Agent 真正开始有用,通常从接工具开始:
- 搜索、数据库、文件、浏览器、代码执行都可以成为工具。
- RAG 需要处理 chunk、embedding、retrieval、rerank、citation。
- 记忆要区分短期上下文、会话记忆、长期记忆。
- 工具失败、空结果、重复调用、幻觉引用都要单独处理。
- 回答里要能给出来源或证据。
推荐阅读:
开源项目参考:
| 项目 | 适合学习 |
|---|---|
| GPT Researcher | 搜索、抓取、筛选、引用和长报告生成 |
| Open Deep Research | LangGraph 风格的多轮搜索、状态管理和引用输出 |
| STORM | outline、question asking、多视角资料综合 |
| Khoj | 个人 second brain、本地文档、网页和长期记忆 |
| Onyx | 企业级 RAG/search assistant、connectors、hybrid search 和权限 |
| AnythingLLM | 本地 RAG + agents 的完整产品形态 |
| RAGFlow | 文档理解型 RAG、ingestion、chunking、grounded answer |
| mem0 | 给 agent 加长期 memory 的组件思路 |
| Letta | stateful agents 的 memory/context 平台 |
本阶段产出:一个资料研究助手,输入主题后自动搜索、筛选、总结,并输出引用链接。
Stage 3:吃透一个现代 Agent Harness
选一个现代 agent 系统学深。重点不是背框架 API,而是拆它怎么组织 agent loop、tool registry、permission gate、session store、context compaction、trace / replay、subagent 和 sandbox。
| 系统 | 适合学习 |
|---|---|
| Claude Code Docs | coding agent 的 CLI、工具、权限、hooks、subagents 和 MCP |
| learn-claude-code | 从零复刻 Claude Code-like harness |
| claw0 | 从 agent loop 走到 gateway、memory、heartbeat、delivery 和 concurrency |
| hello-agents | 中文智能体系统教程 |
| OpenClaw | 本地长运行 agent、skills、系统工具和安全边界 |
| Hermes Agent | 自托管、长期记忆、skills、toolsets 和消息网关 |
| CyberClaw | 透明 agent 架构、行为审计、两段式安全调用和心跳任务 |
| LangGraph | 状态图、可恢复执行和可控编排 |
本阶段产出:一个可调试的 harness demo,包含 README、运行步骤、示例输入输出和失败记录。
Stage 4:多 Agent 是协调,不是魔法
Multi-agent 的重点不是“让多个角色聊天”,而是把职责边界写清楚:
- planner 负责拆任务。
- executor 负责执行。
- reviewer 负责检查。
- router 负责分派。
- critic 负责指出风险。
推荐阅读:
- Claude Code Subagents
- Claude Code Hooks
- Google Agent Development Kit
- Agent2Agent Protocol
- Agent Client Protocol
本阶段产出:一个小型多 agent 系统,例如 research -> write -> review -> revise。
Stage 5:Skills、协议与能力打包
现代 agent 的能力不只来自工具,也来自可复用的 skills。
| 概念 | 作用 |
|---|---|
| Tool | 可调用接口,例如搜索、读文件、运行测试 |
| Prompt | 一次性的指令或任务描述 |
| Skill | 可发现、可版本化、可分发的流程知识包 |
| MCP | 标准化连接外部工具、数据源和服务 |
| A2A | 让不同 agent 发现、通信和协作 |
| ACP | 连接 IDE、终端、编辑器等宿主应用和 agent |
推荐阅读:
- Claude Code Skills
- Claude Agent Skills
- Claude Code Agent SDK Skills
- OpenClaw Skills
- Model Context Protocol
- Agent2Agent Protocol
- Agent Client Protocol
本阶段产出:一个可复用 skill,例如 code-review、research-report、migration-helper、pdf-extraction 或 release-note-writer。
Stage 6:浏览器与计算机操作 Agent
Browser agent 和普通 API tool 的区别在于:它要在不稳定的 UI 环境里行动。
需要掌握:
- 用 Playwright 或 browser-use 观察网页、点击、输入、等待。
- 处理页面变化、弹窗、加载失败、元素定位失败。
- 记录截图、DOM、动作日志,方便复盘。
- 给敏感操作加安全限制,不越权、不绕过平台规则。
推荐阅读:
本阶段产出:一个只操作公开网页的 browser agent,例如打开网页、提取信息、生成摘要。
Stage 7:评测、可观测性与安全
这一步决定 agent 是 demo 还是可维护系统。
需要补齐:
- 固定测试集,而不是只看一次演示。
- 成功率、失败原因、工具调用次数、成本、延迟。
- trace,能定位失败发生在 prompt、工具、检索、模型还是状态管理。
- prompt injection、data exfiltration、tool abuse 等风险意识。
- 危险工具的人类确认机制,例如发邮件、删文件、付款、发布内容。
- 回归测试,防止 prompt 或工具改动后能力退化。
推荐阅读:
本阶段产出:一个 agent eval 表格,至少包含 20 个任务、期望结果、实际结果和失败分类。
Stage 8:把一个 Agent 送上线
上线不是把 demo 放到网页上,而是让别人能稳定使用:
- 有明确用户、明确任务、明确成功标准。
- 有日志、trace、错误重试、超时和成本上限。
- 有权限边界和人工确认机制。
- 有部署方式,例如 CLI、Web app、Slack bot、GitHub Action 或后台任务。
- 有 README,说明怎么运行、怎么配置 key、怎么扩展工具、有哪些限制。
本阶段产出:一个别人能 clone 下来跑的 agent 项目。
项目阶梯
| Level | 项目 | 主要练习 |
|---|---|---|
| 1 | Calculator Agent | 最小 tool call loop |
| 2 | Web Research Agent | 搜索、筛选、引用、总结 |
| 3 | PDF QA Agent | RAG、chunk、retrieval、citation |
| 4 | Coding Review Agent | 读取 diff、风险排序、测试建议 |
| 5 | Browser Agent | 页面观察、点击、提取、失败恢复 |
| 6 | Claude Code-like Nano Agent | shell、文件编辑、权限、session、compact |
| 7 | OpenClaw-like Gateway | channel、routing、session、memory、heartbeat、delivery |
| 8 | Reusable Skill Pack | SKILL.md、脚本、模板、触发条件、smoke test |
| 9 | Multi-Agent Writer | planner、writer、reviewer 协作 |
| 10 | Personal Agent | OpenClaw / Hermes 风格的记忆、skills、消息入口 |
| 11 | Production Harness | evals、trace、权限、CI、runner、回放 |
更实际的做法是:每个 level 都做一个小而完整的项目。不要一边学一边堆大而全的系统,否则调试面会爆炸。
资源地图
原仓库的资源很多,阅读时建议按目的分层,而不是按 star 数乱读。
官方指南与博客
| 资源 | 适合解决什么问题 |
|---|---|
| Anthropic: Building effective agents | agent 设计入门,尤其是 workflow 和 agent 的边界 |
| Claude Code Overview | coding agent 产品形态、CLI、权限、hooks、subagents、MCP |
| Claude Code Subagents | 任务拆分、上下文隔离和专用子代理 |
| Claude Code Hooks | 拦截、校验和扩展 agent 行为 |
| Claude Code GitHub Actions | 把 coding agent 接进 PR / issue 工作流 |
| Claude Code Advanced Patterns | subagents、MCP 和真实代码库扩展 |
| OpenAI: A practical guide to building agents | agent 产品化和工程落地 |
| OpenAI: New tools for building agents | Responses API、Agents SDK、工具和 tracing 的官方介绍 |
| OpenAI Agents SDK | OpenAI 原生 agent 开发入口 |
| Claude Tool Use | Claude 工具调用机制 |
| Claude Computer Use | 电脑操作类 agent 参考 |
| Gemini Function Calling | Gemini 工具调用 |
| Gemini Code Execution | Gemini 代码执行工具 |
| Google Agent Development Kit | Google 的 agent 开发框架 |
| Model Context Protocol | agent 连接工具和数据源的协议 |
项目地图
| 层次 | 推荐项目 | 重点看什么 |
|---|---|---|
| 从零实现 | learn-claude-code, claw0, hello-agents | agent loop、tool registry、session、context compaction、gateway、trace、subagents |
| 个人常驻 Agent | OpenClaw, Hermes Agent, CyberClaw | 长运行、skills、记忆、消息入口、权限、安全审计 |
| Coding Agent | Claude Code, OpenAI Codex, OpenCode, OpenHands, SWE-agent | 真实代码库编辑、shell、测试、sandbox、PR 工作流 |
| Deep Research / RAG | DeerFlow, LlamaIndex | 搜索、抓取、检索、rerank、引用、报告生成 |
| 教程百科 | GenAI_Agents, hello-agents, smolagents, agents-towards-production | 横向比较 ReAct、Plan-and-Execute、Multi-Agent、production patterns |
| 浏览器/多模态 | browser-use, UI-TARS-desktop | 浏览器/桌面操作、视觉理解、动作空间、失败恢复 |
Skills、协议与工具
| 概念 | 推荐阅读 | 解决什么问题 |
|---|---|---|
| Skills | Claude Code Skills, OpenClaw Skills | 把流程知识、脚本、模板和验收标准打包成可复用能力 |
| MCP | Model Context Protocol | 标准化连接外部工具、数据源和服务 |
| A2A | Agent2Agent Protocol | 让不同 agent 发现、通信和协作 |
| ACP | Agent Client Protocol | 让编辑器、终端、IDE、宿主应用和 agent 对接 |
| Skill 质量 | SWE-Skills-Bench, Agent Skills analysis | 评估 skills 是否真的提升成功率 |
现代 Agent 系统
| 系统 | 适合学习 |
|---|---|
| Claude Code | coding agent 的产品化形态:shell、文件、权限、hooks、subagents、MCP |
| learn-claude-code | 从零构建 Claude Code-like nano agent |
| claw0 | 从零构建 OpenClaw-like agent gateway |
| hello-agents | 中文智能体系统教程 |
| OpenClaw | 本地优先个人 agent、长运行任务和系统级工具调用 |
| Hermes Agent | 自托管、长期记忆、skills、消息网关和 toolsets |
| CyberClaw | 透明可控 agent 架构、审计和安全边界 |
| DeerFlow | long-horizon SuperAgent harness、Deep Research、报告和多媒体生成 |
| smolagents | Hugging Face 轻量 agent 框架和 CodeAgent 思路 |
| LangGraph | 状态图和可控 agent 编排 |
| Qwen-Agent | Qwen 生态的工具调用、RAG、MCP agent 框架 |
| Pydantic AI | 类型安全和结构化输出 |
可选或历史框架
| 框架 | 备注 |
|---|---|
| CrewAI | 可了解 role/task/crew 抽象,但不建议作为主线 |
| AutoGen | 多 agent 对话框架经典项目,适合了解历史脉络 |
| LangChain Agents | 生态仍重要,但建议重点转向 LangGraph 和具体工程模式 |
论文
| 论文 | 主题 |
|---|---|
| ReAct | Reasoning + acting 基础范式 |
| Toolformer | 模型学习何时调用工具 |
| Reflexion | 语言反馈和自我改进 |
| Generative Agents | 记忆、反思、规划驱动的模拟 agent |
| Voyager | 开放世界中的长期学习 agent |
| AutoGen | 多 agent 对话框架 |
| AgentBench | Agent 能力评测 |
| WebArena | 真实网页环境下的 agent benchmark |
| SWE-bench | 真实 GitHub issue 修复评测 |
| SWE-agent | 软件工程 agent 的 agent-computer interface |
| Dive into Claude Code | coding agent harness、权限、压缩和扩展机制 |
| AI Harness Engineering | 把 harness 作为 agent 能力来源来研究 |
| Configuring Agentic AI Coding Tools | Claude Code、Codex、Gemini、Cursor 等工具配置 |
| Your Agent, Their Asset | 本地 agent 的安全风险分析 |
GitHub 仓库
| 仓库 | 适合学习 |
|---|---|
| datawhalechina/Agent-Learning-Hub | 本页来源,AI Agent 学习路线与资源索引 |
| datawhalechina/hello-agents | 中文智能体系统教程 |
| shareAI-lab/learn-claude-code | 从零学习 Claude Code-like agent harness |
| shareAI-lab/claw0 | OpenClaw-like gateway 的渐进实现 |
| openclaw/openclaw | 本地个人 agent、skills、长运行任务和权限边界 |
| NousResearch/hermes-agent | 自托管 agent、长期记忆、skills、toolsets、多平台消息网关 |
| ttguy0707/CyberClaw | 透明 agent、安全审计和两段式执行 |
| bytedance/deer-flow | Deep Research / long-horizon agent |
| NirDiamant/GenAI_Agents | ReAct、Plan-and-Execute、Multi-Agent 等实现对比 |
| NirDiamant/agents-towards-production | production-grade agent 教程 |
| huggingface/smolagents | 轻量 CodeAgent 风格框架 |
| openai/codex | OpenAI 开源 coding agent CLI |
| opencode-ai/opencode | 终端优先的开源 coding agent |
| langchain-ai/langgraph | 状态图和可控 agent 编排 |
| openai/openai-agents-python | OpenAI Agents SDK Python |
| QwenLM/Qwen-Agent | Qwen 生态 agent 框架 |
| browser-use/browser-use | 浏览器 agent 实战 |
| bytedance/UI-TARS-desktop | 多模态桌面 agent stack |
| SWE-agent/SWE-agent | 软件工程 agent |
| All-Hands-AI/OpenHands | 开源 coding agent |
| microsoft/ai-agents-for-beginners | 系统化入门课程 |
| jjyaoao/HelloAgents | 生产级多智能体框架示例 |
值得读的博客
| 博客 | 适合学习 |
|---|---|
| Lilian Weng: LLM Powered Autonomous Agents | agent 架构、记忆、规划和工具使用 |
| Simon Willison: AI/LLM writing | 很务实的 LLM 工程观察 |
| LangChain Blog | LangGraph、LangSmith、agent 工程实践 |
| Google Developers Blog: ADK | Google ADK 官方发布文章 |
Claude Code 学习路径
Claude Code 是当前最值得拆解的 coding agent 产品之一。建议顺序是:官方文档 -> 复刻项目 -> 架构解析 -> 工程对照。
| 资源 | 重点 |
|---|---|
| Claude Code Common Workflows | 官方工作流教程 |
| Claude Code Overview | 产品能力和命令行工作方式 |
| learn-claude-code | 从零复刻 Claude Code-like agent |
| Claude Code 源码解析 | 中文架构解读 |
| Claude Code 源码分析地图 | agent loop、工具、命令和多代理协作 |
| Dive into Claude Code | 研究视角下的 Claude Code harness |
| Agentic Education | 用 Claude Code 学 Claude Code 的交互式课程思路 |
一个月执行版
| 周次 | 目标 | 产出 |
|---|---|---|
| 第 1 周 | Stage 0-2:理解 agent、写最小 loop、接一个工具和一个 RAG 小任务 | 计算器 agent + PDF QA agent |
| 第 2 周 | Stage 3:拆一个现代 harness | harness 阅读笔记 + 加一个自定义工具 |
| 第 3 周 | Stage 4-6:多 agent、skills、browser agent | research-write-review demo + 一个 SKILL.md + 公开网页提取器 |
| 第 4 周 | Stage 7-8:eval、trace、安全和部署 | 20 条 eval 表 + 可运行 README + demo 部署 |
每周只保留一个主项目。资料可以多看,但代码项目不要同时开太多。
学习原则
- 先动手,再深读。
- 宁可做小的可靠 agent,也不做炫但不可复现的 demo。
- 工具参数必须用严格 schema。
- 加 multi-agent 前先加 eval。
- 重要运行都留 trace。
- 把 multi-agent 当协调问题,不当魔法。
- 高风险操作必须 human-in-the-loop。
- 尊重平台规则、版权和数据访问边界。
收录原则
适合继续补充的材料:
- 官方文档和官方工程博客。
- 高质量论文和 benchmark。
- 有 runnable code 的开源仓库。
- 有原创洞见的技术博客。
- 能帮助学习者练习某个具体能力的小项目。
不建议收录:
- 复制搬运的平台文章。
- 没有实质技术内容的课程广告。
- 私有或付费墙材料。
- 绕过平台规则的 scraping 内容。
自查清单
- 我能画出最小 agent loop。
- 我能解释 agent、workflow、chatbot、multi-agent 的区别。
- 我写过至少一个 tool call agent。
- 我处理过工具失败、超时和空结果。
- 我的 RAG 或搜索 agent 能输出可信来源。
- 我拆过一个现代 harness 的目录结构和 trace。
- 我写过一个
SKILL.md,并有 smoke test。 - 我做过至少 20 条 agent eval。
- 我知道哪些操作必须让人确认。
- 我有一个别人能 clone 下来跑的 agent 项目。