欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Agent的基本概念

Agent的基本概念

2024/12/1 0:19:52 来源:https://blog.csdn.net/zg_hover/article/details/141618893  浏览:    关键词:Agent的基本概念

Agent的基本概念

Agent概述

Agent是一个自动推理和决策引擎。它接受用户输入/查询,并可以做出执行该查询的内部决策,以便返回正确的结果。关键代理组件可以包括但不限于:

  • 将一个复杂的问题分解为较小的问题
  • 选择要使用的外部工具 + 提供调用该工具的参数
  • 规划一组任务
  • 将之前完成的任务存储在内存模块中

LlamaIndex 为构建代理提供了一个全面的框架。这包括以下组件:

  • 使用具有高级工具的代理来构建代理 RAG 和工作流自动化用例
  • 用于构建和调试代理的低级组件
  • 可用作独立模块的核心代理成分:查询规划、工具使用等。

Agent的使用模式

再llamaIndex中Agent的使用范式如下:

1.定义工具函数:定义需要实现某个功能的函数。

2.把工具函数添加到FunctionTool对象中:把功能函数包裹到FunctionTool对象中。

3.构造LLM模型对象,并初始化LLM:构造和初始化LLM对象。

4.初始化ReAct Agent,也就是ReActAgent对象:初始化ReActAgent对象,该对象封装了一个Agent引擎

代码样例如下:

from llama_index.core.tools import FunctionTool
from llama_index.llms.openai import OpenAI
from llama_index.core.agent import ReActAgent# define sample Tool
def multiply(a: int, b: int) -> int:"""Multiple two integers and returns the result integer"""return a * bmultiply_tool = FunctionTool.from_defaults(fn=multiply)# initialize llm
llm = OpenAI(model="gpt-3.5-turbo-0613")# initialize ReAct agent
agent = ReActAgent.from_tools([multiply_tool], llm=llm, verbose=True)
agent.chat("What is 2123 * 215123")

注意:代理支持chat和query端点,分别继承自我们的 ChatEngine 和 QueryEngine。

通过其他方式来构建Agent

要根据 LLM 自动选择最佳代理,也可以使用from_llm 方法来生成代理。

from llama_index.core.agent import AgentRunneragent = AgentRunner.from_llm([multiply_tool], llm=llm, verbose=True)
以上代码就变成
from llama_index.core.tools import FunctionTool
from llama_index.llms.openai import OpenAI
from llama_index.core.agent import ReActAgent
from llama_index.core.agent import AgentRunner# define sample Tool
def multiply(a: int, b: int) -> int:"""Multiple two integers and returns the result integer"""return a * bmultiply_tool = FunctionTool.from_defaults(fn=multiply)# initialize llm
llm = OpenAI(model="gpt-3.5-turbo-0613")# initialize ReAct agent
#agent = ReActAgent.from_tools([multiply_tool], llm=llm, verbose=True)
agent = AgentRunner.from_llm([multiply_tool], llm=llm, verbose=True)agent.chat("What is 2123 * 215123")
可选tools

另外还有其他工具可以选择:

1.可以把查询引擎包装成代理工具;

2.可以把其他agent作为代理工具;

Agent的使用场景

代理可能的用例范围非常广泛且不断扩大。也就是说,这里有一些可以立即带来价值的实际场景:

  • Agentic RAG:根据您的数据构建上下文增强的研究助理,不仅可以回答简单的问题,还可以回答复杂的研究任务。这里有两个资源(资源 1、资源 2)可帮助您入门。
  • SQL 代理:上述的一个子集是“文本到 SQL 助手”,可以与结构化数据库交互。查看本指南,了解如何从头开始构建代理。
  • 工作流程助手:构建一个可以通过电子邮件、日历等常见工作流程工具进行操作的代理。可以查看 GSuite 代理教程。
  • 编码助手:构建可以通过代码进行操作的代理。查看我们的代码解释器教程。

参考文献

  • LlamaIndex对Agent的介绍
  • agent概述:https://docs.llamaindex.ai/en/stable/use_cases/agents/
  • RAG Agent:https://docs.llamaindex.ai/en/stable/understanding/putting_it_all_together/agents/
  • SQL代理:https://docs.llamaindex.ai/en/stable/examples/agent/agent_runner/query_pipeline_agent/?h=sql+agent#setup-simple-retry-agent-pipeline-for-text-to-sql
  • 工作流助手:https://github.com/run-llama/llama_index/blob/main/llama-index-integrations/tools/llama-index-tools-google/examples/advanced_tools_usage.ipynb
  • 代码助手:https://github.com/run-llama/llama_index/blob/main/llama-index-integrations/tools/llama-index-tools-code-interpreter/examples/code_interpreter.ipynb

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com