工具是代理的武器
LangChain之所以强大,第一是大模型的推理能力强大,第二则是工具的执行能力强大!孙猴子法力再强,没有金箍棒,也降伏不了妖怪。大模型再能思考,没有工具也不行。
工具是代理可以用来与世界交互的功能。这些工具可以是通用实用程序(例如搜索),也可以是其他链,甚至其他的代理。
那么到底什么是工具?在LangChain中,工具是如何发挥作用的?
LangChain通过提供一个统一的框架来集成功能的具体实现。在这个框架中,每个功能都被封装成一个工具。每个工具都有自己的输入和输出,以及处理这些输入和生成输出的方法。
当代理接收到一个任务时,它会根据任务的类型和需求,通过大模型的推理,来选择合适的工具处理这个任务。这个选择过程可以基于各种策略,例如基于工具的性能,或者基于工具处理特定类型任务的能力。
一旦选择了合适的工具,LangChain就会将任务的输入传递给这个工具,然后工具会处理这些输入并生成输出。这个输出又经过大模型的推理,可以被用作其他工具的输入,或者作为最终结果,被返回给用户。
通过这种方式,LangChain 大大延展了大模型的功能。大模型的推理,加上工具的调用,都集成在一个系统中,而这个系统可以处理多种类型的任务。这提高了系统的灵活性和可扩展性,也大大简化了开发者的工作。
如何加载工具
在程序中,可以使用以下代码片段加载工具。
from langchain.agents import load_tools
tool_names = [...]
tools = load_tools(tool_names)
from langchain.agents import load_tools
tool_names = [...]
llm = ...
tools = load_tools(tool_names, llm=llm)
LangChain 支持的工具一览
使用 arXiv 工具开发科研助理
其中有一些工具,比如SerpAPI,你已经用过了,这里我们再来用一下arXiv工具。arXiv本身就是一个论文研究的利器,里面的论文数量比AI顶会还早、还多、还全。那么把它以工具的形式集成到LangChain中,能让你在研究学术最新进展时如虎添翼。
arXiv是一个提供免费访问的预印本库,供研究者在正式出版前上传和分享其研究工作。它成立于1991年,最初是作为物理学预印本数据库开始的,但后来扩展到了数学、计算机科学、生物学、经济学等多个领域。
预印本是研究者完成的、但尚未经过同行评议或正式出版的论文。Arxiv允许研究者上传这些预印本,使其他研究者可以在正式出版之前查看、评论和使用这些工作。这样,研究的发现可以更快地传播和分享,促进学术交流。