LangChain手记 Agent 智能体

整理并翻译自DeepLearning.AI×LangChain的官方课程:Agent(源代码可见)

“人们有时会将LLM看作是知识库,因为它被训练所以记住了来自互联网或其他地方的海量信息,因而当你向它提问时,它可以回答你的问题。有一个更加有用的认知模式是将LLM看作是一个推理引擎,如果提供给他文本块或者额外信息,它可以理由从互联网或者其他地方学会的背景知识利用新信息来帮助回答问题或者进行文本推理或者执行下一步动作,这正是LangChain的Agent框架能够帮助你完成的。”

(笔者注:Agent,直译代理,LLM语境下更偏向于具备一定智能的代理,因而更偏向强化学习Agnet的概念,因而本文翻译为智能体。)

Agent 智能体

LangChain提供的Agent可以使用各种各样的工具,例:搜索引擎,也支持自定义工具,这使得你可以访问任何数据存储、API或者自定义函数。本节介绍Agent的一些例子。

初始化一个示例agent,可以使用数学计算器、查询维基百科页面等工具:
LangChain手记 Agent 智能体_第1张图片
运行一个示例,该示例计算一道简单的数学题:
LangChain手记 Agent 智能体_第2张图片
AOT模式,COT的一种,通过执行Action得到结果Observation,基于observation生成下一步如何进行的thought。

接下来,提问一个信息题,询问Tom M. Mitchell,来自CMU的教授,撰写了哪本书?
LangChain手记 Agent 智能体_第3张图片
Agent认为仍需要继续搜索Machine Learning (book) 的原因是上一步搜索Tom M. Mitchell得到了2个页面,虽然它能得出Tom M. Mitchell编写了Machine Learning这本书,但是它有不确定的信息,因而继续搜索(本例虽然没有,但其他例子有可能agent在处理不确定信息时会进行答案修正,以提高正确率)。


LangChain手记 Agent 智能体_第4张图片

使用LangChain实现类Copilot

LangChain手记 Agent 智能体_第5张图片
LangChain手记 Agent 智能体_第6张图片
可以通过开启LangChain debug模式观察到更多信息:
LangChain手记 Agent 智能体_第7张图片
LangChain手记 Agent 智能体_第8张图片
LangChain手记 Agent 智能体_第9张图片
LangChain手记 Agent 智能体_第10张图片
LangChain手记 Agent 智能体_第11张图片
LangChain手记 Agent 智能体_第12张图片
LangChain手记 Agent 智能体_第13张图片
LangChain手记 Agent 智能体_第14张图片
LangChain手记 Agent 智能体_第15张图片

使用LangChain编写自定义工具

前面都是使用LangChain已经内置的工具,下面介绍一个自定义工具的例子:

LangChain手记 Agent 智能体_第16张图片
注意:函数说明是必要的,它指定了函数的使用方式,这里要求time函数的输入为空串。

试试提问今天是什么日期:
LangChain手记 Agent 智能体_第17张图片
感兴趣的读者可以使用源码的notebook运行一下,我的运行结果如下:
LangChain手记 Agent 智能体_第18张图片

你可能感兴趣的:(大语言模型,langchain,人工智能)