[BUG]: FastCRW self-hosted web search returns 404 from AnythingLLM Desktop

此报错通常出现在 AnythingLLM Desktop 使用自托管 FastCRW 实例进行 Agent 联网搜索时,请求被错误地拼成了双斜杠路径 `//v1/search` 导致 404。优先排查 AnythingLLM 是否已升级到包含修复的版本(v1.16.1 及之前版本均受影响)。

快速结论:此报错通常出现在 AnythingLLM Desktop 使用自托管 FastCRW 实例进行 Agent 联网搜索时,请求被错误地拼成了双斜杠路径 `//v1/search` 导致 404。优先排查 AnythingLLM 是否已升级到包含修复的版本(v1.16.1 及之前版本均受影响)。

适用环境:AnythingLLM Desktop v1.16.1(Windows 11)、Ollama + qwen3:32b-q4_K_M、自托管 FastCRW(ghcr.io/us/crw:latest,http://127.0.0.1:3000)、SearXNG(searxng/searxng:latest,http://localhost:8080)。

最快修复方案:暂无确认的一步修复方案,需要等待包含 #6289 修复的 AnythingLLM 新版本发布并升级。升级后无需再填写假的 API Key(如 `local`)。

注意事项:该修复尚未发布到用户当前使用的 v1.16.1 版本中,在升级前以上配置仍会持续报 404。当前现有的假 API Key 配置在升级后可以移除,因为自托管 FastCRW 默认不需要认证。

问题场景

用户在使用 AnythingLLM Desktop 的 Agent 功能时,配置了自托管的 FastCRW 作为 Web 搜索后端(FastCRW 再转发到自托管 SearXNG)。Agent 调用 `web-browsing` 工具搜索时返回 404 错误,导致 Agent 无法获取搜索结果。用户已通过 curl 和 PowerShell 分别验证 SearXNG 与 FastCRW 的 API 均能直接访问成功,因此问题局限于 AnythingLLM 的 FastCRW 集成层。

报错原文

fastCRW Search Error: 404 - Not Found.
params: {"auth":"local","q":"site:debian.org Debian latest stable release"}

Internet search failed with error: "404 - Not Found".

原因分析

这是 AnythingLLM 官方维护者在 Issue 中确认的三个叠加 Bug,属于 AnythingLLM 集成层的问题,并非用户配置错误:

  • URL 拼接错误:代码在解析基础 URL 后会将路径清空并归一化为 `/`,随后在末尾追加 `/v1/search`,导致请求实际发送到 `//v1/search`(双斜杠路径),任何自托管地址都会触发真实 404。这是只有默认托管端点能正常工作的根本原因。
  • 响应解析不兼容:解析逻辑只匹配托管端点的响应结构,而自托管实例将结果嵌套在 data.results 下(用户通过直接调用 API 已确认此结构),因此即使 URL 修复也无法正确读取结果。
  • 不必要的认证限制:自托管 FastCRW 在未配置密钥时本不需要认证,但 AnythingLLM 集成强制要求填写 API Key,用户被迫填入虚构的 `local` 值才能启用该功能。

环境排查

  • 确认 AnythingLLM Desktop 版本是否为 v1.16.1 或更早(这些版本已确认存在该 Bug)。
  • 确认 FastCRW 基础 URL 配置为 http://127.0.0.1:3000(不带末尾斜杠或路径)。
  • 确认自托管 FastCRW 的 API 响应结构是否为 {"success": true, "data": {"results": [...]}}(区别于托管端点格式)。
  • 确认 SearXNG 已开启 JSON 输出格式(search.formats 包含 json)。

解决步骤

  1. 等待 AnythingLLM 发布包含 #6289 修复的新版本(该 PR 已合入并附带测试,针对自托管实例在有无认证两种配置下均已验证),然后升级 Desktop 应用。
  2. 升级后移除 FastCRW 配置中多余的假 API Key(如 local),使配置恢复为自托管实例的真实认证状态(无密钥则留空)。
  3. 保持现有 FastCRW 与 SearXNG 配置不变,确认 AGENT_CRW_API_URL 仍然指向可直连的自托管地址。

验证方法

升级到修复版本后,重新让 Agent 执行相同的搜索指令(如 site:debian.org Debian latest stable release),日志中不再出现 404 - Not Found,Agent 能正常返回搜索结果即可确认问题已解决。官方维护者已在修复后于自托管实例上验证通过,且同时覆盖了启用和未启用认证两种场景。

参考来源

Mintplex-Labs/anything-llm #6278

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 22105

发表回复

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