Qwen + ChatGLM3 ChatGLM3+ LangChain LangChain+ Streamlit Streamlit + Agent+ 多个工具+ 在线API

让具备Agent能力的模型自动选择并调用多个工具

ChatGLM3、Qwen或在线API模型负责理解任务,Agent负责工具调用编排,用户可在WebUI中选择工具。

✓ 支持LLM自动工具调用✓ 支持手动工具调用 ✕ Agent能力依赖模型✕ 普通模型需手动填入参数

方案简介

这是一套以 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 原文。

方案出处
chatchat-space/Langchain-Chatchat:Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM, Qwen 与 Llama 等语言模型
38615 star Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM, Qwen 与 Llama 等语言模型的 RAG 与 Agent 应用 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM, Qwen and Ll

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。