Skip to content

[Bug] agent-hook-plugin 的 MCP 代理未注册 rule_search 工具,openviking-rule-search 技能在 ZCode 宿主无法检索规则 #7109

Closed

Description

@wgl2zj

环境

  • 服务端:v0.5.3(官方镜像 openviking-cn-beijing.cr.volces.com/volcengine/openviking:latest)
  • 客户端:ZCode 集成 examples/agent-hook-plugin @ main(plugin version 0.5.31,shared lib 与上游一致)
  • 宿主:ZCode 桌面版 3.17.2(Windows)

现象

ZCode 会话中注册的 mcp__openviking__* 工具共 26 个(find / search / read / write / remember / privacy_* 等),没有任何 rule_search 类工具。核对 examples/memory-plugin-shared/lib/mcp-proxy-core.mjs 与 mcp-proxy-config.mjs,"rule" 一词零出现——MCP 代理未转发规则检索。

会话级 model-io 轨迹实测确认:技能清单里可见 openviking-rule-search 技能,但会话全程 0 次规则检索调用;即使模型按技能说明书尝试调用,也无工具可注册。

影响

#7005 为各宿主集成分发了 openviking-rule-search 技能说明书(说明书要求"use the exact registered name"调用宿主注册的规则检索工具)。在 ZCode 宿主上该工具不存在,技能按其边界条款只能报告"检查不可用",Rules 能力在 ZCode 集成端实际不可用。

服务端侧正常

  • POST /api/v1/rules/search 带 task_context 实测 200,命中 active 规则、probability 正常;
  • openapi schema 含 RuleSearchRequest。

期望

mcp-proxy 增加对 /api/v1/rules/search 的工具转发(命名如 rule_search / openviking_rule_search),与技能说明书预期的注册名对齐,使 Rules 在 ZCode 等 agent-hook 宿主真正可用。

临时绕过(供同处境用户)

用 openviking find / search 工具将 target_uri 指向 viking://user/<id>/memories/rules 目录做语义检索,再用 read 读规则正文。实测命中良好(视觉设计类任务可命中对应规则,80% 上下)。

Activity

  1. wgl2zj commented on Nov 6, 2026

    @wgl2zj
    Author

    补充第二轮回测证据(同环境:服务端 v0.5.3 / 插件 0.5.31 / ZCode 3.17.2):

    即使走"技能兜底"路径,ZCode 宿主上也无法触发规则检索。

    • ZCode 注入给模型的本地技能清单只含「技能名 + SKILL.md 路径」,不携带 description。model-io 轨迹实证:清单条目形如 - openviking-rule-search (file: C:\...\SKILL.md),整段会话中新旧 description 文本均零出现;
    • 模型只能按技能名挑选:同会话中 frontend-design 按名命中并被加载(215 处引用),rule-search 类技能名对普通任务无天然关联,全程未被调用,规则检索 0 次;
    • 对照组:MCP 工具定义(name + description)每轮对模型可见(轨迹中 mcp__plugin_* 系列工具描述齐全)。

    因此在 ZCode 上,把 rule_search 注册为 MCP 工具是让 Rules 生效的唯一可靠通道——工具描述会随工具清单每轮可见、可直接调用;技能说明书只能作为工具存在之后的使用指引,无法承担触发职责。 Issue 主体所述期望不变:mcp-proxy 增加对 /api/v1/rules/search 的工具转发。

  2. qin-ctx commented on Nov 6, 2026

    @qin-ctx
    Collaborator

    感谢详细反馈,也感谢补充 ZCode 的回测情况。

    核对当前实现后,MCP 代理会把服务端的 tools/list 结果返回给宿主,并转发 tools/call,不需要在代理中逐个注册工具。#7005 已同时加入服务端 MCP rule_search 和各宿主的技能说明,并非只分发了技能文件;当前 main 的工具列表已经包含它。报告中的 v0.5.3 tag 早于这项提交,REST 规则接口可用也不代表该版本的 MCP 接口已经提供同一工具。

    因此,这项工具接入需求已由 #7005 覆盖,不需要再给代理增加一套 REST 转发注册,本 issue 按已完成关闭。ZCode 是否主动加载技能与服务端是否提供工具是两个不同问题;这里的结论仅针对工具缺失及代理注册的报告。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-pluginsAgent harness and plugin integrations

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions