Langchain Agent - Agent类型

2024年7月26日修改
作者:lucas大叔
Agent类型
从几个维度将所有可用的agent进行了分类。
预期模型类型( Intended Model Type)
无论agent是为Chat模型(接收消息,输出消息)还是LLM(接收字符串,输出字符串)而设计的,主要影响的是提示策略的使用。你可以使用一个不同类型的模型来运行agent,但它可能不会产生相同质量的结果。
支持聊天历史( Supports Chat History)
Agent是否支持聊天历史。如果支持,那意味着它可以用作聊天机器人。如果不支持,那么它更适合单一任务。支持聊天历史通常需要更好的模型,因此早期针对较差模型的agent类型可能不支持此功能。
支持多输入工具( Supports Multi-Input Tools)
Agent是否支持多输入工具。如果工具只需要单个输入,通常对于LLM来说更容易知道如何调用它。因此,一些早期针对较差模型的agent类型可能不支持此功能。
支持并行函数调用( Supports Parallel Function Calling)
让LLM同时调用多个工具可以极大地加快agent的速度,无论是否有任务需要这样做。然而,对于LLM来说,这样做非常具有挑战性,因此某些agent类型不支持此功能。
必要的模型参数( Required Model Params)
Agent是否需要模型支持任何额外的参数。一些agent类型利用诸如OpenAI函数调用之类的功能,这样做需要其他的模型参数。如果不需要任何参数,那就意味着所有的操作都通过prompt完成。
以下是何时适宜用何种类型agent的总结:
Agent Type
Intended Model Type
Supports Chat History
Supports Multi-Input Tools
Supports Parallel Function Calling
Required Model Params
When to Use
Tool Calling
Chat
tools
如果你正使用 tool-calling模型
OpenAI Tools
Chat
tools
如果你正在使用最近的OpenAI模型(从1106版本开始)。建议使用通用工具调用代理。