如何构建你的Agents|谷歌Agents白皮书

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI

01 前言

和我们人类进行搜索、查询资料一样,生成式AI模型被训练成可以认得并"使用"外部工具访问实时数据和信息,除此之外,还能够自我决策。所以,推理逻辑获取外部信息 的能力组合起来就有了Agent的概念

02 什么是Agent

Agent是一个通过执行它所知道的工具获取外界信息进而完成特定目标的应用。

Agent即使没有人为干预,它也能基于目标来决策下一步的动作,例如下一步进行某个关键信息的搜索。

Agent所用到的基础的组件有三个,分别是模型工具编排层 ,这些组件被定义为认知架构。它们也能被重组成不同的架构。

Agent下文会被称为智能体

模型(The model)

在Agent框架中,模型特指有决策能力的语言模型(Language Model,LM)。

Agent使用的模型可以是通用型多模态 或者微调过的特定模型。 它们都遵循基于指令式的推理和逻辑框架,如ReAct (Reasoning and Action)、CoT (Chain-of-Thought)、ToT(Tree-of-Thoughts)

为了最佳效果,应该基于场景选择合适的模型。通常,模型不会直接用Agent的特定配置(如工具选择、编排/推理设置等)进行专门的训练,可以通过向模型提供示例等上下文实现。

工具(The tools)

模型的训练是基于已有的公开数据,缺少了实时或企业私有的数据内容,所以需要通过工具与外部世界互动,来弥补模型的不足。

工具可以有多种形式,通常遵循Web API方法。有了工具就可以提升模型的能力边界。

编排层(The orchestration layer)

编排层定义了一个循环过程,包括Agent接收外部信息、内部推理及后续行动决策。通过循环的推理、行动、接收行动结果直至达到目标或触发终止条件。

编排层的复杂度随任务的复杂度而变化,简单的可能只需要调用工具,复杂的可能涉及链式逻辑或机器学习算法等。

智能体 VS 模型

维度 \ 对比 模型 智能体
知识范围 训练的静态数据 通过工具调用外部数据
推理能力 单次查询响应,需要单独定义维护如上下文历史 支持基于编排层的多轮对话
工具使用 不具备内部调用工具的能力 在架构层直接集成
逻辑处理 无内置逻辑处理 原生认知框架,可使用CoT、React等推理

03 Agent如何运作

把Agent理解成厨房里面的主厨,大致过程如下:

  1. 收集信息:顾客的菜单、已有的食材。
  2. 进行内部推理:基于收集到的菜单和食材设计菜品和味道。
  3. 执行动作:切菜、调味、烹饪。

期间会根据顾客的反馈和所剩食材进行调整,直到完成任务。这种从信息获取、推理、执行、反馈的过程正是为了实现目标而采用的认知框架。

Agent的核心是编排层,它维持记忆、状态、推理、规划,借助提示词工程和相关框架(ReAct、CoT、ToT )来指导推理和规划

  • ReAct:

    一个提示词工程框架,提供了一种从推理到行动的思考模式。

  • CoT:

    一个提示词工程框架,能够通过中间步骤实现推理能力。包括子技术如自我一致性、主动提示、多模态CoT等。

  • ToT:

    一个提示词工程框架,适合探索和战略规划任务,在CoT的基础上,尝试在中间步骤通过多条思维路径进行探索获得最佳效果。

一个ReAct执行序列示例

  1. 用户向智能体发起咨询
  2. 智能体启动ReAct序列
  3. 智能体向模型提供一个ReAct提示词,并获得下一步计划及结果
  4. 问题:提示词和用户问题一起提供给模型
  5. 思考:模型思考下一步的计划
  6. 行动:模型决定下一步是否需要使用工具
  7. 行动输入:模型提供使用工具的名字和参数,智能体完成对工具的调用,并获取结果
  8. 观察:将结果和之前的内容提供给模型进行再次思考。思考/行动/行动输入/观测重复多轮。
  9. 最终输出:模型确认已知最终结果或者达到循环次数阈值。

智能体响应的质量与模型的推理与行动能力直接相关,包括选择工具的能力、以及工具的描述与定义。

04 工具

模型在自然语言理解上表现很出色,但是它仍然无法感知和影响外界。这是模型的能力限制,所以需要借助外部工具来与外部交互,例如通过特定工具查询日历、天气、发送电子邮件等等。

Google模型或者一般模型使用的工具可以细分为扩展(Extensions)、函数(Functions)、数据存储(Data Stores)。

扩展(Extensions)

扩展是以标准化的方式在智能体和API之间搭起的桥梁。使得智能体能够无缝调用API,而不用考虑API实现的差异。

如图,扩展通过示例指导智能体如何调用API并告诉智能体调用API所必需的参数。

这不就是MCP(Model Context Protocol)

扩展可以独立于智能体开发,在与智能体交互时 ,提供示例和说明,使得智能体能够动态选择使用哪一个工具。

函数(Functions)

在软件开发中,函数是用来定义一个特定的功能,方便重复使用。一个任务的完成,可能需要调用多个不同的函数。

智能体类似,由模型代替开发者的角色,先预定义一批函数,由模型决定调用哪些函数以及提供调用函数的具体参数。

函数的主要特点

1、模型输出函数及参数,但不直接调用

2、函数在客户端被执行,不由智能体和模型执行

* 扩展的区别*:函数调用为客户端的开发者提供更高的控制权限,同时降低对外部环境的依赖。

两者的区别如图所示:

一些适合使用函数调用的示例:

1、旅游建议中,用户咨询旅游城市建议,模型返回结构化的数据如Json格式,包括函数名与城市列表,客户端可以基于此进行额外数据如图片、视频获取,给用户提供更友好的展示。

2、处理需要长时间执行的异步任务。

3、函数执行涉及敏感凭证。

4、需要在外设中进行函数调用的时候。

关于函数机制,最重要的是要理解它们的设计目的是为开发人员提供更大的控制权限,不仅包括API调用的执行,还包括应用程序整体的数据流向。

数据存储(Data Stores)

语言模型可以类比一个巨大的知识库,模型学习了大量知识和其特征,和持续更新的互联网数据不同,它的知识是静态的。

数据存储通过提供动态最新的数据来克服模型这方面的局限,确保模型的回答建立在准确和事实之上。

数据存储一般会将原文件内容转成向量数据,存储在特定的向量数据库中,智能体会根据用户的输入来搜索存储的向量数据,进而得到最新的动态数据。

检索增强生成(RAG)应用是数据存储的典型应用场景,通过多种数据源,来扩充模型和智能体的知识范围。

一个集成了ReAct推理的RAG应用示例交互过程如下:

工具对比

维度 \ 对比 扩展 函数 数据存储
使用位置 智能体端 客户端 智能体端
试用场景 1、需要智能体控制API端点; 2、需要连续API调用和规划; 3、原生预构建扩展。 1、存在时序或操作顺序限制、无法实时调用API; 2、API不对外开放或者系统无法直接调用。 实现基于RAG的智能体。

05 提升模型性能

提升模型性能的方式有如下三种,这里的性能更多应该是模型回复的质量。

  • 上下文学习

    推理时提供提示词、工具、少量示例,让模型即时学习如何使用工具。

  • 检索式上下文学习

    从外部进行检索如信息、工具、示例等知识,动态构建提示词,例如RAG应用。

  • 基于微调的学习

    使用前通过特定的知识训练模型,帮助模型学习新的语言特征,如经过训练使得模型在推理前掌握工具使用规则。

06 最后

Agent(智能体)的基本认知框架包含模型工具编排层 三个核心组件 模型具备出色的自然语言理解能力,后续会越来越强,加上工具的使用扩展其能力边界,最后由提示词工程框架如ReAct进行推理和规划,使得智能体最终完成任务目标。

参考:www.kaggle.com/whitepaper-...

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI

相关推荐
大模型教程3 小时前
构建可靠AI Agent:从提示词、工作流到知识库的实战指南
程序员·llm·agent
AI大模型3 小时前
OpenAI 官方出品:从 0 到 1 构建 AI Agent 实战指南
程序员·llm·agent
AI大模型3 小时前
《Hello-Agents》项目正式发布,一起从零学习智能体!
程序员·llm·agent
Sincerelyplz1 天前
【Apps SDK】OpenAI推出的Chatgpt与外部应用集成的工具
后端·openai·agent
亿牛云爬虫专家1 天前
用LLM自动化生成解析器:从Prompt到Parser的工程化落地
自动化·llm·prompt·xpath·爬虫代理·网页爬虫·解析器
智泊AI1 天前
1分钟搞明白什么是Agent?Agent四大核心能力详解
llm
后端小肥肠1 天前
【n8n入门系列】输入抖音分享链接,3步自动提无水印视频 + 文案,小白也能上手!
agent·deepseek·mcp
大模型教程1 天前
一文看懂 AI Agent 全栈架构:从运行环境到大模型基座的系统化落地指南
程序员·llm·agent
大模型教程1 天前
AI 提示词优化工具,让AI更好地理解你的 Prompt
程序员·llm·agent