总览:https://github.com/agentic-ai-java/argi-extensions/issues/30 ## 代码依据 https://github.com/agentic-ai-java/argi-extensions/blob/495414b76a37aca4d7c1022d973a8e5b9a7e92e6/mcp/argi-mcp-router/src/main/java/io/github/agentic/ai/mcp/router/core/vectorstore/SimpleMcpServerVectorStore.java#L96 ## 问题与目标 `getServer` 和 `removeServer` 使用服务名进行向量相似搜索,取 Top-1 后才比较 metadata.serviceName。即使目标记录存在,只要另一条记录排名更高,就返回未找到或删除失败。这是静态调用路径分析,尚未运行复现测试。 ## 范围与方案 为服务标识建立确定性查询/删除路径,语义搜索只承担候选检索。比较按 serviceName 的精确索引、稳定文档 ID 或后端过滤的可行性,不预设必须替换整个向量后端。明确重复添加、更新、索引一致性与已有记录重建策略。 ## 验收 - [ ] 先添加复现:目标存在但相似搜索将其他服务排第一时,精确 get/remove 仍正确。 - [ ] 不存在的服务不会误删其他服务;覆盖重复添加、更新及并发读写。 - [ ] 服务查询与删除不依赖 embedding 排名;语义 search 功能保持可用。 - [ ] 明确无 EmbeddingModel 时精确目录的支持策略和索引初始化/重建行为。 - [ ] 保持公共接口优先;确需改接口或数据格式时逐项论证并提供迁移说明。 关联扩展 #20 的工具检索,但本任务只解决服务身份的确定性,不实现权限检索。 ## 变更约束 本单来自静态代码审查,尚未运行复现或性能测试。实施先补充针对性验证;破坏性变更需比较更小/兼容方案,记录收益、消费者影响、迁移成本和版本策略。允许保留有充分理由的现有设计。
Activity