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

AI菜鸟向前飞 — LangChain系列之十七 - 剖析AgentExecutor

AgentExecutor 顾名思义,Agent执行器,本篇先简单看看LangChain是如何实现的。

    先回顾

图片

AI菜鸟向前飞 — LangChain系列之十四 - Agent系列:从现象看机制(上篇)

AI菜鸟向前飞 — LangChain系列之十五 - Agent系列:从现象看机制(中篇)一个Agent的“旅行”

AI菜鸟向前飞 — LangChain系列之十六 - Agent系列:从现象看机制(下篇)一款“无需传递中间步骤"的Agent

当时在介绍Agent,给大家的一个让Agent执行的示例,

intermediate_steps = []
while not isinstance(res := agent.invoke({"input": "AI菜鸟向前飞系列文章出自哪里?", "intermediate_steps": intermediate_steps}), AgentFinish):for each in res:observation = {tool.name: tool for tool in tools}[each.tool].invoke(each.tool_input)intermediate_steps.append((each, observation))

这次为了方便与AgentExecutor更好的对比,将程序微调如下样式:

intermediate_steps = []
while True:res = agent.invoke({"input": "AI菜鸟向前飞系列文章出自哪里?", "intermediate_steps": intermediate_steps})if isinstance(res, AgentFinish):breakfor each in res:observation = {tool.name: tool for tool in tools}[each.tool].invoke(each.tool_input)intermediate_steps.append((each, observation))

抽丝剥茧,从下图可以更好的看出官方是如何实现的,其实、“几乎一样”

图片

释义:

  • 蓝色:官方用迭代次数 与耗时多方面判断是否要进入循环(即:while True)

  • 褐色:官方也是AgentFinish判断,和拼接intermediate_steps(即:循环体内部处理)

  • 敲黑板、划重点

    • 粉色:特有的类型,AgentStep,它将每一个要执行的方法和返回值都作为一个AgentStep,例如:

      图片

    • 绿色:另一种实现方法,封装为def plan作用是调用LLM(大语言模型)后,大模型响应的内容(这个很好理解,就不晒图了)

One more thing...

谈谈Tool的return_direct属性   为啥之前讲tool时不介绍它,因为学会了AgentExecutor再了解它会更有意义:) 

AI菜鸟向前飞 — LangChain系列之十三 - 关于Tool的必知必会

若看不懂的话,咱们做个实验 ,tool的return_direct取值

  • True

{'input': 'AI菜鸟向前飞系列文章出自哪里?', 'output': 'AI菜鸟向前飞文章出自Song榆钱儿的公众号。'
  • False(默认)

// 不同的LLM的output内容可能会不同
{'input': 'AI菜鸟向前飞系列文章出自哪里?', 'output': 'AI菜鸟向前飞系列文章出自Song榆钱儿的公众号。'

简单来说,True:直接返回函数的返回值,False:将函数返回值再经过‘润色’返回

http://www.lryc.cn/news/367869.html

相关文章:

  • nodejs 第三方库 exiftool-vendored
  • docker部署redis实践
  • Web前端学习之路:深入探索学习时长与技能进阶的奥秘
  • 如何不用命令创建用户
  • 基于Python实现可视化分析中国500强排行榜数据的设计与实现
  • VUE3 学习笔记(13):VUE3 下的Element-Plus基本使用
  • MySql数据库安全加固
  • Nginx(title小图标)修改方法
  • iOS 17.5中的一个漏洞
  • 如何在 iPhone 上恢复已删除的短信
  • 矩阵练习1
  • 【C++ | 拷贝赋值运算符函数】一文了解C++的 拷贝赋值运算符函数
  • Linux网络安全
  • Django 视图类
  • 【Java面试】十七、并发篇(上)
  • 七天进阶elasticsearch[one]
  • 全新抖音快手小红书视频解析去水印系统网站源码
  • 图解 Python 编程(12) | 文件和编码方式
  • CSDN个人主页动态地图(前端/后端)
  • GUI编程-01
  • Linux网络-自定义协议、序列化和反序列化、网络计算服务器的实现和Windows端客户端
  • Hive知识体系保姆级教程
  • 三大网络简介
  • Element-UI全面入门与实战技巧
  • 第103天: 权限提升-Linux 系统辅助项目脏牛Dirty内核漏洞SUIDGUID
  • 如何用群晖当异地组网服务器?
  • 文件怎么去重?5个技巧,教你删除重复文件!
  • 标准发布实施 | 《村镇污水处理一体化集成装备技术规范》
  • 人工智能--教育领域的运用
  • 【设计模式深度剖析】【3】【行为型】【职责链模式】| 以购物中心客户服务流程为例加深理解