[BUG]: Generic OpenAI proxy backends are treated as native-tool-capable by default in 1.14.1

用户在 Docker 中从 mintplexlabs/anythingllm:1.13 升级到 mintplexlabs/anythingllm:1.14.1 ,使用 Generic OpenAI 提供商配置 LiteLLM 代理,底层模型为 Ollama(如 ollama/llama3.2:3b

[BUG]: Generic OpenAI proxy backends are treated as native-tool-capable by default in 1.14.1

[BUG]: Generic OpenAI proxy backends are treated as native-tool-capable by default in 1.14.1

快速结论:升级到 1.14.1 后,使用 Generic OpenAI 提供商(如 LiteLLM 代理到 Ollama)时,普通聊天会自动进入代理/工具模式。优先排查:设置环境变量 PROVIDER_DISABLE_NATIVE_TOOL_CALLING=generic-openai 作为临时工作区,或切换到聊天模式。

问题场景

用户在 Docker 中从 mintplexlabs/anythingllm:1.13 升级到 mintplexlabs/anythingllm:1.14.1,使用 Generic OpenAI 提供商配置 LiteLLM 代理,底层模型为 Ollama(如 ollama/llama3.2:3b)。在普通聊天中提问(如 “What is LiteLLM?”),AnythingLLM 自动进入代理模式,暴露原始工具调用 JSON。

报错原文

[AgentHandler] Start ... generic-openai:ollama/llama3.2:3b
[AgentHandler] Attached rag-memory plugin to Agent cluster
[AgentHandler] [DEBUG] Provider supports agent streaming - will use async execution!
[AgentLLM - ollama/llama3.2:3b] Provider.stream (tooled) - will process this chat completion.

用户还看到类似输出:

@agent: Swapping over to agent chat. Type /exit to exit agent execution loop early.
{"name":"rag-memory","arguments":{"action":"search","content":"litellm"}}

原因分析

可能原因:AnythingLLM 1.14.1 将 Generic OpenAI 提供商默认视为原生工具调用支持(native-tool-capable),这是从 opt-in(选择性加入)改为 opt-out(选择性退出)的回归(可能与提交 a4c9ee1 有关)。由于 Generic OpenAI 通常是代理/路由器适配器(如 LiteLLM),其底层模型(如 Ollama)可能不支持 AnythingLLM 的原生工具调用协议,导致普通聊天被强制路由到代理模式。

环境排查

  • 确认 AnythingLLM 版本:1.14.1(对比 1.13 无此问题)
  • 确认 LLM 提供商配置:LLM_PROVIDER=generic-openai
  • 确认代理路径:GENERIC_OPEN_AI_BASE_PATH=http://litellm:4000/v1
  • 确认模型:GENERIC_OPEN_AI_MODEL_PREF=ollama/llama3.2:3b
  • 确认 LiteLLM 和 Ollama 通信正常(直接 API 调用无问题)
  • 确认是否设置了 PROVIDER_DISABLE_NATIVE_TOOL_CALLING

解决步骤

  1. 可优先尝试:在 Docker 环境变量中添加 PROVIDER_DISABLE_NATIVE_TOOL_CALLING=generic-openai,并重建容器。此方法可立即禁用 Generic OpenAI 的原生工具调用,但注意会全局影响该提供商路径,可能影响其他需要工具调用的模型。
  2. 如果不想禁用所有工具调用,可尝试在聊天界面中选择“聊天模式(chat mode)”,该模式会完全移除此聊天会话的工具调用能力,并通过 @agent 恢复旧有工作流。
  3. 如果问题持续,考虑降级到 1.13 版本,直到有更精细的配置方案(如每个提供商/模型设置原生工具支持)。

验证方法

执行步骤 1 后,重启容器并再次提问(如 “What is LiteLLM?”),确认不再看到代理模式自动切换和工具调用 JSON 输出。检查日志中是否不再出现 [AgentHandler] 相关行。

参考来源

Mintplex-Labs/anything-llm #5900

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 9618

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注