所有可用代理分类
这将所有可用代理分类在几个维度上。
预期的模型类型
这个代理是为聊天模型(接收消息,输出消息)还是 LLMs(接收字符串,输出字符串)而设计的。这主要影响的是使用的提示策略。您可以使用不同类型模型的代理,但可能不会产生相同质量的结果。
支持聊天历史记录
这些代理类型是否支持聊天历史记录。如果支持,那意味着它可以用作聊天机器人。如果不支持,则意味着更适用于单个任务。支持聊天历史通常需要更好的模型,因此早期针对较差模型的代理类型可能不支持。
支持多输入工具
这些代理类型是否支持具有多个输入的工具。如果工具只需要一个输入,LLM 通常更容易知道如何调用它。因此,一些早期针对较差模型的代理类型可能不支持这些工具。
支持并行功能调用
LLM 同时调用多个工具可以极大地加快代理是否有任务需要这样做的速度。但是,对于 LLM 来说这样做要困难得多,因此一些代理类型不支持这一点。
模型所需的参数
是否需要该代理要求模型支持任何额外的参数。一些代理类型利用诸如 OpenAI 函数调用之类的功能,这些功能需要其他模型参数。如果不需要任何参数,那意味着所有操作都是通过提示完成的。
何时使用
我们对您何时应该考虑使用此代理类型的评论。
| 代理类型 | 预期的模型类型 | 支持聊天历史记录 | 支持多输入工具 | 支持并行功能调用 | 需要的模型参数 | 何时使用 | API |
|---|---|---|---|---|---|---|---|
| 工具调用 | 聊天 | ✅ | ✅ | ✅ | tools | 如果您正在使用一个工具调用模型 | Ref (opens in a new tab) |
| OpenAI 工具 | 聊天 | ✅ | ✅ | ✅ | tools | [Legacy] 如果您使用最近的 OpenAI 模型(从 1106 开始)。建议使用通用工具调用代理代替。 | Ref (opens in a new tab) |
| OpenAI 函数 | 聊天 | ✅ | ✅ | functions | [Legacy] 如果您使用 OpenAI 模型,或经过微调以进行函数调用并公开与 OpenAI 相同的 functions 参数的开源模型。建议使用通用工具调用代理代替。 | Ref (opens in a new tab) | |
| XML | LLM | ✅ | 如果您正在使用 Anthropic 模型,或其他擅长 XML 的模型 | Ref (opens in a new tab) | |||
| 结构化聊天 | 聊天 | ✅ | ✅ | 如果您需要支持具有多个输入的工具 | Ref (opens in a new tab) | ||
| JSON 聊天 | 聊天 | ✅ | 如果您正在使用擅长处理 JSON 的模型 | Ref (opens in a new tab) | |||
| ReAct | LLM | ✅ | 如果您正在使用一个简单的模型 | Ref (opens in a new tab) | |||
| 自问带搜索 | LLM | 如果您正在使用一个简单的模型,并且只有一个搜索工具 | Ref (opens in a new tab) |