2026-08-01T18:28:57.072Z
AI代理可观察性:证明发现融合
六个案例的审计显示了如何在通知,不完整的页面化和同名方案漂移之后检测到过时的MCP工具登记.
使用MCP工具的AI代理不健康,仅仅是因为其进程活跃,服务器连接开放,或者它收到了工具列表更改通知. 实际检查更严格:在相关变化后,客户端是否完成了新的 tools/list 穿越, 作为一个融合测试. 记录谈判的MCP协议版本和 tools.listChanged 功能,最后的 notifications/tools/list changed 时间,发现开始和完成时间,每个导向器,以及发现和安装的注册表的正文摘录. 返回 converged , stale , incomplete 或 unverifiable . 不要把缺失的证据变成绿色结果. 定义协议边界的融合 在正常运行之前, MCP生命周期规范需要初始化. 客户端和服务器谈判协议版本和功能,双方必须尊重谈判. 成功初始化证明,一个会议在已达成的合同下开始. 这并不能证明后来的工具更改已经达到客户端. 采用MCP工具规范提供以下零件: 支持工具的服务器声明 tools 功能; listChanged 表示是否会发出工具列表变更通知; 客户通过 tools/list 发现定义; 发现可以通过 nextCursor 进行页面化; 工具定义不仅包括其名称,特别是 inputSchema 和可选的 outputSchema ,注释和执行元数据. 这就造成了三个独立的事件, 1. 变换信号: 客户收到 notifications/tools/list changed . 2. 发现: 它启动了新的 tools/list 穿越,并达到 nextCursor 缺失或无效的响应. 3. Registry install: 客户端使用的定义与完成的发现快照相匹配. 通知是提醒要更新,而不是收到完整更新的收据. 一个第一页是活动,而不是一个完整的注册表. 当需要的参数,输出方案或执行属性改变时,匹配名称不是匹配合约. 保持证据小但决定性 有效的健康记录不需要提示,工具论证,凭证或工具结果. 它需要足够的安全的元数据来回答客户端和服务器是否仍然同意: 领域 它所确定的 没有确立的 protocolVersion 在会议上谈判的MCP版本 后来的服务器版本仍然兼容 tools.listChanged 关于变更通知是否进行了谈判 任何通知都已交付或处理 notificationAt 一个清爽的时间到了. 发现开始了. discoveryStartedAt 并且 discoveryCompletedAt 在信号之后,有限的更新. 每个页面都得到了 线索链 浏览结束了没有空白 客户端安装了结果 发现的注册表消化 完整定义集的身份 一个工具的呼叫将成功 客户端注册表消化 客户目前向代理人所暴露的信息的身份 代理人会做出正确的选择. 从稳定的投影中构建消化: name , title , description , inputSchema , outputSchema , annotations 和 execution . 按名称排序工具,并在哈希之前将嵌套的JSON进行加нони化. 如果它们不影响选择或执行,可排除装饰图标,但投影本身必须是版本的. 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签: 标签:解释了为什么可重复的哈希需要不变的 JSON 序列化和递归属性排序. 在本实验中使用的紧递归排序器适合固定的普通JSON值;它并非被呈现为完整的JCS实现. 产品代码应使用经过审查的加нони化库,特别是当数字边缘案例或签名重要时. 不要在注册表快照中存储原始秘密. 工具方案应描述参数形状,而不是凭证值. 如果描述包含租户数据或内部路径,在收集之前编辑它并记录哪种投影版本产生了消化. 复制6例登记审计 保存的装置采用了六种合成观测: 一个完整的两页基线; 一个工具的移除,然后是完整的更新; 一个变化通知,随后没有新的发现; 第一个页,剩余的 nextCursor ; 同样的工具名称,需要输入方案已改变; 没有限制更新证据的服务器没有广告 listChanged . 核心决定命令是重要的: 使用 Node.js 运行该装置: 完全是回复的: 反例比两种绿色案例更有用. 虽然 notification without refresh 的发现和客户端消化相同,但它的发现在变化信号之前完成. 消化与旧镜头的匹配仍然是陈旧的. unfinished pagination 也为观察到的页面提供了相匹配的消化,但 nextCursor 仍然存在. 一个可信的第一页相匹配是不完整的证据. 同名案例改变了 read ticket 从仅要求 ticketId 到要求 projectId 和 ticketId . 一个仅仅是名字的库存将会保持不变的注册表. 标准定义从 c42521a2412558ca 变化到 c3837b93f14b688f ,因此客户端的旧定义被归类为过时. 把判决变成一个行动决定. 使用 converged 窄. 这意味着观察到的客户端注册表与相关变化信号后完成的完全穿越的发现相匹配. 它不能证明接下来调用的运输可用性,有效的授权,正确的工具行为,成功的外部效应或预期任务结果. 处理其他状态,而无需积极的自动化: 判决 证据 下一个安全的举动 stale 更新时间比信号更老,或注册表消化不同 停止选择所影响的定义;要求一次限制更新;在重新尝试后续工作之前检查 incomplete 发现启动,但缺失了传导器穿越或完成的证据. 如果客户端支持预期的缓冲器,否则重新启动一次发现 unverifiable 没有有限的发现证据 报告信号不可用;根据运行时间政策重新连接或安排控制更新 converged 变化后的完整发现和精确的消化匹配 继续,同时保持单独的呼叫,效果和结果检查 如果服务器没有广告 listChanged ,则预计会保持沉默,无法确定新鲜性. 定义一个有限的替代方案:在重新连接时,在高效运行之前,或在符合服务器的成本和速度限制的测量间隔上更新. 记录该政策,所以没有通知不会被误认为没有变化. 另外,分开注册健康与任务健康. 一个工具可以在其凭证过期期间存在并正确描述. 它可以返回 isError: false ,而承诺的门票,文件或部署没有. 经过任何批准的恢复后,检查外部效果或任务结果,而不是宣布成功,因为发现或命令完成. 保护产品和权限界限 这项检查属于AI代理可观性,因为工具可用性和许可漂移可以阻止有效的进展,而代理保持活跃. 这是一个健康信号,而不是重新启动运行时间,转换凭证,调用工具或重复支出的授权. 后续干预应保持有限,可见,并且必须得到人体批准. Sidewisp的目的方向是,在现有药物运行时间周围的健康层:显示证据,新鲜度,严重性,不确定性,以及最安全的下一步行动. 在本文中所述的MCP融合记录是一个运行模式和实验,而不是Sidewisp目前收集的说法. Sidewisp 目前处于私密预览阶段。 公共网站和文章系统是活跃的. 产品代理健康收集,MCP运行时间适配器,自动恢复, cron管理和代币成本分析通常不出货. 如果您想帮助塑造协议谈判,登记器融合,工具可用性和验证结果等证据合同,