把 WebMCP 工具按页面作用域切开
来源:dev.to — 2026-11-13
📋 概述
作者在 Trip Workbench 接入 WebMCP 后发现,如果在启动时注册所有操作,即使只打开一个编辑器也会暴露两个不相关领域:活动列表页应当发现零个工具,打开活动草稿才暴露四个,切到行程草稿则换成五个行程工具。于是他把注册绑在 React 编辑器的生命周期上,只有拿到草稿标识且状态为 draft 时才注册,并用 AbortController 在卸载时注销。文章同时指出这带来新的设计问题:agent 如何进入一个必须先打开页面才有工具的工作流。
🔑 核心要点
- 活动工具接受 eventId,行程工具接受 draftId,两个域各有自己的协调器、服务、表和策略版本。
- 注册发生在拿到草稿身份之后,而不是组件挂载时。
- 用 AbortController 的 signal 统一在卸载时撤销注册,避免残留工具。
- 页面作用域让上下文更清晰,但要求 agent 先走到正确页面才能看见工具。
💡 金句
“Page-scoped tools make the current context clearer.”
译:按页面划定工具范围,能让当前上下文更清楚。
👍 0
👎 0
← 返回 dev.to 首页