跳转至

四十:Agent 概述

来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247484525&idx=1&sn=5f4bc99c49405beb97876d91ff3d6134&chksm=f01eb714c7693e02240eb04b14f2a5ab1d18a4c3367a95f1ba714466146601a54c0bbee27324#rd

1. 学习范围

本日主题是 Agent 概述与 Agent 分类,重点是理解什么是 LLM Agent、它由哪些组件组成、有哪些分类方式,以及和普通 Chatbot、RAG、Workflow、Tool Calling 的区别。 本日覆盖: - LLM Agent 的定义和核心特征。

  • Agent 的基本组件:模型、目标、规划、工具、记忆、环境、执行器、反馈。

  • Agent 与 Chatbot、RAG、Workflow、传统自动化脚本的区别。

  • Agent 分类:按自主性、工具使用、任务类型、记忆能力、单/多 Agent、执行环境分类。

  • 工具调用、函数调用、权限、安全和可观测性。

  • Agent 系统的常见失败模式和生产化原则。

2. Agent 的基本定义

广义上,Agent 是能够感知环境、基于目标做决策并采取行动的系统。LLM Agent 是以大语言模型为核心决策器,能够理解任务、规划步骤、调用工具、观察结果并迭代完成目标的系统。 img

一个简化定义:

LLM Agent = LLM + Goal + Tools + Memory + Planning + Feedback Loop
不是所有调用 LLM 的程序都是 Agent。只有当系统具备一定的目标驱动、行动能力和反馈循环时,才更接近 Agent。

3. Agent 与 Chatbot

Chatbot 通常是对话式问答系统,主要根据用户输入生成回复。它可以没有工具、没有长期记忆、没有执行动作。 Agent 则更强调行动: - 能拆解任务。

  • 能调用工具。

  • 能观察工具结果。

  • 能根据结果调整下一步。

  • 能在多步过程中追求目标。

例如:

Chatbot: 告诉你如何订票。
Agent: 查询航班、比较价格、生成行程、在确认后调用订票工具。

4. Agent 与 Workflow

Workflow 是工程师预先定义的固定流程,例如:

输入 -> 分类 -> 检索 -> 生成 -> 审核 -> 输出
Agent 则可以根据任务动态决定路径。 区别: - Workflow 稳定、可控、易测试。

  • Agent 灵活、适合开放任务,但不稳定、难评估。

生产系统常采用混合方式:固定关键流程,把有限决策点交给 Agent。

5. Agent 与 Tool Calling

Tool calling 是 LLM 调用外部函数或工具的能力。它是 Agent 的重要组件,但不等于完整 Agent。 只调用一次天气 API 并回答,不一定是 Agent。若系统能规划多步任务、根据工具结果继续行动、处理失败和修正,就更像 Agent。

Tool Calling: 一次函数调用能力
Agent: 围绕目标组织多次工具调用和反馈循环

6. Agent 的核心组件

典型 Agent 组件: - LLM:理解、推理、规划和生成。

  • Goal:任务目标或用户意图。

  • Planner:把目标拆成步骤。

  • Tools:搜索、数据库、代码执行、浏览器、API。

  • Memory:短期上下文、长期记忆、中间状态。

  • Executor:执行工具调用。

  • Environment:工具和外部世界。

  • Observation:工具返回结果。

  • Critic/Verifier:检查结果。

  • Controller:控制循环、停止、回退和权限。

这些组件不一定都显式存在,但越复杂的 Agent 越需要明确设计。

7. Agent 的感知、决策、行动循环

Agent 的基本循环:

Observe -> Think/Plan -> Act -> Observe -> ... -> Final

img

在 LLM Agent 中: - Observe:读取用户输入、上下文、工具结果。

  • Think/Plan:分析目标、制定下一步。

  • Act:调用工具或输出。

  • Observe:获取工具结果。

  • Final:完成任务或返回失败原因。

ReAct 就是这一循环的典型提示范式。

8. Agent 分类:按自主性

按自主性可以分为:

8.1 低自主 Agent

流程基本固定,只在少量节点做选择。例如固定 RAG 管线中让模型选择是否检索。

8.2 中等自主 Agent

能选择工具、拆分任务、重试失败,但受最大步数和工具白名单限制。

8.3 高自主 Agent

能长期规划、跨会话执行、主动探索和调用多个系统。风险和不可控性也最高。 生产系统通常偏低到中等自主。

9. Agent 分类:按工具使用

按工具能力可以分为: - No-tool Agent:只靠 LLM 内部知识和上下文。

  • Retrieval Agent:能检索文档或知识库。

  • Tool-using Agent:能调用 API、数据库、搜索、计算器。

  • Code Agent:能写代码、执行代码、分析结果。

  • Browser Agent:能浏览网页、点击、填写表单。

  • Embodied Agent:能控制机器人或游戏环境。

工具越强,权限和安全越重要。

10. Agent 分类:按记忆能力

按记忆能力: - Stateless Agent:每次任务独立。

  • Short-term Memory Agent:使用当前对话和中间状态。

  • Long-term Memory Agent:跨会话保存用户偏好、经验和知识。

  • Episodic Memory Agent:保存任务轨迹和案例。

  • Semantic Memory Agent:保存结构化知识。

记忆可以提升连续任务能力,但也带来隐私、过期和污染问题。

11. Agent 分类:按任务类型

常见任务类型: - Research Agent:资料搜索、阅读、综合。

  • Coding Agent:代码修改、测试、调试。

  • Data Agent:数据分析、SQL、可视化。

  • RAG Agent:多源检索问答。

  • Workflow Agent:业务流程自动化。

  • Customer Support Agent:客服工单处理。

  • Personal Assistant:日程、邮件、提醒。

不同任务对工具、记忆、权限和验证要求不同。

12. Agent 分类:按单/多 Agent

单 Agent: - 架构简单。

  • 通信成本低。

  • 适合大多数任务。

多 Agent: - 多角色协作,例如 planner、researcher、coder、critic。

  • 适合复杂任务分工。

  • 但通信成本高,冲突和协调更复杂。

多 Agent 不是越多越好。很多任务用单 Agent 加工具就够。

13. Agent 的工具设计

工具设计要明确: - 工具名称。

  • 工具用途。

  • 参数 schema。

  • 返回格式。

  • 权限范围。

  • 错误处理。

  • 成本和超时。

  • 是否需要人工确认。

工具描述要具体,避免模型误用。例如:

search_docs(query, filters): 用于检索内部文档,不可用于实时互联网搜索。

14. Agent 的记忆设计

记忆设计要回答: - 记什么?

  • 什么时候写入?

  • 什么时候读取?

  • 如何过期?

  • 如何删除?

  • 如何防止错误记忆污染?

常见记忆: - 对话摘要。

  • 用户偏好。

  • 任务状态。

  • 工具调用历史。

  • 成功/失败案例。

  • 长期知识。

记忆必须有权限和隐私控制。

15. Agent 的安全边界

Agent 安全风险: - prompt injection。

  • 越权工具调用。

  • 泄露系统提示或敏感数据。

  • 执行破坏性操作。

  • 被外部网页或文档诱导。

  • 错误记忆污染。

  • 循环调用造成成本失控。

安全措施: - 工具白名单。

  • 参数校验。

  • 权限控制。

  • 高风险操作人工确认。

  • 最大步数和超时。

  • 日志审计。

  • 输出安全审查。

16. Agent 的可观测性

Agent 系统必须记录 trace: - 用户请求。

  • 计划。

  • 工具选择。

  • 工具参数。

  • 工具返回。

  • 中间状态。

  • 错误和重试。

  • 最终输出。

  • token、延迟、成本。

没有 trace,Agent 出错时很难定位是计划、工具、记忆还是生成问题。

17. Agent 常见失败模式

常见失败: - 目标理解错误。

  • 计划不合理。

  • 工具选择错误。

  • 工具参数错误。

  • 忽略工具结果。

  • 编造工具结果。

  • 循环调用。

  • 过早停止。

  • 记忆污染。

  • 权限越界。

排查时按“目标 -> 计划 -> 工具 -> 观察 -> 记忆 -> 输出”分层分析。

18. Agent 生产化原则

生产 Agent 要遵循: - 能用 workflow 固定的部分尽量固定。

  • 只在需要灵活决策处使用 Agent。

  • 工具必须 schema 化。

  • 高风险操作必须确认。

  • 默认最小权限。

  • 每步可观测。

  • 有失败降级策略。

  • 有离线评估和线上监控。

Agent 的价值是处理开放任务,但生产系统必须把开放性限制在可控边界内。

19. 核心总结

Agent 的核心是目标驱动的感知、决策和行动循环。LLM Agent 用 LLM 做推理和控制,用工具连接外部世界,用记忆保持状态,用反馈修正行为。 分类维度包括: - 自主性。

  • 工具能力。

  • 记忆能力。

  • 任务类型。

  • 单/多 Agent。

  • 执行环境。

面试中要避免把“调用一次工具”直接等同于 Agent。真正的 Agent 需要围绕目标组织多步行动和反馈。

20. 参考资料

  • Agent 概述: https://www.woshipm.com/ai/6082990.html

  • 如何使用 Agent 工具: https://zhuanlan.zhihu.com/p/17412460686

  • ReAct paper: https://arxiv.org/pdf/2210.03629

  • LangChain Agents docs: https://python.langchain.com/docs/concepts/agents/

  • OpenAI Agents guide: https://platform.openai.com/docs/guides/agents

            预览时标签不可点
    

    <div class="