希望 Octop 支持数百工具的单入口连接,同时避免每轮向模型注入全部工具定义。建议实现如下闭环: 1. OAuth 后在宿主侧获取并管理完整授权目录;若存在分页,遍历目录游标。目录完整保存在宿主,不代表所有定义都进入模型上下文。 2. 为模型提供宿主自定义搜索入口,在已授权目录中按用户意图检索候选工具,可限定连接器/company 来源。 3. 仅将命中的工具名称、描述、输入 Schema 及执行所需元数据提供给当前轮次;候选不足时允许继续搜索。 4. 模型生成参数后,宿主使用原有 MCP tools/call 调用原始工具名。调用前校验参数、连接器归属和当前授权,保持现有用户确认机制。 5. 结果返回模型,必要时继续发现和调用;招聘分页严格复用真实响应游标。 ### 实现建议(待社区结合代码评估) | 优先级 | 建议 | 验收重点 | |---|---|---| | P0 | 增加目录同步诊断:原始数量、缓存版本、过滤原因、会话注册数量 | 可定位“已连接但少工具”发生在哪层 | | P0 | 授权更新、账号切换、重连后使旧目录失效并刷新执行绑定 | 不复用其它账号权限,不出现仅名称可见却不能执行 | | P1 | 宿主搜索层,例如 search_mcp_tools(query, connector, limit) | 搜索覆盖完整已授权目录;此名称为建议的宿主接口,不是要求服务端新增的 MCP 标准方法 | | P1 | 候选 Schema 装载及本轮原生工具绑定;若模型不支持动态注册,可评估宿主执行包装层 | 包装层仍验证 Schema,并映射原工具 tools/call;不扩大授权 | | P1 | 命名空间保存连接器 ID 与原始工具名,避免同名工具串路由 | company 限定下不偷偷调用 ipr/risk 等其它连接 | | P1 | 展示“搜索→加载定义→执行”的脱敏事件 | 用户可理解和验收按需加载,错误能区分鉴权、目录、参数和上游问题 | | P2 | 目录变更通知(服务支持时)、缓存刷新、候选排序和上下文预算优化 | 数量增长、工具移除、权限收缩后仍一致 | 服务端保持现有授权、路由和计费链路;此建议不涉及新增消费预扣、结算或计费去重改造。不要求支持全部工具的模型一次接收全部 Schema。具体数量和性能需实测,不能仅依据目录 186 项就宣布按需加载成功。 ### 验收计划 | 案例 | 方法 | 通过条件 | |---|---|---| | 目录同步 | 对比同一次授权的服务端目录、宿主缓存和会话绑定 | 工具集合一致,任何过滤可解释;186 为本次产品目标而非永久硬编码 | | 历史专利 | 新会话限定 company,自然语言发起历史专利查询 | 检索并加载正确定义,真实调用成功,不用当前专利替代 | | 标准信息 | 同条件查询标准信息 | company 路由成功,不借其它 server | | 招聘分页 | 第一页及响应 next_cursor 对应第二页 | 保持查询条件,复用真实游标;无数据时记录并更换有分页数据的测试样本 | | 按需证据 | 检查模型输入和宿主事件 | 有候选检索与 Schema 装载记录;未预先注入全量定义 | | 新会话/重连 | 创建干净会话,刷新连接再执行 | 不依赖旧会话目录,执行绑定有效 | | 权限隔离 | 撤销/失效测试授权或更换非试点测试账号 | 不使用旧目录绕过权限,不串用凭据 | 每项留存版本、时间、脱敏输入、原始返回摘要及服务端关联记录。空结果可以证明路由到达,但不能替代招聘第二页验收。 ### 替代方案与相关问题 全量注入 Schema 会增加上下文占用;固定白名单可能隐藏已授权能力;多个连接器可作为兼容方式,但不满足单入口发现目标。分页探测已有 #2298 / #2299,本提案不替代该修复,也不预设当前运行时完全没有按需能力,请维护者指出可复用机制。当前仅为测试账号试点,不涉及全量开启。 关联目录复验报告:#2348。本增强建议与该报告的根因定位分别推进。
Activity