青训营X豆包MarsCode 技术训练营第五课 | 豆包MarsCode AI刷题

97 阅读3分钟

工具是代理的武器

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 支持的工具一览

bfdbb618fd320bf7a3c38706110abf4.jpg

使用 arXiv 工具开发科研助理

其中有一些工具,比如SerpAPI,你已经用过了,这里我们再来用一下arXiv工具。arXiv本身就是一个论文研究的利器,里面的论文数量比AI顶会还早、还多、还全。那么把它以工具的形式集成到LangChain中,能让你在研究学术最新进展时如虎添翼。

arXiv是一个提供免费访问的预印本库,供研究者在正式出版前上传和分享其研究工作。它成立于1991年,最初是作为物理学预印本数据库开始的,但后来扩展到了数学、计算机科学、生物学、经济学等多个领域。

预印本是研究者完成的、但尚未经过同行评议或正式出版的论文。Arxiv允许研究者上传这些预印本,使其他研究者可以在正式出版之前查看、评论和使用这些工作。这样,研究的发现可以更快地传播和分享,促进学术交流。