Agent 应用开发从 0 到 1 完整路线:8 个阶段 + 20+ 实战项目 + 避坑指南
来源:知乎 @平凡(发布于 2026-08-10,著作权归作者所有)
原文链接:https://www.zhihu.com/tardis/zm/art/2066544914452543247?source_id=1005
整理时间:2026-10-14
一、核心观点(先读这段)
作者参与多个企业 Agent 设计合作项目后的最大感触:很多企业一上来就奔着做 Agent,但其实并不合适。
- 大家听到 OpenClaw、Hermes 这类 Agent 很厉害,自己尝试一遍后发现效果反而不如 Workflow(工作流)。
- 很多时候老老实实写个 RPA 脚本,一晚上就能跑通,既稳定又便宜。而一上 LangChain + 向量库 + 多 Agent 这一套,做出来的东西又慢又不稳定,还烧钱。
- 不是 AI 不行,而是选错了工具。
场景选型结论:
| 使用场景 | 推荐做法 |
|---|---|
| 个人使用 | 直接用 Claude Code、Codex 等通用 Agent,没必要自己重复造轮子 |
| 商用/落地 | 「部分智能 + 高程度自动化」,结合 RPA 或 Workflow;稳定输出 > 智能化 |
| 学习路线 | 不建议直接啃 OpenClaw 源码,按「从基础到深入」一步步学 |
二、8 步学习路线
路线图:认知地基 → 找真痛点 → 手写第一版 → 锁输出 → 接工具 → 加记忆 → 建评估 → 扛生产
Step 1:花半天搭一个认知地基
别一上来就写代码,先花半天到一天搞清楚 Agent 的「零件」叫什么。这步不投入,后面看任何项目都会一脸茫然。
入门教程:
- microsoft/ai-agents-for-beginners:微软官方,12 节课从 agent 是什么讲到工具调用、RAG、多 agent 协作。最稳的入门。
- datawhalechina/hello-agents:中文版替代,Datawhale 出的系统教程,适合中文阅读。
必读:
- Anthropic《Building Effective Agents》:虽是 2024 年的文章,依旧非常有价值。短、密、反框架,看完会知道大多数 agent 应该长得多简单。
- datawhalechina/Agent-Learning-Hub:与本文 8 步几乎一一对应的中文系统路线图。从 Stage 0「基础认知」到 Stage 8「生产部署」,覆盖最小 agent 循环、Tool Use / RAG / 记忆、agent harness、多 agent、Skills 与 MCP、浏览器 agent、评估与可观测性。强调 Claude Code-style coding agent、OpenClaw-style 个人 agent 这些「真正在用的范式」。
出师标准:能用自己的话讲清「LLM、Tool Use、ReAct、上下文窗口、向量检索、Embedding、Agent vs Workflow」这几个词,就可以收手开干了。再啃下去反而是拖延。
Step 2:找你自己最痛的那个场景
别先迷上「agent」这个词再到处找用途。先找你工作里最烦、最重复的那个 SOP,再想 agent 能不能接管它。
真有人做出来的方向:查日志和错误码、周报自动汇总、邮件分类和回复初稿、代码 review 助手、长论文整理。
判断公式:
- 流程固定 → workflow 够;
- 路径随输入变 → 才需要 agent。
举例:
- 「每天把日报汇成周报」→ workflow;
- 「用户随口提一个模糊需求,自己决定先查什么、再算什么」→ 这才是 agent。
再退一步:如果连模型推理都不需要(纯粹「点按钮、复制字段、填表单」的重复劳动),老老实实写个 RPA 脚本(Python + Playwright,或 n8n、UiPath 这类工具)反而又快又稳又便宜。
能 RPA 就别 workflow,能 workflow 就别 agent。 工具越简单,崩的概率越低,成本越好控,维护越省心。强行给所有东西套 agent,是新手最贵的一课。
Step 3:第一版,手写 ReAct,不要用框架
第一个 agent 千万别用框架。 LangChain、LangGraph 封装太厚,新手经常「demo 跑通了,一出问题不知道错在哪」。Anthropic 那份指南也说:最成功的 agent 往往不依赖复杂框架,而是简单、可组合的模式。
做法:100 行 Python 内,自己手写一遍 ReAct 循环——「想一步 → 做一步 → 看结果 → 再想」。
- 直接调 OpenAI / Anthropic / DeepSeek 的 SDK,不用任何 agent 框架;
- 骨架就是一个 while 循环:把任务和已有的「思考-行动-观察」历史拼成 prompt → 模型吐下一步(思考 + 动作)→ 解析动作、调工具、拿结果(观察)→ 塞回历史,循环到模型说「done」;
- 能让它自动调一次搜索、调一次计算器、合起来回答一个问题,就算跑通。
参考资料:shareAI-lab/learn-claude-code——从最小 agent 一步步搭出 mini Claude Code,含工具调用、规划、子 agent、任务系统。读它的代码,比看十个 LangChain 教程都顶用。
手写过一遍、知道每个环节在干嘛了,再回头用框架——那时候框架是省事的工具,而不是挡在你和原理之间的一层黑盒。
Step 4:把模型的输出「锁死」——结构化输出
Agent 崩在哪?八成崩在「模型输出的格式不对」。
让模型「自由」吐 JSON 然后 try/except,是新手最容易写出的坏代码。专业做法是用约束解码 + 强校验,从源头让模型只能吐合法格式。
- jxnl/instructor:给 LLM 加 Pydantic 约束,自动校验 + 自动重试。Python 圈最流行,入门用它够你跑很远。
- dottxt-ai/outlines:更底层,在 token 级别就不可能让模型吐错格式。
Step 5:让 agent「会用工具」——Tool Use 与 MCP
Agent 真正值钱的地方在于它「会做事」,不只是「会说」。
1. Tool Use
写工具就是写一个「模型看得懂」的 schema——名字、参数、返回值清清楚楚。原则只有一条:动作幂等、错误明确。否则模型一旦调失败,根本不知道怎么救。
最小例子:一个 search_logs(keyword, time_range) 工具,描述写成「按关键词搜索过去 N 小时内的服务日志,返回结构化结果数组」——模型一看就会用。反之,名字叫 do_log_thing、描述含糊,模型基本只会瞎调。工具描述写得好不好,直接决定 agent 的成败。
2. MCP(Model Context Protocol)
Anthropic 推的协议,正在变成「agent 接外部世界」的事实标准。
- modelcontextprotocol/servers:官方维护的 MCP server 集合,GitHub、Slack、Postgres、Filesystem 都有现成的。读它的代码学规范,再给你自己的业务封一个。
Step 6:加记忆 + 检索增强(RAG)
光靠对话上下文不够,agent 要扛真实业务,必须接外部知识和长期记忆。
RAG pipeline 四步:
- 文档按章节和语义切块,别傻按 512 字硬切;
- 转向量存进向量库;
- 检索时叠 BM25 关键词做混合检索;
- 用 Cross-Encoder 重排。
向量库选型:
| 项目 | 特点 |
|---|---|
| chroma-core/chroma | 最轻,本地玩够用 |
| milvus-io/milvus | 生产级,亿级向量也扛得住 |
| qdrant/qdrant | Rust 写的,性能和扩展性都不错 |
记忆层选型:
- letta-ai/letta(原 MemGPT):把「长期记忆」做成了一套系统。
- mem0ai/mem0:更轻量的记忆层,API 简洁。
系统性 RAG 参考:run-llama/llama_index 的代码值得翻——不一定要用它,但它对每个环节的拆分非常清晰。
什么时候该加记忆? 粗判断:agent 是不是要跨多次对话记住用户的偏好或历史结论?只是单次任务、跑完就走,对话上下文够了,别自找麻烦;只要涉及「下次还要记得这次的事」,再上长期记忆。
Step 7:建评估集——这一步决定你是新手还是老手
Agent 改了个 prompt 到底变好了还是变差了?凭感觉不算数。没有评估集,你就是在黑暗里调参。
最朴素的做法:攒几十个真实任务 + 标准答案,每次改动跑一遍,看任务完成率、平均步数、错误率。
评估集不用大,但一定要「脏」——必须覆盖真实场景里那些刁钻、边界的输入。太多 agent 在干净的 demo 数据上效果惊艳,一上线遇到真实用户换个问法就原形毕露,根子全在评估集太干净。
实操技巧:先从线上日志或真实对话里抽 30 条最难的、最容易翻车的,每条标注「该输出什么」——这就是第一版评估集。后面每周新增几条就够。一周后就会发现,这是整个工程里 ROI 最高的事。
工具推荐:
| 项目 | 用途 |
|---|---|
| explodinggradients/ragas | RAG / agent 评估的事实标准,faithfulness、answer relevancy、context precision 等核心指标有现成实现 |
| confident-ai/deepeval | 测试框架风格,用 pytest 跑 agent 测试 |
| langfuse/langfuse | 开源 LLM observability,每次调用的 prompt、返回、中间步骤、token 消耗都能看到,生产环境基本必备 |
Step 8:扛住生产环境——成本、路由、降级
能跑通只是开始,能稳定上线还有最后一段路。
- BerriAI/litellm:一份代码切 100 多家模型 API,路由 / fallback / 缓存 / 限流全有。
- Anthropic prompt caching:把不变的长上下文缓存住,API 费用能省到原来的 1/10。
- 模型分层:简单分类、抽取这类活,用便宜的小模型(Haiku、Gemini Flash、DeepSeek 小版本)就够;复杂规划再上大模型。一个 agent 里混用两三档模型,是省钱也是提效的标准做法。
- 降级策略:模型连续失败 N 次,自动 fallback 到更简单的逻辑或人工。这是 agent 工程师那些「不性感但值钱」的脏活。
三、值得对照阅读的真实 Agent 项目(读源码用)
不是让你直接用,是去读源码,看老手怎么处理那些「看上去会的、实际全是坑」的环节。挑一个跟你的场景最近的,把它的 README 和核心循环代码读一遍,比你刷十个教程涨得快。
| 项目 | 说明 |
|---|---|
| aider-AI/aider | AI 配对编程,工程化做得极成熟,是学 agent 怎么落地的最好教材之一 |
| princeton-nlp/SWE-agent | 自动修 GitHub issue,SWE-Bench 上的常客 |
| browser-use/browser-use | 让 agent 操作浏览器,今年极火 |
| mannaandpoem/OpenManus | 通用 agent 开源复刻,中文社区活跃 |
| huggingface/smolagents | 极简 agent 框架,几百行核心代码,学习友好 |
四、避坑指南(金句摘录)
- 不是 AI 不行,而是往往选错了工具。
- 商用落地采用「部分智能 + 高程度自动化」:需要保证执行时,输出稳定比智能化更重要。
- 能 RPA 就别 workflow,能 workflow 就别 agent。 强行给所有东西套 agent,是新手最贵的一课。
- 判断公式:流程固定 → workflow 够;路径随输入变 → 才需要 agent。
- 第一个 agent 千万别用框架,手写 100 行 ReAct 循环先跑通。
- Agent 八成崩在「模型输出的格式不对」——让模型自由吐 JSON 再 try/except 是坏代码,要用约束解码 + 强校验。
- 工具设计原则:动作幂等、错误明确;工具描述写得好不好,直接决定 agent 的成败。
- 没有评估集,你就是在黑暗里调参。 评估集不用大,但一定要「脏」,要覆盖刁钻、边界的真实输入。
- 从线上日志抽 30 条最难的案例标注标准答案,是整个工程里 ROI 最高的事。
- 怕踩坑是对的,但因为怕就不动手,是最大的坑。 真正的认知,全是在「做 → 崩 → 改」的循环里长出来的。
五、文中提到的 GitHub 项目总览(共 22 个)
| # | 项目 | 用途 | 对应步骤 |
|---|---|---|---|
| 1 | microsoft/ai-agents-for-beginners | 微软官方 12 课入门教程 | Step 1 |
| 2 | datawhalechina/hello-agents | 中文系统教程 | Step 1 |
| 3 | datawhalechina/Agent-Learning-Hub | Stage 0-8 完整路线图 | Step 1 |
| 4 | shareAI-lab/learn-claude-code | 从 0 到 1 搭 mini Claude Code | Step 3 |
| 5 | jxnl/instructor | Pydantic 约束的结构化输出 | Step 4 |
| 6 | dottxt-ai/outlines | token 级约束解码 | Step 4 |
| 7 | modelcontextprotocol/servers | 官方 MCP server 集合 | Step 5 |
| 8 | chroma-core/chroma | 轻量向量库 | Step 6 |
| 9 | milvus-io/milvus | 生产级向量库 | Step 6 |
| 10 | qdrant/qdrant | Rust 向量库 | Step 6 |
| 11 | letta-ai/letta | 长期记忆系统(原 MemGPT) | Step 6 |
| 12 | mem0ai/mem0 | 轻量记忆层 | Step 6 |
| 13 | run-llama/llama_index | 系统性 RAG 参考实现 | Step 6 |
| 14 | explodinggradients/ragas | RAG/agent 评估 | Step 7 |
| 15 | confident-ai/deepeval | pytest 风格 agent 测试 | Step 7 |
| 16 | langfuse/langfuse | LLM 可观测性 | Step 7 |
| 17 | BerriAI/litellm | 多模型路由/fallback/缓存/限流 | Step 8 |
| 18 | aider-AI/aider | AI 配对编程(读源码) | 附录 |
| 19 | princeton-nlp/SWE-agent | 自动修 GitHub issue(读源码) | 附录 |
| 20 | browser-use/browser-use | 浏览器操作 agent(读源码) | 附录 |
| 21 | mannaandpoem/OpenManus | 通用 agent 复刻(读源码) | 附录 |
| 22 | huggingface/smolagents | 极简 agent 框架(读源码) | 附录 |
附:原文推广信息(知乎知学堂公开课)
原文中多次插入知乎知学堂「Agent 应用开发公开课」推广,称大厂出品、圈内大佬主讲,讲解大模型知识体系、拆解 Agent 技术架构,配套企业级实战项目和资料包。领取入口(原文链接):
注:以上为原文作者的观点与推广内容,整理时仅作收录,不代表整理者立场。
评论
还没有评论,来说两句?
评论已关闭