[BUG]: Azure Foundry CLI options have changed

此报错通常发生在 AnythingLLM 桌面版通过 CLI 调用 Azure Foundry 本地服务时,由于 Foundry 0.10.2 及以上版本调整了命令行参数,导致旧的命令格式失效。优先排查 Foundry 版本并尝试执行 foundry --help 查看当前可用的命令结构。

快速结论:此报错通常发生在 AnythingLLM 桌面版通过 CLI 调用 Azure Foundry 本地服务时,由于 Foundry 0.10.2 及以上版本调整了命令行参数,导致旧的命令格式失效。优先排查 Foundry 版本并尝试执行 foundry --help 查看当前可用的命令结构。

适用环境:AnythingLLM 桌面应用;Azure Foundry Local 作为 LLM Provider;Foundry CLI 版本 0.10.2 或更高版本(Issue 确认 0.10.2 已变更 CLI 选项)。

最快修复方案:暂无确认的一步修复方案。Issue 中已链接 #6119 作为修复 PR,若使用最新版 AnythingLLM,建议直接升级到包含该 PR 的版本;若无法升级,可优先尝试手动用新 CLI 语法启动 Foundry 服务后再连接。

注意事项:旧版 AnythingLLM 无法感知 Foundry 新版 CLI 变化,单纯降级 Foundry 可能带来其他兼容问题;手动启动服务仅能绕开 AnythingLLM 的服务检测逻辑,后续操作可能仍受影响。

问题场景

用户在 AnythingLLM 桌面版中将 LLM Provider 配置为 Azure Foundry Local,应用启动后尝试自动检测 Foundry 服务的运行状态时,后台执行 foundry service status 命令失败,导致无法连接到本地推理服务。

报错原文

{"level":"error","message":"Error getting service status: Error: Command failed: foundry service status\n● error: Unrecognized command or argument 'service'.\r\nHint: Run 'foundry --help' to see usage.\r\n\n    at genericNodeError (node:internal/errors:984:15)\n    at wrappedFn (node:internal/errors:538:14)\n    at ChildProcess.exithandler (node:child_process:422:12)\n    at ChildProcess.emit (node:events:519:28)\n    at maybeClose (node:internal/child_process:1105:16)\n    at ChildProcess._handle.onexit

原因分析

Foundry 0.10.2 版本变更了 CLI 的子命令结构,原 foundry service status 写法已不被识别。AnythingLLM 内部仍按旧版命令格式调用 Foundry CLI,导致子进程执行失败并抛出 “Unrecognized command or argument ‘service'” 错误。可能原因还包括:

  • Foundry CLI 升级后未同步更改 AnythingLLM 中的命令拼接逻辑。
  • 系统 PATH 中同时存在多个 Foundry 版本,实际调用的并非预期版本。

环境排查

  • 确认 Foundry CLI 版本:运行 foundry --versionfoundry --help 查看当前实际版本与可用子命令。
  • 确认 AnythingLLM 桌面版版本:检查是否已包含修复 PR #6119(建议更新至最新版)。
  • 检查系统 PATH:确保 foundry 命令指向的路径与预期安装目录一致。
  • 确认操作系统类型(Windows / macOS / Linux),不同平台的 CLI 行为可能有差异。

解决步骤

  1. 运行 foundry --help 查看当前版本支持的子命令,确认服务状态查询的新语法(例如可能是 foundry statusfoundry local status)。
  2. 将 AnythingLLM 桌面版升级至包含修复 PR #6119 的最新版本,该 PR 已针对 Foundry 新版 CLI 调整了命令调用方式。
  3. 若无法立即升级,可先手动启动 Foundry 服务(使用新版命令行语法),再启动 AnythingLLM,看是否能绕过自动检测步骤。
  4. 如升级后仍异常,检查 AnythingLLM 设置中的 Azure Foundry 配置路径,确保指向正确的可执行文件。
  5. 若问题依旧,尝试清理 AnythingLLM 缓存或配置文件后重新配置 Provider。

验证方法

升级或调整后,重新启动 AnythingLLM 并观察日志中是否还有 “Unrecognized command or argument ‘service'” 错误;进入设置页面确认 Azure Foundry Local 连接状态显示为正常,并能成功发起推理请求。

参考来源

Mintplex-Labs/anything-llm #6072

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 18297

发表回复

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