让具备Agent能力的模型自动选择并调用多个工具
ChatGLM3、Qwen或在线API模型负责理解任务,Agent负责工具调用编排,用户可在WebUI中选择工具。
方案简介
这是一套以 Agent 为核心的工具调用方案,建立在 LangChain-Chatchat 的对话应用能力之上。方案面向需要让大语言模型使用外部工具完成任务的场景,重点针对 ChatGLM3 和 Qwen 进行了优化,也支持具备 Agent 能力的在线 API 模型。
它提供三种不同的操作方式:可以让 LLM 在多个工具中自动选择并调用;也可以只选择一个工具,让模型解析工具参数;还可以关闭 Agent,由用户手动填写参数后调用工具。对于不具备 Agent 能力的模型,仍可使用后两种方式完成工具调用。
亮点与能力
- 针对 ChatGLM3 和 Qwen 进行 Agent 优化。
- 支持 LLM 自动进行工具调用。
- 支持同时选择多个工具,由模型进行工具选择。
- 支持只选择单个工具,让模型仅解析工具参数。
- 支持关闭 Agent 后由用户手动填入参数调用工具。
- 支持具备 Agent 能力的在线 API 模型。
- 不选择工具并上传图片时,可进入图片对话模式。
组成与分工
- ChatGLM3:重点优化支持的模型之一,适合具备 Agent 能力的自动工具调用场景。
- Qwen:重点优化支持的另一类模型,可参与自动工具选择与调用。
- Agent:负责根据对话任务组织工具调用;在多工具模式下由 LLM 自动完成选择。
- 多个工具:为模型提供可调用的能力集合。
- 单个工具:用于模型能力一般时,仅解析工具参数,或由用户明确指定工具。
- 在线API:为具备 Agent 能力的在线模型提供接入路径。
- Streamlit WebUI:提供勾选“启用Agent”、选择工具和进行对话的交互入口。
实施步骤
1. 选择具备 Agent 能力的模型
优先选择 ChatGLM3、Qwen,或使用具备 Agent 能力的在线 API。项目的 0.3.x 版本针对 ChatGLM3 和 Qwen 做了优化,因此它们是材料中明确支持的重点模型。
2. 准备工具集合
根据任务准备一个或多个可调用工具。多个工具适合交给 LLM 自动选择;如果模型不擅长工具选择,则只启用一个工具,让模型集中解析该工具的参数。
3. 选择 Agent 操作模式
在界面中选中“启用Agent”并选择多个工具时,由 LLM 自动进行工具调用。选中“启用Agent”但只选一个工具时,模型仅解析工具参数。若不启用 Agent,则由用户手动填入参数后调用工具。
4. 发起对话并观察调用
提交任务后,检查模型是否完成工具选择、参数解析和调用。对于不具备 Agent 能力的模型,使用单工具或手动参数模式,不依赖自动选择多个工具。
5. 按任务切换特殊模式
如果不选择任何工具而上传一个图片,则使用 qwen-vl-chat 等多模态模型进行图片对话,而不是走工具调用流程。
使用与配置要点
使用时首先根据模型能力选择模式。ChatGLM3、Qwen 或具备 Agent 能力的在线 API 可以尝试多工具自动调用;模型 Agent 能力一般时,选择单个工具更适合让模型只解析参数;不具备 Agent 能力时,则关闭 Agent 并由用户手动填写参数。
验证成功的重点不是只有模型返回文本,而是观察是否按照所选模式完成了工具选择或参数处理:多工具模式应体现 LLM 自动工具调用,单工具模式应体现参数解析,手动模式则由用户提供调用参数。
优缺点
- ✓ 支持LLM自动工具调用
- ✓ 支持手动工具调用
- ✕ Agent能力依赖模型
- ✕ 普通模型需手动填入参数
出处
本方案挖掘自开源项目 chatchat-space/Langchain-Chatchat,方案内容与实施命令均来自其 README 原文。
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。