基本概念、定义

参考 Microsoft 官方教程

通过赋予大型语言模型(LLMs)访问工具和知识的能力,扩展LLMs的功能,从而使其能够执行操作。

与 MCP 的区别

与 MCP 的实现效果类似,AI Agent 通常也有能力解读用户需求,并自行完成工具的访问和选择、调用。

但是 MCP 仅提供工具,通过固定的协议描述、告知 LLM 有什么工具可用;

而 AI Agent 是一个概念,一个基于 LLM 实现的,能自行决策、调用工具、完成反馈分析的软件即可称为一个 AI Agent;通俗来讲:我们可以在开发一个 AI Agent 过程中使用了 MCP 协议,但反过来讲通常是不合适的。

代理的特点

代理有不同类型:

  • 反射代理:根据预定义规则、模型决策立刻执行
  • 学习型代理:通过调查分析与反馈调整,不断调整行动的类型
  • 分层代理:多个代理组成分层系统,高层代理拆解任务并由底层代理执行
  • 多代理系统(MAS):多代理协作合作、竞争

AI 代理适用于开放性问题、多步骤流程、依赖持续反馈改进的任务

代理具备如下特征:

  • 使用消息进行通信
  • 维护自己的状态
  • 根据收到的消息或状态变化执行操作

每个代理对象允许有自己的上下文,代理不再是单纯的无状态工具

在多代理系统中(Multi Agent)可能存在一个用于维护上下文的代理(代理运行时(Agent Runtime)),负责协调不同类型代理之间的交互。在多进程的分布式代理场景中,也会出现分布式代理运行时的概念。

工具使用设计模式

关键要素:

  • 函数/工具模式(Schemas): 如 MCP 协议提供了通用方案,对可用工具的详细定义,包括函数名、用途、必需参数和预期输出。这些模式帮助 LLM 理解可用工具及如何构造有效请求。
  • 函数执行逻辑:类似流程编排,决定何时以及如何根据用户意图和对话上下文调用工具。可能包括规划模块、路由机制或条件流程,动态决定工具的使用。
  • 消息处理系统:管理用户输入、LLM 响应、工具调用及工具输出之间的对话流程。
  • 工具集成框架:连接代理与各种工具的基础设施,无论是简单函数还是复杂的外部服务。
  • 错误处理与验证:处理工具执行失败、参数验证及异常响应的机制。
  • 状态管理:跟踪对话上下文、之前的工具交互和持久数据,确保多轮交互的一致性。

比如 Semantic Kernel 框架中函数调用的流程:

工作流程

在编写工具时,应该注意给 Agent 配置受限的权限,比如访问 SQL, 文件目录等

Agent RAG

代理的检索增强生成,即 RAG 在 Agent 模式下的应用

Agent 的 RAG 循环流程

RAG循环

这种循环机制的存在,会使模型持续循环,知道得到满意的证据

记忆与状态机制又能做到避免无尽循环,且有能力回顾之前的尝试、结果、任务,无需人工的持续干预即可出色完成任务

代理边界

Agent 永远只在职责范围内完成任务,它无法超越工具的既定边界,但是它能够充分利用现有能力,调度现有资源完成任务。

人机协作

在运行过程中,允许人类充当代理的角色,向其他代理提供反馈,协作完成任务

系统消息框架

系统消息框架机制下,不同代理的系统提示词均由元系统消息生成,随着元系统提示词的迭代与改进,我们将更容易创建多个代理的系统

  1. 元系统提示词:即用于创建系统消息的提示词,在这个框架下
  2. 基础提示词:用于描述一个 Agent 具体功能职责的提示词
  3. 生成系统消息:将元系统提示词、基础提示词提供给LLM,它将生成一个更适合指导AI代理的系统消息

威胁与防护

类别行为防范
风险任务与指令通过提示词、异常输入来控制AI代理提示词过滤、限制对话轮次
访问关键资源破坏代理使用的资源或者破坏代理与资源的连接安全通信协议,对代理进行最小的必要授权,执行身份验证
服务过载发送大量请求拖垮服务、产生高额费用限流、轮次等
知识库污染污染代理使用的数据或信息控制写权限,巡检AI流程中的数据
连锁错误异常请求导致代理访问的资源或服务被拖垮使用容器等技术进行必要的环境隔离,让代理在受限的环境中执行

MAS 设计模式

群聊方式

群聊中每一个用户代表一个代理,可以集中管理,通过中央服务器收发消息,也可分布式架构,多代理之间直接通信

任务交接

多个智能体之间存在明确的依赖关系,使用流程编排的方式安排多个智能体的任务流转方式

系统过滤

针对一个用户需求,由能力、擅长不同的智能体共同贡献过程,由一个专注基本面分析的智能体统筹多智能体意见,给出最终更全面的结论,这种方式尤其适合推荐系统(比如选股推荐)

元认知

元认知即对思维的思考,对自身过程和过去的经验对行为进行调整,即对推理过程进行推理

这种机制允许代理记录用户偏好、分析反馈等行为,并调整自己的决策过程,且在决策过程中会对结果加以审视以在学会新的决策方式前避免错误

预加载上下文

在执行查询、处理之前,将上下文、背景信息加载到 LLM 中

代理的评估

评估是迭代 Agent,使之符合用户需求的关键

问题潜在解决方案
AI Agent 无法稳定完成任务1. 优化给 AI Agent 的提示词,明确目标。2. 识别将任务拆分为子任务并由多个代理处理的场景。
AI Agent 进入无限循环1. 确保有明确的终止条件,让 Agent 知道何时停止。 2. 对于需要推理和规划的复杂任务,使用专门针对推理任务的大型模型。
AI Agent 调用工具表现不佳1. 在代理系统外测试和验证工具输出。2. 优化工具的参数、提示词和命名。
多代理系统表现不稳定1. 优化每个代理的提示词,确保它们具体且彼此区分明确。2. 构建层级系统,使用“路由”或控制代理来确定正确的代理。