LlamaIndex 实现 React Agent

知识库建设之 使用 LlamaIndex 和 Qdrant 构建用于财务分析的多文档 ReAct 代理(教程含源码) 代理功能的核心是查询引擎工具。代理中有两个不同的查询引擎工具,每个工具专用于一个特定的数据集:一个用于霍尼韦尔的财务文件,另一个用于通用电气的财务文件。这些工具通过搜索各自的数据集来检索最相关的信息,从而处理用户的查询。然后使用检索到的数据来制定解决用户查询的详细响应。ReAct模块(即“推理和行动”)是增强系统提供准确全面答案能力的关键组件。此方法将推理和行动结合在一个循环中,代理对检索到的信息进行推理并采取行动以生成连贯且上下文丰富的响应。 阅读详情

React Agent 是指 LLM 对问题自行推理并调用外部工具解决问题,如下图所示,通过一些推理步骤最终找到想要的答案。
在这里插入图片描述
LlamaIndex 提供了实现 React Agent 的框架,通过框架可以轻松的实现上图中的步骤。那么,如果不用 LlamaIndex 应该如何实现一个 Agent 呢?首先,需要将需要调用的外部 API 和问题提供给LLM,LLM 判断得到结果是否需要调用API,如果需要调用,将 API 名称和参数相关信息返回到应用端,应用端执行API 并将结果再次传给 LLM,LLM 再次判断是否需要调用外部工具,这是个循环的过程,直到 LLM 得到答案。通过代码,分析一下 LlamaIndex 是如何实现 ReactAgent 多轮对话的。

用 LlamaIndex 实现 ReactAgent 代码如下:

from llama_index.core.agent import ReActAgent
from llama_index.llms.openai import OpenAI
from llama_index.core.tools import BaseTool, FunctionTool

from utils import init_model

import sys, os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'parent_directory')))


def multiply(a: int, b: int) -> int:
    """Multiply two integers and returns the result integer"""
    return a * b


multiply_tool = FunctionTool.from_defaults(fn=multiply)

def add(a: int, b: int) -> int:
    """Add two integers and returns the result integer"""
    return a + b


add_tool = FunctionTool.from_defaults(fn=add)


init_model()


agent = ReActAgent.from_tools([multiply_tool, add_tool], verbose=True)

response = agent.chat("What is 20+(2*4)? Calculate step by step ")

实现 Agent 主要通过 FunctionTool 和 ReactAgent,分别看一下两个类的主要作用。

FunctionTool

FunctionTool 用来定义外部工具,包括 Function 的详细信息,功能描述、入参和出参等信息,通过跟踪可以看到,代码首先创建了两个 FunctionTool,ToolMetadata 定义了工具的详细信息。

在这里插入图片描述
在这里插入图片描述

ReactAgent

创建 ReactAgent,传入 tools、llm,max_iteration 是指最大推理次数,默认为 10 次。

在这里插入图片描述
调用 self._react_chat_formatter 准备提示词,提示词准备完成之后,调用 LLM大模型进行处理。

在这里插入图片描述
解析大模型返回结果并调用对应 Function。

在这里插入图片描述
每一步的结果都会存储在 Memory 中,作为历史在下一步中传给 LLM 进行处理。

总结

LlamaIndex 通过提示词将问题与工具进行关联,通过多轮推理得到最终答案。核心还是在提示词,无论 RAG 还是 Agent,都是作为桥梁,底层逻辑还是通过提示词的方式把大模型的能力外部应用能力打通并进行整合。

D14 | Agent 是什么?ReAct 模式让你看懂所有 Agent 框架 D9-D13 我们把 RAG 讲透了——AI 知道"是什么"。但现实需求不只是"知道"。我们要 AI能做事“帮我查一下北京天气,然后发邮件给老板”——AI 不会发邮件“看看这个 bug 是什么问题,定位代码,提交修复 PR”——AI 不会操作 Git“分析这份销售数据,找出异常,生成图表”——AI 不会跑 SQL、不会画图这就是Agent要解决的问题——让 AI 自主决策 + 调用工具,完成多步任务。D14 是模块 4「Agent 实战」开篇。Agent 的本质(不是新概念,是老朋友) 阅读详情

相关推荐

Type-C快充移动电源芯片避坑指南:IP5356配置全流程(支持PD3.0)

本文详细解析了英集芯IP5356芯片在Type-C快充移动电源中的应用,提供了从芯片选型、原理图设计、PCB布局到PD协议调试的全流程实战指南。文章重点剖析了如何避免散热、EMI及协议握手等常见设计陷阱,并分享了量产前的关键测试验证方法,旨在帮助硬件开发者高效打造稳定可靠的快充产品。

weixin_29235525的博客 853

llama-index的reactagent的工作流解析

处理最新的传入用户消息,包括添加到内存和准备聊天历史记录使用聊天历史记录和工具构建 ReAct 提示使用 react 提示符调用 llm,并解析函数/工具调用如果没有工具调用,我们可以返回如果有工具调用,我们需要执行它们,然后使用最新的工具调用循环返回以获得新的 ReAct 提示所以应该定义这些事件1.用于处理新消息和准备聊天历史记录的事件2.使用 react 提示符提示 LLM 的事件3.触发工具调用的事件(如果有)4.用于处理工具调用结果的事件(如果有)pass。

2303_77229879的博客 1207

电镀技术:微型制造的原子级加法工艺与核心优势

电镀是一种利用电解原理在基材表面沉积金属层的表面处理技术,其本质是通过电场控制溶液中金属离子的迁移与还原,实现原子级的可控沉积。这一过程的核心在于对电流密度、温度、添加剂等参数的精密调控,从而实现对镀层结晶结构、性能的“编程”。从技术价值看,电镀作为一种“加法制造”工艺,在微观尺度上具有无与伦比的保形性和材料灵活性,能够实现复杂三维结构的均匀覆盖与功能复合。在应用场景上,它尤其契合现代微型化制造的需求,例如在集成电路的铜互连填充、高密度PCB板微孔金属化、MEMS传感器电极制备以及柔性电子器件制造中发挥着不

weixin_42524842的博客 528

LLM大模型应用框架:LangChain与LlamaIndex的对比选择

在《解读LangChain》一文中,老码农曾对LangChain 做个一些探索,这里重新回顾一下LangChain 的主要特点以及优势与局限。

Y525698136的博客 3758

华硕天选3 win11+ubuntu20.04双硬盘双系统配置(包括ubuntu重启后无法成功进入、没有wifi图标的设置)

1、制作系统盘 2、分区 3、重启电脑按F2

baidu_38431960的博客 1万+

用友YonSuite产品实操手把手教学(图文版)

用友YonSuite

ct341688的博客 8171

LlamaIndex在多轮对话中的应用:构建智能聊天机器人

LlamaIndex提供了强大的多轮对话功能,允许开发者构建能够记住上下文的智能聊天机器人。多轮对话的核心在于维护对话状态和上下文信息,使得机器人能够根据之前的对话内容提供连贯且准确的回答。通过合理利用LlamaIndex的多轮对话功能,开发者可以构建更加智能和人性化的聊天机器人,提升用户体验和交互质量。:构建能够处理复杂用户问题的客服机器人,提供连贯的对话体验。:定期检查对话的连贯性,避免因上下文丢失导致的回答不一致。:存储和管理对话历史,确保上下文信息的连续性。:构建能够回答员工多轮问题的知识库助手。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 597

51单片机也能玩转信号发生器?手把手教你用DAC0832和LM358输出四种标准波形

本文详细介绍了如何使用51单片机和DAC0832芯片搭配LM358运放,自制低成本信号发生器,实现正弦波、矩形波、三角波和锯齿波四种标准波形的输出。从硬件选型、电路设计到编程实现,手把手教你完成这一实用电子项目,总成本不到50元,适合电子爱好者和学生实践。

weixin_30530939的博客 552

LlamaIndex 实现ReAct Agent

要使用自定义LLM模型,需要实现类(或实现一些简单接口)——负责将文本传递给模型并返回新生成的标记。

m0_74045201的博客 498

SAM3 几行代码支持任意图像分辨率,减少显存占用(针对transformers库)

几行代码让sam3支持任意图像分辨率

qq_41234663的博客 156

Transformer实战(2)——循环神经网络详解

循环神经网络 (Recurrent neural networks, RNN) ,RNN 是在文本输入中广泛使用的神经网络。RNN 非常灵活,已被用于解决诸如语音识别、语言建模、机器翻译、情感分析和图像字幕等问题。RNN 利用输入的序列特性,序列输入可以是文本、语音、时间序列以及任何其他元素的出现取决于其前面元素的序列。在本节中,我们介绍了 RNN 及其变体,并学习如何使用 TensorFlow 进行实现。

盼小辉丶的博客 1万+

llamaindex实战-ChatEngine-ReAct Agent模式

ReAct 是一种基于Agent的聊天模式,构建在数据查询引擎之上。对于每次聊天交互,代理都会进入一个 ReAct 循环: 首先决定是否使用查询引擎工具并提出适当的输入 (可选)使用查询引擎工具并观察其输出 决定是否重复或给出最终答复

zg_hover的专栏 884

【深度学习总结_02】在自己的数据集微调SAM

使用医疗影像数据微调SAM

qq_41234663的博客 1万+

【吐血整理】CPU设计实战实验资源获取与入门指南:源码包下载、解压与实验上手

汪文祥《CPU设计实战》的配套实验材料以压缩包形式存放在本仓库中,仓库根目录下的 67413-CPU设计实战_实验资源.zip 即 README 中提到的"汪文祥 CPU设计实战_实验资源.zip"。包内提供了 CPU 设计相关的源代码和实验材料,适合想通过动手实验来理解 CPU 设计流程的学习者与开发者。 ## 先判断这份实验资源包是否适合你的场景 这份资源的定位是"实验练习素材",而不是一

gitblog_01084的博客 805

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

[大模型实战 07] 基于 LlamaIndex ReAct 框架手搓全自动博客监控 Agent

本节我们将理论付诸实践,利用 LlamaIndex 的 ReAct 框架和 Qwen3 模型,手搓一个全自动的博客监控 Agent。通过为大模型接入 RSS 读取、邮件与微信发送等外部工具,让它从‘聊天机器人’进化为‘能干活的数字员工’。

Add bricks to the edifice of the world as you envision it. 1025

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

RocketRide agent_llamaindex 节点实战:用 LlamaIndex ReAct 循环构建可编排的推理 Agent

本篇技术指南以 RocketRide 仓库中的 `agent_llamaindex` 节点为核心,讲解如何用 LlamaIndex 的 ReAct 循环实现"逐步推理 + 按需调用工具"的 Agent 节点:它接收 `questions` 通道的问题,自主决定何时调用已连接的 LLM 与工具,最终在 `answers` 通道输出答案,并可作为子 Agent 被父级 Agent 通过 `run_ag

gitblog_01072的博客 339

Function Call类型的 Agent 实现多参数工具调用

大模型Agent架构中的Function Calling与ReAct是两种核心工具调用范式,主要区别在于: 实现机制: Function Calling通过模型直接输出结构化指令(如JSON),框架解析后执行 ReAct依赖模型按文本模板(Thought/Action/Observation)生成推理链 模型要求: Function Calling需要专门微调的模型(如GPT-4) ReAct适用于任何强文本生成模型(如Llama3) 性能对比: Function Calling更高效可靠,适合生产环境 R

峰爸的博客 1241

基于LlamaIndex ReAct框架的博客监控Agent实战

大模型驱动的智能体(Agent)正成为自动化工作流的核心载体,其通过“推理-行动-观察”的ReAct循环能自主调用工具完成复杂任务。LlamaIndex作为主流Agent与数据框架,为工具调度和上下文管理提供了工程化支撑。这类技术不仅适用于问答与检索,更能在信息监控、内容筛选和摘要生成等场景中发挥价值。本文基于LlamaIndex ReAct框架,实现一个全自动博客监控Agent,它定时抓取RSS更新,结合关键词与语义判断文章相关性,自动生成结构化摘要并推送通知,将重复的盯更新、写摘要流程完全自动化,帮助开

weixin_29053577的博客 260

基于LlamaIndex的ReAct框架博客监控Agent

大模型能力的提升让AI Agent成为将模型转化为实际工具的关键路径。ReAct框架通过推理与行动的交替循环,使模型能够自主调用外部工具并观察结果,从而形成具备反馈回路的智能体。基于LlamaIndex的标准化封装,开发者无需复杂模板即可将任意Python函数转化为Agent工具,快速整合RSS检测、正文提取、摘要生成与通知推送等能力。在博客监控场景中,这种自动化方案不仅能代替人工订阅刷新,还能有效控制token成本与任务稳定性。本文从基础概念出发,详细拆解了基于ReAct和LlamaIndex实现全自动博

weixin_42520661的博客 244

Agent概念、技术及应用

摘要:本文探讨了AI Agent的核心原理与技术框架。AI Agent基于大语言模型构建,具备自主规划、记忆存储和工具使用能力,可处理复杂多步骤任务。文章详细分析了Agent的四个关键模块:规划(包括思维链和思维树分解)、记忆(短期与长期存储)、工具API集成和执行行动。通过智能家居案例展示了Agent如何感知需求、分解任务并动态调整行动。还介绍了ReAct框架等关键技术,为构建个性化Agent系统提供了理论基础。

qq_52203089的博客 865

LlamaIndex隐藏技巧:用自定义Agent实现智能PDF合同分析

本文深入探讨了如何利用LlamaIndex框架构建企业级智能合同分析Agent,实现从静态解析到动态对话的跨越。通过集成多模态解析、属性图存储和定制化工具链,该系统能够主动理解PDF合同中的复杂语义关系,进行逻辑推理与风险筛查,为企业法务与合规工作提供可靠、可解释的自动化解决方案。

hp777的博客 206

如何从零开始实现一个 AI Agent 框架(理论+实践)

作为一名程序员/工程师,思考的更多的可能是如何将AI Agent落地实现的层面。工程框架往往是工程应用实现的基石,框架选型也是架构师们设计与实现一个AI Agent智能体的首要工作。

python1234567_的博客 826

大模型开发必看!LlamaIndex从RAG到智能体的完整指南,建议收藏学习

LlamaIndex已从RAG工具进化为智能体开发平台,提供三大核心能力:领先的RAG系统、内置ReAct Agent和多智能体协作、生产级LlamaCloud服务。其模块化设计允许灵活替换组件,Workflow API支持复杂逻辑编排。相比LangChain,LlamaIndex更专注数据处理和RAG,适合重度依赖私有数据的应用。最佳实践是结合两者优势,用LlamaIndex处理RAG和数据智能,用LangChain处理复杂工作流。

2401_84204207的博客 759

大模型应用开发:动手做AI Agent——大模型书籍推荐丨全方位解析Agent!

《大模型应用开发 动手做AI Agent》是一本探索人工智能前沿技术的实践指南,由新加坡科技研究局AI研究员黄佳编写。本书从Agent的基本概念出发,系统讲解其技术框架、开发工具和实际应用,并带领读者动手开发7个功能强大的Agent,涵盖自动化办公、多Agent系统等场景。书中详细介绍了OpenAI API、LangChain等工具的使用,并通过案例解析Agent的设计与实现。此外,本书还展望了Agent的未来发展趋势,为读者提供从基础到进阶的完整学习路径。配套资料丰富,适合希望快速掌握大模型和Agent技

WANGJUNAIJIAO的博客 387

Harness、Loop 与 ReAct 架构:三者之间的联系与演进

输入输出协议:Agent 如何接收任务、如何返回结果;工具调用接口:Agent 如何调用外部工具(搜索、计算、代码执行等);状态管理:Agent 运行过程中的上下文如何保存与传递;终止条件:何时停止循环、何时判定任务完成。Harness 是"壳",它规定了 Agent 怎么跑起来、跑多久、跑到哪算完。Harness 是容器,定义了 Agent 的运行边界和协议;Loop 是引擎,驱动 Agent 反复迭代直到任务收敛;ReAct 是策略,规定了每一轮循环中如何推理、如何行动。

printf1314的博客 358
上一篇: Monaco 使用 TypeDefinitionProvider
下一篇: Vue3 中如何使用 Monaco
hawk2014bj
博客等级 码龄12年 1013粉丝 265原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值