#3077·CowAgent

改进 MCP 工具检索诊断和回退可观测性

作者: zhongjunqi7657创建于 2026年8月26日更新于 2026年9月12日
标签enhancement

###自查

  • 我搜索了现有问题(包括已关闭)——没有重复。

有什么问题吗?

目前,MCP工具检索是安全的,但大多不透明.

当“ mcp tool retrival uplied”启用,且MCP工具的数量超过所配置的阈值时,“AgentStreamExector. select tools for injection ()”使用“built retrival query ()”和“select mcp tools ()”来选择MCP工具的子集。

目前的行为在几个方面是好的: 内建工具总是被注入. MCP工具在检索被禁用,低于阈值,或者无法嵌入/索引数据时会回落到全注入. 所选的 MCP 工具集只在运行内生长,所以以前使用的工具计划不会消失.

然而,检索决定本身是无法观察到的。 `select mcp tools ()' 目前只返回一个 “ set[str] ” 或“ noone ” , 所以很难知道: 哪些MCP工具被排序, 哪些工具在顶端 K 组合中被选中, 是否恢复到完全注射, 为什么会发生倒置, 例如缺少查询向量、 空索引、 尺寸不匹配 或无效的 “ top k” 。

这使得MCP的路由更难于调试,也更难在没有读取日志或踏入代码的情况下进行评估.

你想怎样?

我想贡献一个小的,有重点的PR,改善MCP检索可观察性而不改变现有的工具选择行为. 我提议的范围是:

  1. 保持现有的`选择 mcp tools ()' 公共行为不变。
  2. 添加轻量级内部检索决定元数据,如所选工具名,候选计数,上-k,分数,倒计时等.
  3. 从代理流中排除出一个后向兼容的 " 工具-检索 " 事件,以便客户端或日志能够检查检索决定。
  4. 在 " tests/test mcp tool retrival.py " 中扩大现有的确定性测试,以涵盖排名元数据和倒置原因。
  5. 避免第一次公关中的UI变化和新的依赖关系。

目标是让MCP工具的路由更容易调试和评价,同时保留当前故障开口行为.

这种以可观察性为重点的贡献是否符合项目路线图? 如果是, 您是否为检索元数据制定了首选事件方案或命名公约 ?

捐款

  • 我会有兴趣 帮助执行这一点.

内容来源: zhayujie/CowAgent