写在前面

如果你是一位大模型应用工程师、后端工程师,或者 AI 产品技术负责人,你可能已经体验过这样的场景:

  • 你用 GPT-4 写了一个"智能客服",Demo 效果惊艳,但上线后用户投诉"答非所问"
  • 你让 LLM 自动生成代码,10 次有 8 次能跑,但剩下 2 次会生成完全错误的逻辑
  • 你尝试让 Agent 自动执行复杂任务,结果它要么"想太多"陷入死循环,要么"想太少"直接放弃

这些问题的本质是:大模型本身是不可靠的,但业务需要可交付的系统。

这个系列不是教你如何调用 OpenAI API,也不是介绍 LangChain / AutoGPT 的使用教程。这个系列要解决的核心问题是:

如何把一个"不可靠的大模型",变成一个"可交付的 Agent 系统"?


一、什么是 Agent?(工程视角)

1.1 Agent 不是对话机器人

很多人第一次接触 Agent 时,会把它理解成"更智能的对话机器人"。但这是一个误解。

对话机器人的核心能力是:

  • 理解用户输入
  • 生成合适的回复
  • 维持对话上下文

Agent 的核心能力是:

  • 规划(Planning):把复杂任务拆解成可执行步骤
  • 执行(Tool Calling):调用外部工具完成具体任务
  • 状态管理(State):追踪任务执行进度和中间结果
  • 记忆(Memory):记住历史信息和用户偏好
  • 反思(Reflection):评估执行结果,必要时调整计划
  • 评估(Eval):验证任务是否完成,结果是否正确

简单来说:

  • 对话机器人是"回答问题"
  • Agent 是"完成任务"

1.2 Agent 的工程定义

从工程角度,我给 Agent 下一个明确的定义:

Agent 是一个在明确业务目标下,具备自主规划、工具调用、状态管理、记忆、反思、评估能力的任务执行系统。

这个定义有几个关键点:

  1. 明确业务目标:Agent 不是"万能助手",而是为特定业务场景设计的
  2. 自主规划:Agent 能够把复杂任务拆解成步骤,而不是简单的 if-else
  3. 工具调用:Agent 能够调用外部 API、数据库、搜索引擎等工具
  4. 状态管理:Agent 能够追踪任务进度,知道"我现在在哪一步"
  5. 记忆:Agent 能够记住历史信息,避免重复询问
  6. 反思:Agent 能够评估自己的执行结果,必要时调整计划
  7. 评估:Agent 能够判断任务是否完成,结果是否符合预期

1.3 什么不是 Agent?

为了更清晰地理解 Agent,我们也需要明确"什么不是 Agent":

单纯的 LLM 调用:只调用 GPT-4 生成文本,没有规划和工具调用
固定流程的自动化:用 if-else 写死的流程,没有自主规划能力
简单的 RAG 系统:只是检索 + 生成,没有复杂任务拆解
对话机器人:只是回答问题,不执行任务


二、为什么 Agent 在工程中会失败?

在过去一年的实践中,我见过太多"看起来很美"的 Agent 项目最终失败。失败的原因通常不是"技术不够先进",而是"工程能力不足"。

2.1 典型失败场景

场景 1:Planning 失控

  • Agent 把一个简单任务拆解成 20 个步骤
  • 执行到第 10 步时发现前面的步骤有问题
  • 重新规划,陷入死循环

场景 2:Tool 调用失败

  • Agent 调用外部 API,但 API 超时
  • Agent 没有重试机制,直接放弃任务
  • 用户看到的是"任务失败",但不知道为什么

场景 3:Context 爆炸

  • Agent 执行长流程任务,历史对话越来越长
  • Token 超出限制,LLM 调用失败
  • Agent 丢失关键信息,重新开始

场景 4:幻觉输出

  • Agent 生成了一个看起来合理的 Plan
  • 但 Plan 中的某个步骤根本无法执行
  • Agent 执行失败,但不知道如何调整

场景 5:成本失控

  • Agent 每次执行都调用 10 次 LLM
  • 每次调用消耗 5000 tokens
  • 成本迅速爆炸,业务无法承受

2.2 失败的本质原因

这些失败场景的本质原因是:

  1. 缺少容错机制:没有考虑 LLM 调用失败、Tool 超时、幻觉输出等异常情况
  2. 缺少状态管理:不知道任务执行到哪一步,无法恢复
  3. 缺少边界控制:Planning 没有深度限制,Context 没有长度限制
  4. 缺少质量保证:没有 Eval 机制,不知道任务是否真的完成
  5. 缺少成本控制:没有考虑 LLM 调用次数和 Token 消耗

三、这个系列要解决什么问题?

这个系列的目标是:让你能够从零开始,构建一个可交付的 Agent 系统。

3.1 系列路线图

整个系列共 8 篇,覆盖从单 Agent 到多 Agent,再到生产级系统的完整路径:

第 1 篇:总纲(本篇)

  • Agent 的工程定义
  • 为什么 Agent 会失败
  • 系列路线图和场景说明

第 2 篇:单体 Agent MVP

  • 从需求到可执行结果
  • Prompt 基本结构
  • Tool 调用
  • 最小 State Loop
  • 🎯 目标:读者第一次跑通一个 Agent

第 3 篇:Planning

  • 复杂任务如何被拆成可执行步骤
  • Planning Prompt 设计
  • Plan Schema 定义
  • Plan 校验、失败与重试
  • 🎯 目标:读者第一次感受到"Agent 在想什么"

第 4 篇:单 Agent 的复杂化上限

  • 什么时候单 Agent 还能扛
  • 什么时候必须拆成多 Agent
  • 多轮对话、长流程、动态重规划
  • 明确"不可控信号"
  • 🎯 目标:建立"何时拆分"的判断标准

第 5 篇:Memory & Context

  • Agent 为什么会记住,又为什么会忘
  • Context Window 管理
  • Summary Memory
  • 关键事实记忆
  • 🎯 目标:解决"Context 爆炸"问题

第 6 篇:多 Agent 协作

  • 从一个人,到一个虚拟团队
  • Manager / Worker 模式
  • Pipeline 模式
  • 🎯 目标:读者第一次搭建多 Agent 系统

第 7 篇:多 Agent 架构

  • 通信、共享状态与冲突处理
  • 消息协议
  • Shared Store
  • 仲裁逻辑
  • Human-in-the-loop
  • 🎯 目标:掌握多 Agent 的技术架构

第 8 篇:Eval & 生产级能力

  • Agent 如何被验证、监控和兜底
  • Eval 用例设计
  • 回归测试
  • 错误分类
  • 降级 / 人工兜底
  • 最小生产架构
  • 🎯 目标:让 Agent 真正可交付

3.2 每篇文章的结构

每篇文章都会遵循以下结构:

  1. 问题导向:这篇要解决什么工程问题?
  2. 最小方案:给出最小可落地方案(而非最优方案)
  3. 完整 Demo:提供可运行的代码示例
  4. Eval 用例:如何验证这个方案是否有效
  5. Checklist:实施时的关键检查点
  6. 成本分析:这个方案的成本是多少,在什么规模下会爆炸
  7. 迁移指南:如何将这个方案迁移到你的业务

四、贯穿场景:房产购房决策 Agent

4.1 为什么选择房产场景?

这个系列会使用一个统一的场景:房产购房决策 Agent

我选择这个场景的原因是:

  1. 信息密集:涉及房价、政策、学区、交通、贷款等多维度信息
  2. 强流程:从需求分析 → 区域筛选 → 房源对比 → 风险评估,有明确的流程
  3. 多角色:可以拆分成"研究员"、“分析师”、"风险顾问"等多个 Agent
  4. 非结构化 + 结构化:既有结构化数据(房价、面积),也有非结构化信息(政策、评价)
  5. 贴近真实商业决策:这是一个真实的、高价值的决策场景

4.2 场景说明(重要)

⚠️ 重要声明

本系列中的"房产 Agent"不是教你做房产系统,而是借一个"复杂但可理解的决策场景"来讲 Agent 工程。

为了让读者能够快速复现,我做了以下简化:

  1. 所有 API 都是 Mock 的:不需要真实的房产数据接口
  2. 政策 / 税费一律简化成规则文件:不涉及复杂的房产业务逻辑
  3. 只保留核心数据字段:价格、位置、学区、面积、交通
  4. 只保留核心规则:预算匹配、学区匹配、通勤时间

你需要关注的是

  • Agent 如何拆解任务
  • Agent 如何调用工具
  • Agent 如何管理状态
  • Agent 如何处理异常

你不需要关注的是

  • 房产业务的细节
  • 真实的房产数据
  • 复杂的政策规则

4.3 场景示例

用户输入

我想在北京买房,预算 500-600 万,需要考虑孩子上学(小学),
我在国贸上班,希望通勤时间不超过 1 小时。

Agent 需要做什么

  1. 理解用户需求(预算、学区、通勤)
  2. 拆解任务(区域筛选 → 房源查询 → 学区匹配 → 通勤计算 → 风险评估)
  3. 调用工具(房源 API、学区 API、地图 API)
  4. 对比分析(多个区域、多个房源)
  5. 生成报告(推荐方案 + 风险提示)

在后续的文章中,我们会一步步实现这个 Agent。


五、技术栈说明

5.1 编程语言

本系列使用 Python 作为主要编程语言,原因是:

  • Python 是大模型应用的主流语言
  • 生态丰富(LangChain、LlamaIndex、OpenAI SDK)
  • 代码简洁,易于理解

5.2 LLM 选择

本系列使用 OpenAI GPT-4 作为主要 LLM,但所有代码都会设计成"LLM 无关"的,你可以轻松替换成:

  • Claude
  • Gemini
  • 国产大模型(通义千问、文心一言、智谱 GLM)

5.3 框架选择

本系列不依赖任何 Agent 框架(如 LangChain、AutoGPT),原因是:

  • 框架会隐藏很多细节,不利于理解 Agent 的工程原理
  • 框架的抽象可能不适合你的业务场景
  • 从零实现可以让你完全掌握每一个环节

但在系列的最后,我会讨论"如何选择和使用 Agent 框架"。

5.4 代码示例

所有代码示例都在 house_case 目录下,每篇文章对应一个独立的子目录:

  • 完整的代码实现
  • Mock 数据
  • 运行说明

六、如何使用这个系列?

6.1 适合谁?

这个系列适合:

  • 大模型应用工程师:想要构建可交付的 Agent 系统
  • 后端工程师:想要了解 Agent 的工程实现
  • AI 产品技术负责人:想要评估 Agent 的技术可行性

这个系列不适合:

  • 完全没有编程经验的人
  • 只想了解 Agent 概念的人
  • 想要"一键生成 Agent"的人

6.2 如何阅读?

建议阅读顺序

  1. 按顺序阅读,不要跳过
  2. 每篇文章都跑一遍 Demo
  3. 尝试修改 Demo,看看会发生什么
  4. 思考"如何迁移到我的业务"

每篇文章的时间投入

  • 阅读:30-45 分钟
  • 跑 Demo:15-30 分钟
  • 思考和实践:1-2 小时

整个系列的时间投入

  • 如果只是阅读:6-8 小时
  • 如果跑完所有 Demo:12-16 小时
  • 如果要迁移到自己的业务:40-80 小时

6.3 如何提问?

如果你在阅读或实践过程中遇到问题,可以:

  1. 在 GitHub 仓库提 Issue
  2. 在文章评论区留言
  3. 加入读者交流群(见文末)

七、下一篇预告

下一篇文章,我们会实现第一个可运行的 Agent

《单体 Agent MVP:从需求到可执行结果》

你会学到:

  • 如何设计 Agent 的 Prompt
  • 如何让 Agent 调用工具
  • 如何实现最小的 State Loop
  • 如何跑通第一个房产分析 Agent

核心代码不超过 200 行,但会让你真正理解 Agent 的运行原理。


八、写在最后

Agent 不是魔法,也不是玩具。它是一个需要严肃对待的工程系统。

这个系列不会告诉你"Agent 能做什么",而是告诉你"Agent 为什么会失败,以及如何让它不失败"。

如果你准备好了,让我们开始这段旅程。



下一篇:《单体 Agent MVP:从需求到可执行结果》

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐