当前位置: 首页 > article >正文

ReACT agent和FC agent

rag系列文章目录

文章目录

  • rag系列文章目录
  • 前言
  • 一、简介
  • 二、示例说明
  • 三、对比
  • 总结


前言

大模型时代llm正在改变我们的生活,它可以帮助人类写作,写代码,翻译等等,但是llm的知识在训练时被冻结,无法直接使用api接入外部数据,这就需要llm agent。下面简要介绍两种agent,分别是ReACT agent和Function Call agent。

一、简介

ReAct Agent结合了推理(Reasoning)和行动(Acting),使智能体能够在执行任务时进行动态推理和决策。这种方法通过提示模板引导模型进行推理和行动,具有较高的通用性和灵活性。

ReACT 过程是迭代的。agent不断循环推理和行动,在从维基百科等外部环境收集更多信息的同时,不断完善其计划。根据新信息,agent可能会决定调整其策略或探索不同的途径以达到预期结果。agent可以选择使用不同的工具或根据环境反馈修改其方法。通过与外部世界互动,agent可以不断更新其知识库,在后续迭代中改进其推理和决策。
在这里插入图片描述
Function Call Agent获取问题后,首先调用LLM ,LLM 会分析请求并根据其训练数据、提供的提示和任何可用的上下文确定要调用的最相关函数。 LLM 实际上并不执行函数本身,它只是输出一个包含函数名称和参数(必要的输入参数)的 JSON 对象。然后,agent获取此 JSON 输出,执行函数,并将结果发送回 LLM生成响应。
在这里插入图片描述

二、示例说明

以下通过简单案例说明两种agent的执行过程
1、FC agent过程

# 用户请求:查询上海天气
→ 模型识别需要调用天气API
→ 生成结构化参数:{"location": "上海", "unit": "celsius"}
→ 执行get_weather(location="上海")
→ 返回结果:"上海当前气温25℃"

2、React agent过程

# 用户请求:爱因斯坦的出生地是否在德国境内?
→ 推理:需要先确认爱因斯坦的出生地
→ 行动:调用维基百科API搜索"爱因斯坦出生地"
→ 观察:返回结果"乌尔姆,德国"
→ 推理:验证乌尔姆是否属于德国
→ 行动:调用地理数据库查询"乌尔姆 国家归属"
→ 观察:返回"属于德国巴登-符腾堡州"
→ 生成最终答案:"是的,爱因斯坦出生于德国乌尔姆"

三、对比

区别React agentFC agent
核心理念将推理和行动结合成一个连续的循环。LLM“思考”问题,决定要采取的步骤,让代理根据其推理采取行动,然后观察结果以完善其理解。具有函数调用功能的 LLM 根据用户的请求建议函数和参数,应用程序处理实际执行并将结果返回给 LLM 以集成到其响应中。
Prompt 技巧非常依赖React prompt技巧,需要引导llm进行迭代推理和行动除了定义函数及其参数外,不需要特定的prompt技术
决策llm根据推理结果和相关进行,自行决定采取的行动llm只是分析要做的功能和参数,由应用程序决策
侧重点强调推理和规划过程,使 LLM 行动更加透明和可解释侧重于使 LLM 能够以结构化方式与外部工具和 API 进行交互
擅长擅长处理需要多步推理、复杂规划和理解上下文的任务。可以处理更多未预先定义操作的开放式任务。擅长将 LLM 与外部系统集成并通过定义明确的函数执行特定任务
缺点由于涉及推理步骤,计算成本可能很高。需要付出更多努力来定义prompt和操作不太适合操作未预先定义的开放式任务。在处理复杂的推理过程时灵活性可能较低
场景案例基于 LLM 的聊天机器人可以通过在网络上搜索信息、总结结果并提供简洁的答案来回答多跳问题基于 LLM 的助手可以通过调用旅行 API、提供航班详细信息,然后生成确认消息来预订航班

总结

ReACT agent和FC agent之间的选择取决于手头的具体任务。如果任务涉及复杂的推理和不易定义为函数的操作,ReACT agent可能是更好的选择。如果任务涉及调用特定 API 或执行明确定义的操作,函数调用代理可能更合适。


http://www.kler.cn/a/558856.html

相关文章:

  • 纯CPU跑DeepSeek-R1 671b大模型
  • Pytorch深度学习教程_5_编写第一个神经网络
  • windows下安装CUDA-本地微调大模型
  • JUC并发—11.线程池源码分析
  • 通过Hive小文件合并(CombineHiveInputFormat)减少80%的Map任务数
  • w803|联盛德|WM IoT SDK2.X测试|window11|VSCODE|(4):IDE配置
  • 解决Open WebU无法显示基于OpenAI API接口的推理内容的问题
  • 【开源项目】分布式文本多语言翻译存储平台
  • 关于Python的一些基础知识(太阳太阳,持续更新)
  • 【DeepSeek-R1】写了个DeepSeek-R1本地软件,欢迎参与测试
  • 使用ESP-IDF来驱动INMP441全向麦克风
  • Redis 如何实现消息队列?
  • Python|OpenCV-实现人物眨眼检测(21)
  • 《从GPT-4到“东数西算”:AI算力的全球格局与技术趋势》
  • 五、Three.js顶点UV坐标、纹理贴图
  • 算法与数据结构(旋转链表)
  • (四)趣学设计模式 之 原型模式!
  • YOLOv12:以注意力为中心的物体检测
  • Servlet 国际化
  • Python pip 缓存清理:全面方法与操作指南