glownight

返回

《Agent 开发:从前端/全栈到生产级智能体》#

第一部分:重新理解 Agent#

第1章 Agent 到底是什么#

学习目标:建立工程视角,不停留在“会自主思考的 AI”这种模糊说法。

  • 1.1 Agent 的工程定义:模型、工具、状态、目标、执行循环
  • 1.2 Agent vs Chatbot vs Workflow vs RPA
  • 1.3 Agent 的最小闭环:观察、决策、行动、反馈
  • 1.4 什么时候需要 Agent,什么时候只需要普通 API 调用
  • 1.5 Agent 的典型产品形态:客服、研发助手、数据分析、浏览器自动化、企业流程助手

实践任务:

  • 画出一个“天气查询 Agent”的执行循环
  • 对比普通聊天机器人、工作流自动化、Agent 三种实现方式
  • 找 5 个你日常工作中适合 Agent 化的任务

第2章 现代 LLM 能力边界#

学习目标:知道模型擅长什么、不擅长什么,避免神化 Agent。

  • 2.1 Transformer 基础只学够用版:上下文、token、自回归、注意力
  • 2.2 主流模型能力维度:通用推理、代码、长上下文、多模态、工具调用
  • 2.3 Reasoning Model 与普通 Chat Model 的区别
  • 2.4 幻觉、过度自信、上下文遗忘、工具误用
  • 2.5 模型选型:质量、速度、成本、上下文、工具能力、生态支持

实践任务:

  • 用同一个任务测试 2 到 3 个模型的差异
  • 记录模型在长任务中的失败点
  • 做一个简单的模型选型表

第3章 Prompt 与上下文设计#

学习目标:把 Prompt 从“玄学提示词”变成可维护的工程配置。

  • 3.1 System Prompt、Developer Instruction、User Prompt 的职责划分
  • 3.2 角色设定的正确用法:约束行为,而不是 cosplay
  • 3.3 Few-shot 示例如何提升稳定性
  • 3.4 结构化输出:JSON Schema、XML 标签、函数参数
  • 3.5 上下文打包:用户目标、环境信息、历史状态、工具结果
  • 3.6 Prompt 版本管理与 A/B 测试

实践任务:

  • 给一个客服 Agent 写 system prompt
  • 把自然语言输出改成 JSON Schema 输出
  • 设计一个 prompt 版本号和变更记录格式

第二部分:Agent 核心工程能力#

第4章 Tool Calling:Agent 的第一核心能力#

学习目标:先把“模型调用工具”做稳定。

  • 4.1 Function Calling / Tool Calling 的基本流程
  • 4.2 工具 Schema 设计:名称、描述、参数、返回值
  • 4.3 工具粒度:一个大工具 vs 多个小工具
  • 4.4 工具执行错误、重试、超时、幂等
  • 4.5 工具结果如何回传给模型
  • 4.6 工具权限:只读、写入、高风险操作

实践任务:

  • 写一个 get_weather 工具
  • 写一个 search_docs 工具
  • 写一个 create_ticket 工具,但加入人工确认步骤
  • 故意让工具失败,观察 Agent 如何恢复

推荐资料:

第5章 Agent Loop 与执行控制#

学习目标:理解 Agent 不是一次模型调用,而是一个受控循环。

  • 5.1 单步调用、递归调用、多轮工具调用
  • 5.2 ReAct 的工程化版本:不是论文复现,而是观察和行动循环
  • 5.3 计划生成、执行、检查、修正
  • 5.4 最大步数、最大成本、最大时间
  • 5.5 中断、恢复、取消、人工接管
  • 5.6 Trace:记录每一步模型和工具行为

实践任务:

  • 实现一个最多执行 5 步的 Agent Loop
  • 给 Agent 加入 max_costmax_steps
  • 给每一步生成 trace 日志
  • 做一个“失败后重新规划”的小 demo

第6章 状态管理与记忆系统#

学习目标:区分上下文、状态、记忆、知识库。

  • 6.1 短期上下文:当前对话和当前任务
  • 6.2 任务状态:todo、已完成步骤、失败步骤、待确认事项
  • 6.3 用户记忆:偏好、身份、长期目标
  • 6.4 知识记忆:文档、数据库、代码仓库、业务资料
  • 6.5 记忆写入策略:什么时候该记,什么时候不该记
  • 6.6 记忆压缩:摘要、分层、时间衰减、重要性评分

实践任务:

  • 为 Agent 设计一个 task_state JSON
  • 做一个用户偏好记忆表
  • 实现一次对话结束后的摘要压缩
  • 区分“应该进 RAG 的知识”和“应该进用户记忆的偏好”

第7章 RAG:从知识库问答到 Agent 检索#

学习目标:把 RAG 学成 Agent 的知识工具,而不是单独的问答系统。

  • 7.1 文档摄取:解析、清洗、切分、元数据
  • 7.2 Embedding 与向量检索
  • 7.3 Hybrid Search:向量 + 关键词
  • 7.4 Rerank:提高召回结果质量
  • 7.5 Query Rewrite:让模型改写检索问题
  • 7.6 Agentic RAG:模型决定查什么、查几次、如何验证

实践任务:

  • 做一个 Markdown 文档问答助手
  • 加入引用来源
  • 加入 rerank
  • 让 Agent 在答案不确定时主动二次检索

推荐资料:

第三部分:前端/全栈 Agent 开发#

第8章 Agent UI 设计#

学习目标:会做真正可用的 Agent 前端,而不是一个聊天框。

  • 8.1 流式输出 UI
  • 8.2 工具调用过程展示
  • 8.3 Thinking、Plan、Action、Result 的可视化边界
  • 8.4 人工确认 UI:批准、拒绝、编辑参数
  • 8.5 可中断任务:Stop、Pause、Resume
  • 8.6 文件上传、引用卡片、执行日志、结果导出

实践任务:

  • 用 React / Next.js 做一个流式聊天界面
  • 展示 Agent 正在调用哪个工具
  • 做一个“批准发送邮件”的确认弹窗
  • 做一个任务执行进度条

推荐资料:

第9章 全栈 Agent API 设计#

学习目标:设计 Agent 后端,而不是把所有逻辑塞进前端。

  • 9.1 /chat/runs/tools/sessions API 设计
  • 9.2 Server-Sent Events 与 WebSocket
  • 9.3 会话、线程、任务 run 的数据模型
  • 9.4 工具调用服务端执行
  • 9.5 权限、鉴权、租户隔离
  • 9.6 前后端如何共享 Agent 状态

实践任务:

  • 设计一个 Agent Run 数据表
  • 实现一个 SSE 流式接口
  • 把工具执行放到服务端
  • 前端展示 run 的每一步状态

第10章 浏览器自动化与 Computer Use#

学习目标:让 Agent 能操作网页,但知道风险边界。

  • 10.1 Playwright 基础:定位、点击、输入、截图
  • 10.2 浏览器自动化 vs 多模态 Computer Use
  • 10.3 网页提取:DOM、可访问性树、截图 OCR
  • 10.4 登录态、Cookie、权限边界
  • 10.5 Prompt Injection 风险
  • 10.6 浏览器 Agent 的安全沙箱

实践任务:

  • 用 Playwright 自动登录一个测试站点
  • 让 Agent 从网页提取表格数据
  • 给浏览器任务加白名单域名
  • 加入高风险操作确认,比如付款、删除、提交表单

推荐资料:

第四部分:现代 Agent 框架与协议#

第11章 OpenAI Agents SDK / AgentKit#

学习目标:掌握当前主流模型厂商的原生 Agent 开发方式。

  • 11.1 Responses API、Tools、Hosted Tools
  • 11.2 Agents SDK:Agent 定义、运行、handoff、state
  • 11.3 Guardrails:输入、输出、工具调用保护
  • 11.4 Tracing 与 Observability
  • 11.5 Agent Builder 与 ChatKit 的适用场景
  • 11.6 什么时候用 SDK,什么时候直接用 API

实践任务:

  • 用 Agents SDK 写一个文档助手
  • 加入一个自定义工具
  • 加入一次 human review
  • 看 trace 找出失败原因

推荐资料:

第12章 MCP:Agent 连接工具和数据的标准协议#

学习目标:掌握 2026 年最重要的 Agent 工具协议。

  • 12.1 MCP 是什么:AI 应用连接外部系统的标准
  • 12.2 MCP Client、MCP Server、Tools、Resources、Prompts
  • 12.3 如何写一个 MCP Server
  • 12.4 如何把数据库、文件、GitHub、Figma 接给 Agent
  • 12.5 MCP 权限和安全边界
  • 12.6 MCP 工具过载:工具太多时如何治理

实践任务:

  • 写一个本地文件只读 MCP Server
  • 写一个查询数据库的 MCP Server
  • 把 MCP Server 接入一个 Agent
  • 给 MCP 工具加权限分级和审计日志

推荐资料:

第13章 LangGraph、ADK 与可控工作流#

学习目标:学会构建可恢复、可观测、可控的复杂 Agent 流程。

  • 13.1 为什么生产 Agent 需要图和状态机
  • 13.2 LangGraph:持久状态、人工介入、图执行
  • 13.3 Google ADK:多语言、部署、企业集成
  • 13.4 Deterministic Workflow + Agentic Step 的混合架构
  • 13.5 长任务的恢复、回放、补偿
  • 13.6 框架选型:轻量 SDK、LangGraph、ADK、LlamaIndex、Semantic Kernel

实践任务:

  • 用 LangGraph 实现“研究、写作、审稿”流程
  • 用 ADK 实现一个带工具的简单 Agent
  • 加入一个人工审批节点
  • 模拟任务中断后恢复

推荐资料:

第14章 A2A 与多 Agent 通信#

学习目标:理解 Agent 之间如何协作,但不要过早滥用多 Agent。

  • 14.1 多 Agent 的真实价值:分工、权限隔离、跨系统协作
  • 14.2 Handoff:把任务交给另一个 specialist
  • 14.3 Supervisor + Worker 模式
  • 14.4 Debate / Voting 的局限
  • 14.5 A2A:Agent-to-Agent 通信协议
  • 14.6 多 Agent 的成本、延迟、可观测性问题

实践任务:

  • 做一个 Planner Agent 和 Executor Agent
  • 做一个 Researcher、Writer、Reviewer 三角色工作流
  • 用共享状态记录每个 Agent 的输入输出
  • 比较单 Agent 和多 Agent 的成本差异

推荐资料:

第五部分:生产化、安全与评测#

第15章 Agent 安全基础#

学习目标:从第一天就把 Agent 当成能造成真实后果的软件系统。

  • 15.1 Prompt Injection:直接注入与间接注入
  • 15.2 工具滥用:文件、网络、数据库、支付、邮件
  • 15.3 沙箱:文件系统、网络、命令、浏览器隔离
  • 15.4 权限最小化:只读、写入、高危操作审批
  • 15.5 Secret 管理:API Key、OAuth Token、用户凭证
  • 15.6 审计日志与追责

实践任务:

  • 给所有工具分成低风险、中风险、高风险
  • 高风险工具必须人工确认
  • 加入域名白名单和文件路径白名单
  • 做一次 prompt injection 红队测试

推荐资料:

第16章 Evals:如何知道 Agent 真的变好了#

学习目标:别靠感觉判断 Agent 好不好。

  • 16.1 单轮答案评测 vs 多步任务评测
  • 16.2 Golden Dataset:构建测试任务集
  • 16.3 LLM-as-Judge 的使用边界
  • 16.4 Trace Grading:评估每一步是否合理
  • 16.5 回归测试:防止 prompt 或工具更新导致退化
  • 16.6 成本、速度、成功率、人工接管率

实践任务:

  • 为你的 Agent 写 20 条测试任务
  • 给每条任务定义通过标准
  • 自动跑一轮 eval
  • 修改 prompt 后对比成功率和成本

推荐资料:

第17章 Observability 与调试#

学习目标:能定位 Agent 为什么失败。

  • 17.1 Trace、Span、Run、Tool Call 的日志模型
  • 17.2 记录输入、输出、工具参数、工具结果
  • 17.3 失败分类:理解错任务、选错工具、参数错、工具失败、验证失败
  • 17.4 可视化调试面板
  • 17.5 线上监控:成功率、延迟、成本、异常
  • 17.6 用户反馈闭环

实践任务:

  • 给每一次 Agent run 生成 trace
  • 做一个简单的 trace viewer
  • 对失败案例打标签
  • 每周根据失败标签改进一次 Agent

第18章 成本、性能与可靠性#

学习目标:让 Agent 能稳定运行,而不是只在 demo 里好看。

  • 18.1 模型路由:简单任务小模型,复杂任务强模型
  • 18.2 缓存:检索缓存、工具结果缓存、模型输出缓存
  • 18.3 并发与队列
  • 18.4 超时、重试、降级
  • 18.5 批处理与异步任务
  • 18.6 预算控制和用户级限额

实践任务:

  • 给 Agent 加 daily budget
  • 给工具调用加 timeout
  • 给重复检索加缓存
  • 设计一个失败降级方案

第六部分:前沿能力,但按需学习#

第19章 多模态 Agent#

学习目标:让 Agent 处理图片、音频、视频、屏幕,而不是只处理文本。

  • 19.1 图片理解:OCR、截图分析、图表解析
  • 19.2 文档理解:PDF、PPT、Excel、扫描件
  • 19.3 语音 Agent:ASR、TTS、实时对话
  • 19.4 视频理解与实时流
  • 19.5 UI 操作:视觉定位、DOM 定位、混合定位
  • 19.6 多模态结果验证

实践任务:

  • 上传一张截图,让 Agent 找出 UI 问题
  • 上传 PDF,让 Agent 提取结构化信息
  • 做一个语音输入的任务助手
  • 对多模态输出加入人工确认

第20章 Long-running Agent 与自主任务#

学习目标:理解长期运行 Agent 的真实难点。

  • 20.1 长任务计划:目标、里程碑、检查点
  • 20.2 持久状态与恢复
  • 20.3 自我修正不是魔法:必须有外部验证
  • 20.4 定时任务、后台任务、事件触发
  • 20.5 人机协作:什么时候必须问人
  • 20.6 长期运行的风险:成本失控、权限滥用、目标漂移

实践任务:

  • 做一个每小时检查网站状态的 Agent
  • 做一个自动整理 issue 的 Agent
  • 加入失败重试和人工升级
  • 为长期运行任务设置预算和停止条件

第21章 Coding Agent#

学习目标:作为前端/全栈程序员,这是最值得重点投入的方向之一。

  • 21.1 Coding Agent 的基本循环:读代码、改代码、跑测试、修复
  • 21.2 Repo Context:文件索引、依赖图、测试入口
  • 21.3 Patch 生成与代码审查
  • 21.4 测试驱动 Agent:先写失败测试,再改实现
  • 21.5 CI 集成:自动修复 lint、test、build
  • 21.6 安全边界:不能随便执行未知脚本

实践任务:

  • 让 Agent 修一个真实 bug
  • 要求 Agent 先写测试
  • 让 Agent 自动运行 lint/test/build
  • 让 Agent 输出变更说明和风险点

推荐方向:

  • Codex / Claude Code / Jules / Cursor 类工具
  • SWE-bench 作为理解 coding agent 的评测参考
  • MCP + GitHub + CI 作为真实工程集成入口

第七部分:四个实战项目#

第22章 项目一:个人知识库 Agent#

目标:做一个能读你的文档、回答问题、引用来源、总结知识的 Agent。

功能清单:

  • 文档上传
  • Markdown / PDF 解析
  • 向量检索
  • 引用来源
  • 对话式问答
  • 用户偏好记忆
  • 答案评测

技术建议:

  • Next.js
  • Vercel AI SDK
  • PostgreSQL / SQLite
  • pgvector / Chroma
  • OpenAI / Claude / Gemini 任一模型

第23章 项目二:网页研究 Agent#

目标:做一个能搜索、浏览网页、提取信息、生成报告的 Agent。

功能清单:

  • 搜索工具
  • 网页抓取
  • 信息去重
  • 引用管理
  • 报告生成
  • 事实核查
  • 导出 Markdown

技术建议:

  • Playwright
  • Search API
  • Agent Loop
  • Trace Viewer
  • Human Review

第24章 项目三:全栈研发助手#

目标:做一个面向程序员的 coding agent 小系统。

功能清单:

  • 读取仓库文件
  • 理解 issue
  • 修改代码
  • 运行测试
  • 生成 diff
  • 发起代码审查
  • 生成 PR 描述

技术建议:

  • GitHub API
  • MCP filesystem / git
  • Sandbox
  • Jest / Vitest / Playwright
  • CI 集成

第25章 项目四:企业流程 Agent#

目标:做一个真实业务流程助手,比如报销、请假、工单、CRM 更新。

功能清单:

  • 表单理解
  • 工具调用
  • 数据库查询
  • 权限校验
  • 人工审批
  • 审计日志
  • 失败回滚

技术建议:

  • OpenAI Agents SDK / LangGraph / ADK
  • PostgreSQL
  • RBAC
  • Queue
  • Observability
  • Evals

附录#

附录A:推荐学习顺序#

  • 第1阶段:第1章到第5章,目标是理解 Agent 和 Tool Calling
  • 第2阶段:第6章到第10章,目标是做出一个前后端完整 Agent
  • 第3阶段:第11章到第14章,目标是掌握主流 SDK、MCP、工作流框架
  • 第4阶段:第15章到第18章,目标是具备生产化能力
  • 第5阶段:第19章到第25章,目标是根据方向做项目深化

附录B:前端/全栈程序员优先级#

最高优先级:

  • Tool Calling
  • Structured Output
  • Streaming UI
  • Agent Run 状态管理
  • MCP
  • Playwright
  • Evals
  • Sandbox
  • Trace / Observability

中优先级:

  • RAG
  • LangGraph
  • OpenAI Agents SDK
  • Vercel AI SDK
  • Google ADK
  • LlamaIndex

后学:

  • 多 Agent 辩论
  • 自主组织 Agent
  • 世界模型
  • 神经符号推理
  • 复杂长期记忆系统

附录C:不建议一开始重学的内容#

  • 不要先重学大段 Transformer 数学
  • 不要先沉迷 AutoGPT 式完全自主 Agent
  • 不要把 LangChain 老教程当主线
  • 不要把 Prompt 工程当全部
  • 不要一开始就做多 Agent
  • 不要忽略安全、评测、权限和日志

附录D:最小可行学习项目#

如果你只做一个项目,我建议做:

“带工具调用、RAG、浏览器自动化、人工审批、评测和 trace 的个人研究助手。”

它能覆盖 Agent 开发最核心的能力:

  • 前端流式 UI
  • 后端 Agent Loop
  • Tool Calling
  • RAG
  • Browser Automation
  • MCP
  • Human-in-the-loop
  • Evals
  • Observability
  • 安全边界

附录E:一句话路线#

先学 Tool Calling,再学 Agent Loop,然后做 前端流式 UI,接着接入 MCP / RAG / Playwright,最后补上 Evals、Trace、Sandbox、Human Review。多 Agent 和长期自主运行放到最后。