Refactor: Tool registry on server

核心报错为 “Refactor: Tool registry on server”。该 Issue 实际是 llama.cpp 中 llama-server 工具注册表的重构设计讨论,并非用户侧运行报错;如果按报错关键词排查,优先确认你使用的 llama.cpp 构建是否已包含服务端内置工具相关改动

快速结论:核心报错为 “Refactor: Tool registry on server”。该 Issue 实际是 llama.cpp 中 llama-server 工具注册表的重构设计讨论,并非用户侧运行报错;如果按报错关键词排查,优先确认你使用的 llama.cpp 构建是否已包含服务端内置工具相关改动。

适用环境:Issue 讨论涉及 llama.cpp 的 llama-server 与 llama-cli、WebUI、MCP(HTTP/stdio),以及 OAI 兼容工具 schema;Issue 未提供具体操作系统、Python、CUDA、显卡或依赖版本信息。

最快修复方案:暂无确认的一步修复方案。该 Issue 以设计讨论和后续 PR 规划为主,没有给出可验证的用户侧修复命令。

注意事项:该讨论未发布正式修复版本或明确升级指引;关闭原因是标记 stale 后 14 天无活动,评论中也有人质疑其在路线图中的状态,因此不能将“Issue 已关闭”等同于“对应功能已稳定可用”。

问题场景

用户可能在运行 llama.cpp 的 llama-server,或在 WebUI 中调用内置工具、MCP 工具时遇到工具注册、工具列表或工具调用相关问题,并在检索时命中该 Issue。讨论内容显示,当时 llama-server 尚不了解工具或 MCP,相关逻辑主要在 WebUI 客户端侧实现,这也导致 llama-cli 若要支持工具和 MCP 会出现重复代码。

规划中的方向是引入服务端工具注册表:内置工具以 OAI 兼容 schema 提供,MCP 工具则记录服务器地址并由客户端提取工具列表,同时支持 HTTP/HTTPS 与 stdio 协议。但这属于重构计划,不是现成的排错步骤。

报错原文

Refactor: Tool registry on server

原因分析

可能原因一:你使用的 llama.cpp 版本尚未包含服务端工具注册表相关改动,工具和 MCP 逻辑仍主要位于 WebUI 客户端侧。

可能原因二:WebUI 与 llama-server 的工具接口尚未对齐。讨论中提到后续可能把 WebUI 的 MCP 服务器选择器改为工具选择器,并调整 /cors-proxy 以同时支持 HTTP 和 stdio 隧道;在相关改动落地前,接口不一致可能导致工具列表或调用异常。

可能原因三:若涉及 MCP,客户端需要自行从 MCP 服务器提取工具列表,而 Issue 中说明 C++ MCP 客户端初期计划先放在 CLI,服务端与 WebUI 的复用尚未完成。

环境排查

  • 确认 llama.cpp 的构建版本或提交是否包含服务端内置工具相关改动。
  • 确认使用的是 llama-server 还是 llama-cli,以及对应的 WebUI 版本是否匹配。
  • 如涉及 MCP,确认 MCP 端点使用的是 http://、https:// 还是 stdio://,并检查客户端是否具备从该服务器提取工具列表的能力。
  • 检查 /tools 与 /cors-proxy 相关接口行为是否与当前客户端预期一致。

解决步骤

  1. 先确认问题发生在 llama-server、WebUI 还是 llama-cli 侧,避免把设计讨论中的预期行为当作现成功能。
  2. 检查当前 llama.cpp 版本是否包含讨论中所述的“服务端内置工具”第一步改动;若没有,可优先尝试更新到包含该改动的构建。
  3. 如仅使用内置工具,优先排查 OAI 兼容工具 schema 是否被正确加载;如使用 MCP,确认客户端能否从 MCP 服务器获取工具列表。
  4. 若 WebUI 中仍以 MCP 服务器选择器方式配置工具,注意后续工具选择器与 /cors-proxy 改动可能带来接口变化,需保持 WebUI 与 server 同步更新。
  5. 若问题仍未解决,建议在原 Issue 或相关 PR 中反馈具体的 server 日志、请求路径和工具配置,因为该讨论本身未提供用户侧修复步骤。

验证方法

确认 GET /tools 返回的工具列表符合预期(内置工具与 MCP 工具能被区分),并通过客户端实际触发一次工具调用,检查 POST /tools 是否被正确代理到目标 MCP 服务器或 stdio。若仍无法调用,记录返回内容与 server 日志,再判断是否为版本或接口不匹配。

参考来源

ggml-org/llama.cpp #20673

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 30164

发表回复

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