代理 (Agents)
代理可以用于各种任务。
代理将语言模型的决策能力与工具结合起来,以创建一个能够代表您执行和实施解决方案的系统。
在继续阅读之前,强烈建议您阅读agent
模块中的文档,以更好地理解与代理相关的概念。
具体而言,在继续阅读之前,您应该熟悉agent
、tool
和agent executor
的抽象概念。
- 代理文档(用于与外部世界进行交互)
创建您自己的代理 (Create Your Own Agent)
阅读完这些文档后,您应该准备好创建自己的代理了。 那具体涉及什么呢? 以下是我们推荐您开始创建自己的代理的步骤:
步骤 1:创建工具 (Step 1: Create Tools)
代理的定义很大程度上取决于它可以使用的工具。 如果您有特定的任务需要代理完成,您必须为其提供访问正确工具的权限。 我们在LangChain中内置了许多工具,因此您应该首先查看是否有任何工具符合您的需求。 但是,我们也提供了定义自定义工具的简便方法,因此如果您需要自定义工具,绝对可以这样做。
(可选)步骤 2:修改代理 (Optional Step 2: Modify Agent)
内置的LangChain代理类型设计用于在通用情况下工作得很好, 但是您可能可以通过修改代理的实现来提高性能。 有几种方法可以做到这一点:
- 修改基本提示。这可以用于为代理提供更多关于其行为方式的上下文等。
- 修改输出解析器。如果代理在解析语言模型输出时遇到问题,这是必要的。
(可选)步骤 3:修改代理执行器 (Optional Step 3: Modify Agent Executor)
通常情况下,这一步是不必要的,因为这是相当通用的逻辑。 您可能希望修改这一步的原因包括添加不同的停止条件或处理错误。
示例 (Examples)
代理的具体示例包括:
- AI插件:一个实现了能够使用所有AI插件的代理。
- Plug-and-PlAI(插件数据库):一个实现了能够使用从PlugNPlAI检索到的所有AI插件的代理。
- Wikibase代理:一个与Wikibase进行交互的代理的实现。
- 销售GPT:这个笔记本演示了一个上下文感知的AI销售代理的实现。
- 多模态输出代理:一个能够生成文本和图像的多模态输出代理的实现。