Agent,代理。这种东西可以使用语言模型来决定下一步要执行的动作,这个动作可以是使用一个工具,也可以是观察输出的结果。也就是我们可以把用户的输入交给一个代理去处理,代理可以根据用户的输入列出一个计划,这个计划里包含了要执行的动作,还有执行这些动作的时候需要的一些参数数据。LangChain 框架提供了一些不同类型的代理 ,我们也可以根据自身需求创建自己的代理 。
Tool,工具。它其实就是一个方便语言模型调用的函数,这个函数一般接收一个字符串类型的参数,并且可以返回一个字符串类型的值。工具可以完成特定的任务,比如使用搜索引擎搜索,使用浏览器浏览网页,查看数据库,代码交互等等,LangChain 框架提供了一些现成的工具,我们也可以自己定义需要的工具。
Toolkit,工具包,指的就是可以处理某项特定类型任务的工具组合。比如 JSON 工具包,SQL 工具包,向量存储工具包等等。
Agent Executor,代理执行器。它其实就是一个代理外加一组工具,它的任务就是负责调用代理,获取到要执行的动作还有跟这个动作相关的输入,然后去调用跟这个动作相关的工具,再把工具返回的结果,外加之前的所有信息再交给代理去处理 ,从代理那里得到下一个要执行的动作。