用户登录

Agent,代理。在 LangChain 应用里,代理可以使用模型来确定接下来要执行的动作,也就是要做的事情。Agent Executor,代理执行器,它的主要任务就是调用代理,执行代理返回的动作。

下面我们可以创建并且使用一个 Agent Executor,在这个文件的顶部,导入一个 initializeAgentExecutorWithOptions,它来自 langchain/agents 这个包,用它可以初始化一个代理执行器。

代理执行器可以带一些工具,比如 WebBrowser 是一个可以使用的工具,我们再导入一个工具,导入的是 Calculator,它来自 langchain/tools/calculator,这个工具可以做一些数学运算任务。

声明一个 calculator,新建一个 Calculator,下面再声明一个 tools,它是一个数组,里面添加一个 browser,一个 calculator,下面创建代理执行器的时候可以使用这组工具。

再声明一个 agentExecutor ,等于 await,用一下 initializeAgentExecutorWithOptions,提供一个 tools,一个 model,再提供一个对象参数,里面设置一下这个代理的类型 agentType,设置成 zero-shot-react-description。再把 verbose 设置成 true,这样可以输出详细的信息。

下面可以用一下这个代理执行器,声明一个 result,等于 await,用一下 agentExecutor.call ,提供一个对象,里面添加一个 input,它是一个字符模板,里面写一段输入文本。比如 “
列出 https://ninghao.net/package/openai 课程的标题与时长,同时计算出课程总时长”

最后可以在控制台上输出这个 result。在终端,执行 node index.mjs。

注意观察输出的东西,这里提示我需要找出在网页里的课程标题还有时长,Agent 一开始返回要执行的动作是这个 web-browser,也就是需要使用这个工具去浏览指定地址的网页,在网页里提取需要的内容。

找出这个页面上的课程标题还有对应的时长以后,Agent 又会返回一个动作,要使用 calculator 做一个数学运算,这里求的就是三个课程的时长的总和。结果是 63。

最后结出的最终答案就是网页里的课程内容的标题与课程时长,还有一个计算出来的总共的时长。

使用代理动态执行任务(Agents)《 LangChain 智能应用开发:快速起步 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点