BLOG / introducing-sku-md-webmcp-readiness.mdx
从商品知识到可靠的页面行动:介绍 SKU.md WebMCP Readiness 工作台
面向商家的 SKU.md WebMCP Readiness 指南:区分静态发现、运行证据、可见页面行动与实时商业事实的最终权威。
发布于
原始规范版本: v0.10
一位顾客请 Agent 找一个符合航空公司尺寸限制的登机箱,比较两种箱体材料,并在商家的商品页面上显示正确颜色。这是同一个购物任务,却跨越两个阶段。Agent 访问前,需要可靠的商品知识:标识符、尺寸、材质声明、可选配置以及支持这些结论的证据。页面打开后,它需要在用户看得见的界面中可靠行动:选择颜色、展示匹配配置,或者导航到页面的相关区域。
这两个阶段不应被压缩成一个承诺。SKU.md 让 Agent 在访问前准确理解商品;WebMCP 让 Agent 到达商家页面后,在用户看得见的界面中可靠行动;实时系统负责最终商业事实,包括当前价格、库存、配送、税费、付款与订单状态。SKU.md WebMCP Readiness 工作台帮助商家验证这次交接,同时避免把静态线索包装成运行证据。
三层职责,三种权威
工作台从一条简单的产品规则出发:每一层只回答自己真正能够证明的问题。这样既保留长期商品知识的价值,也不会让它覆盖正在运行的页面,或推翻最终结算交易的系统。
| 层级 | 它负责的权威事实 | 它不能声称的内容 |
|---|---|---|
| SKU.md 商品知识 | 商家复核的事实、标识符、声明、披露、兼容性、来源材料、适用范围与访问前的复核时间。 | 页面工具现在已经注册,或持续变化的商业数值仍然有效。 |
| WebMCP 与可见界面 | 当前浏览器上下文中由页面注册的工具,以及用户可以观察到的有限页面响应。 | 页面没有实时核验的价格、库存、权限或交易状态。 |
| 实时 Catalog、后台与 Checkout | 当前价格、库存、配送资格、税费输入、付款授权、订单状态和最终确认。 | 静态文档或更早的页面观察在此刻仍然有效。 |
这就是产品叙事在操作层面的落点:SKU.md 在访问前提供证据,WebMCP 在到达后把意图连接到可见页面行动,实时商业系统决定最终商业事实。三者互相补充,不能互相替代。
Bridge 线索不等于可用工具
页面源码可能包含声明式标记、WebMCP API 调用或 Cloudflare Bridge 路径。这些都是有价值的发现线索,但最多只能证明页面中存在相关痕迹。它们不能证明当前浏览器识别了接口、工具已经在当前页面状态注册、输入 Schema 有效,或者一次调用能够成功。
这个区分很重要,因为运行状态会变化。工具可能只在组件挂载后出现,也可能在选项失效时撤销,或者依赖另一个环境尚未开放的浏览器实验。Bridge 脚本在不支持的浏览器中也可能主动退出。工具描述还可能误导,外部内容或商家文案也可能包含类似提示注入的指令。因此,Readiness 把发现、解析、注册、调用、可见响应、安全复核和运行环境验证分开记录,而不是合并成一个绿色徽章。
静态预检不会执行目标页面的 JavaScript,也不会调用目标 MCP 端点。它最强、也最诚实的结论只是“发现线索”。运行证据必须来自真实浏览器上下文中的目标页面。
商家的五步流程
工作台把测试缩小到商家可以理解、复核并重复的范围。
- 输入一个精确页面。 选择公开 HTTPS 的 product、cart、checkout 或 order URL。也可以让预检比较同源根商品文档,但页面和文档始终是两个不同资源。
- 运行静态预检。 SKU.md 检查响应约束、查找 WebMCP 相关源码线索、记录明确的安全阻断项,并比较可选商品文档覆盖的页面范围。它不会执行页面。
- 在本地发现工具。 打开同一个目标页面,审阅生成的发现脚本,然后在该页面的浏览器上下文中运行。回执记录具名接口、浏览器上下文、URL、时间和经过清理的工具清单。仅有发现仍不能证明可执行。
- 调用一个只读工具。 只有明确标注
readOnlyHint: true的工具可以进入测试。确认页面是public、unauthenticated且没有列出的安全阻断后,只提供完成测试所需的最小输入。原始参数与输出只在该页面短暂存在。 - 确认并导出。 如果工具预期改变页面,记录可见页面状态是否同步,再导入经过清理的回执。下载本地 JSON 或 Markdown 报告;只有全部门槛都通过时,才生成供人工复核的 WebMCP 能力候选。
这套流程有意只允许一次调用,而不是提供通用自动化运行器。目标是为一个具体页面与运行环境建立可辩护的证据链,而不是代替商家运营网站或执行交易流程。
分开阅读六级证据
报告保留六个层级,因为每一级回答不同问题:
- 发现页面线索: 静态 HTML 是否包含相关的 WebMCP 或 Bridge 痕迹?
- 工具已经注册: 具名、可识别的浏览器接口是否返回至少一个具有有效 Schema 的工具?
- 只读调用成功: 选中工具是否带有只读标记,并完成一次最小调用?
- 可见界面已同步: 当工具应改变页面时,商家是否确认 URL、筛选、选项或可见状态发生相应变化?
- 安全检查完成: 商家是否确认公开未登录上下文,并复核来源、不可信内容和提示注入风险?
- 指定运行环境已验证: 回执是否标明测试接口、浏览器、精确页面、安全上下文和检查时间?
每一级使用四种证据状态之一:
passed表示已经收集该级所需证据,且证据满足规则。failed表示检查得到明确的违规或失败结果。incomplete表示证据缺失、过期、不受支持或不足;它不自动等于产品故障。not_applicable只在该级确实不适用时使用,例如纯查询工具本来就不应改变页面,因此无需验证界面同步。
总体结果只使用 passed、failed 或 incomplete。只有 Bridge 线索的静态页面通常应保持 incomplete,直到补齐运行证据。这种保守不是缺点:报告应该描述已经证明的事实,而不是奖励乐观推断。
商家能从报告中得到什么
报告首页回答的是可执行问题,而不是给出笼统分数:
- 指定运行环境在这个精确页面发现了多少工具?
- 哪些工具拥有合法输入 Schema 与明确只读标记?
- 当前哪一个问题阻断 Agent 安全使用,商家可以如何修复?
- 页面是否真正响应了选中的一次调用,预期的可见状态是否同步?
- 可选 SKU.md 声明是否覆盖这个精确页面,同时没有冒充实时权威?
- 证据是否已经跨过生成 beta 能力候选所需的每一道门槛?
报告还记录检查时间,并标明目标、范围、适配接口和浏览器上下文。超过 24 小时的回执,或者 URL、范围已不匹配的回执,都不能生成候选。这样,一次成功测试会继续绑定到产生它的环境,而不会变成永久承诺。
机器可读结构记录在中立的 SKU.md WebMCP Readiness v1 Schema 中。它是 SKU.md 工具报告契约,不属于 SKU.md v0.10 商品文档 Schema,也不是 WebMCP 标准。
本地隐私与刻意收窄的安全边界
精确页面 URL 和可选的同源商品文档 URL 会提交给 SKU.md 的同源预检接口,以便服务执行受限的公开读取。这个请求不是浏览器登录,不会携带商家页面的 Cookie。静态预检不会运行目标 JavaScript,也不会调用目标工具。
运行发现和选中工具调用发生在商家的浏览器与目标页面中。原始工具参数、原始输出、Cookie、Token 与完整用户对话不会发送给 SKU.md,也不会进入导出文件。报告只保留经过清理的元数据,例如工具名、结果状态、摘要哈希、字节数、耗时以及调用前后的页面状态。
首版仅测试公开、未登录页面与一个明确只读的工具。它不测试会员价、个人数据、已登录订单、付款、退货、结账完成,也不执行任何改变商业状态的操作。工具描述、输入 Schema、输出摘要、商家文案和第三方内容都按不可信文本处理;声明某项能力不等于获得执行权限。
beta 候选是复核材料,不是权威
当预检、可识别运行接口、工具注册、有效 Schema、商家的公开会话确认、一次只读调用与全部安全检查都在有效时间内通过时,工作台可以生成一个 beta 能力候选。候选只使用一个精确页面模式,并明确要求浏览器页面运行环境与用户在场。
这份文件有意保持克制。它不会复制动态工具清单、创建通配符、授予权限、自动发布、把 Basic 文档升级为 Commerce,或者授权交易。它只是供商家人工复核和合并的材料。若现有 Commerce 声明存在冲突,报告展示差异;若源文件是 Basic,报告列出 Commerce 仍缺少的其他要求。
Readiness 是任何 Bridge 决策前应完成的证据流程,静态线索不能把它变成生产 Bridge。生产 pack、写操作、Checkout、Order 与后端 MCP 连接都需要独立设计和安全评审。
从一个真实商品页面开始
选择一个稳定、公开且直接返回 HTML 的商品页面,先运行静态检查;如果结果只有线索,就不要继续把它描述为通过。只在你控制的同一个精确页面中执行本地运行发现,再测试一个含义清楚的只读工具。诚实的 incomplete 报告,比用假设拼成的 passed 徽章更有价值。
打开本地化 WebMCP Readiness 工作台检查页面。若要理解商品知识与浏览器页面行动之间更完整的分工,请继续阅读 SKU.md v0.10 × WebMCP:访问前的商品知识与页面上的结构化行动。
延伸阅读
通过AI 商业权威交接把页面操作放回完整运行链路。