做电影解析网站,阿里云域名备案网站建设方案书,手机网页视频下载工具,商铺装修找什么公司AgentExecutor 顾名思义#xff0c;Agent执行器#xff0c;本篇先简单看看LangChain是如何实现的。 先回顾 AI菜鸟向前飞 — LangChain系列之十四 - Agent系列#xff1a;从现象看机制#xff08;上篇#xff09;
AI菜鸟向前飞 — LangChain系列之十五 - Agent系列#…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将函数返回值再经过‘润色’返回