type
status
slug
summary
date
tags
category
password
Multi-select
Status
URL
勘误
标签
类型
icon
Publishe Date
贴文
🪄
使用 LangChain、OpenAI 和 SerpApi 创建 MRKL 自治代理
MRKL 是模块化推理、知识和语言系统的缩写。它是一种模块化架构,结合了大型语言模型 (LLM)、外部知识源和离散推理。
本文介绍了 MRKL 代理的基础知识以及如何使用 LangChain 框架构建 MRKL 代理。
本文中还介绍了为单输入和多输入场景构建 MRKL 代理的 Python 代码。
在本文后面,您将看到我如何将代理输出记录到LangSmith,以深入、顺序地了解 LLM 链如何在代理内执行;填充的提示也可见。
您还会注意到提示模板的使用程度,这些提示也可以通过游乐场手动提交给法学硕士进行检查。
因此,法学硕士实际上是通往知识世界的文本门户,也许应该被称为“语言和知识”模型。
一般来说,默认的 LLM 限制是:
- 无法获取当前信息
- 无法访问专有信息源
- 缺乏推理能力
- 轻松微调
这些缺点可以通过及时的工程来解决,而法学硕士可以作为任务和工具驱动的自主代理的支柱。
有人可能会说,当提供高度准确和上下文提示时,LLM 零样本性能可以与微调模型相媲美。因此,与微调相比,快速的工程方法可以提供更多的多功能性。
MRKL 代理由三部分组成:
工具:代理可以使用的工具。LLMChain:LLMChain 生成文本,该文本以某种方式解析以确定要采取的操作。代理类:解析 LLMChain 的输出以确定要采取的操作。
创建自定义 LLMChain 的大部分工作都归结为创建良好的提示。提示还指导代理以何种方式将数据呈现给法学硕士。
还有一个输入变量,用于
agent_scratchpad
存储先前操作和观察的注释。代理核心的提示可以根据需要进行定制和调整。
下面是可以在 Colab 笔记本中运行的 Python 代码,请注意对搜索工具的描述。这有助于代理了解何时使用该工具。
如果代理可以访问多个工具并且需要区分何时使用什么工具,则此描述尤其重要。
另请注意作为代理核心的提示模板是如何定义的。提示有前缀和后缀,因此这是composition的实现。
提示模板,可以通过运行以下命令查看其中的占位符:
print 命令的输出,可以从其中查看提示。
下面
llm_chain
定义了,tool_names
等等。使用下面的运行命令执行代理,并插入代理的问题。
运行输出,包括智能体的想法、行动、行动输入、观察、想法和最终答案:
多输入
如果有多个输入会发生什么?下面我们有三个输入变量:输入、语言和代理暂存器。
再次可以看到提示:
以及带有提示模板的输出,带有占位符
{language}
和{input}
。{agent_scratchpad}
代理以问题作为输入运行,响应语言定义为
Afrikaans
。代理以正确的语言输出正确的答案。
LangSmith
在 LangSmith 中,我创建了一个从代码中引用的项目。这包含在上面的 Python 代码示例中。
我运行 MRKL 代理七次,下面是每次运行的延迟和使用的令牌。带有输入、输出和时间戳。
深入了解代理运行,可以看到完整的跟踪,包括延迟和链中的每个步骤以及使用的令牌。它还清楚地表明了法学硕士在此过程中的作用。
我真正喜欢的是可以从 LangSmith 检查提示。
完成的提示是可见的,LangSmith 是检查和优化代理的理想工具。
作者:Cobus Greyling
- 作者:Inevitable AI
- 链接:https://www.Inevitableai.ltd/article/share117
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。