15:52:44 RRSAgent has joined #webmachinelearning 15:52:48 logging to https://www.w3.org/2026/03/05-webmachinelearning-irc 15:52:48 RRSAgent, make logs Public 15:52:49 please title this meeting ("meeting: ..."), anssik 15:52:50 Meeting: WebML CG Teleconference – 5 March 2026 15:52:52 Chair: Anssi 15:52:56 Agenda: https://github.com/webmachinelearning/meetings/blob/main/telcons/2026-03-05-cg-agenda.md 15:53:01 Scribe: Anssi 15:53:05 ScribeNick: anssik 15:53:13 Present+ Anssi_Kostiainen 15:53:22 RRSAgent, draft minutes 15:53:23 I have made the request to generate https://www.w3.org/2026/03/05-webmachinelearning-minutes.html anssik 15:54:02 gb, this is webmachinelearning/webmcp 15:54:02 anssik, OK. 15:59:37 zolkis has joined #webmachinelearning 16:00:41 BenGreenstein has joined #webmachinelearning 16:00:43 Anssi: to start, we will welcome our latest new participants: 16:00:48 ... Omri Belavad and Guilherme Gervasio joining as an individual contributor 16:00:52 ... welcome all to the WebML Community Group! 16:00:54 kush has joined #webmachinelearning 16:00:56 ... as a reminder, we'll use IRC-based queue management in this meeting: 16:00:58 present+ 16:01:00 -> https://www.w3.org/guide/meetings/zakim.html#speakerqueue 16:01:09 Anssi: to suggest agenda topics, use Agenda+ label -- we may discuss newly Agenda+ labeled issues #51 and #130 today too 16:01:18 https://github.com/webmachinelearning/webmcp/issues/130 -> Issue 130 Tool unregistration design (by domfarolino) [Agenda+] 16:01:18 https://github.com/webmachinelearning/webmcp/issues/51 -> Issue 51 Define the API for in-page Agents to use a site's declared tools (by khushalsagar) [Agenda+] 16:01:24 -> Agenda+ https://github.com/webmachinelearning/webmcp/labels/Agenda+ 16:01:30 Topic: WebMCP 16:01:36 Subtopic: Announcement: Awesome WebMCP 16:01:40 Anssi: we launched a new community-curated resource to recognize applicable contributions from the wider WebMCP ecosystem: 16:01:45 -> Awesome WebMCP https://github.com/webmachinelearning/awesome-webmcp 16:01:50 Victor has joined #webmachinelearning 16:02:18 brwalder has joined #webmachinelearning 16:02:22 Subtopic: Tool infra for registerTool/unregisterTool 16:02:27 Anssi: PR #113 16:02:28 https://github.com/webmachinelearning/webmcp/pull/113 -> MERGED Pull Request 113 Add basic tool infra and complete `registerTool()` (by domfarolino) [Agenda+] 16:02:45 qcomp has joined #webmachinelearning 16:02:45 ... we addressed all the review comments and landed the PR ahead the meeting, great work 16:02:45 AlexN has joined #webmachinelearning 16:02:45 ... incremental improvements will arrive in subsequent PRs 16:02:49 ... to that end, I'll propose we move on to the next topic 16:02:53 ... any comments? 16:02:58 Mark_Foltz has joined #webmachinelearning 16:03:05 Ehsan has joined #webmachinelearning 16:03:09 Dominic: this was landed and other work well under way 16:03:10 q? 16:03:29 q? 16:03:40 Subtopic: Declarative explainer 16:03:44 Anssi: PR #76 16:03:45 https://github.com/webmachinelearning/webmcp/pull/76 -> Pull Request 76 Declarative API Explainer (by domfarolino) [Agenda+] 16:03:50 ... great review comments, thank you all 16:04:00 ... does the group have specific proposals to discuss today? 16:04:10 domfarolino has joined #webmachinelearning 16:04:15 ... are there any objection to approve and merge the baseline explainer with a condition that all open review comments have dedicated issue to ensure we follow them through? 16:04:23 q+ 16:04:29 ack domfarolino 16:04:39 johannhof has joined #webmachinelearning 16:05:06 Dominic: it seems like all things are resolved exept the last few days worth of comment, JSON-LD discussion 16:05:56 ... JSON-LD cross document ergonomics is an open issue for discussion 16:06:03 -> https://github.com/webmachinelearning/webmcp/pull/76/changes/b449df1c4214ab376804a31d4c23d135f4b8799b#r2886459866 16:06:04 https://github.com/webmachinelearning/webmcp/pull/76 -> Pull Request 76 Declarative API Explainer (by domfarolino) [Agenda+] 16:06:14 q? 16:06:42 present+ Vasilii_Trofimchuk 16:06:48 Alex: I did a prototype and found out these is probably a better primitive 16:06:49 q? 16:06:51 q+ 16:06:57 ack brwalder 16:07:30 Brandon: one thought I had, scraping the DOM for JSON-LD and using that as output carries with it an implicit assumption the agent is doing DOM scraping in addition to WebMCP 16:07:38 q+ 16:07:58 ... true for in-browser agents possibly, but for other agents don't want to do DOM scraping to get their output, want to use WebMCP only 16:08:24 ... having a native WebMCP way to get that state on a new page seems more friendly to agents who don't want to scrape the DOM 16:08:31 Alex: extension agents? 16:08:38 Brandon: also in-page agents 16:09:10 Dominic: that makes sense, I think the trick is for non-built in browser agents, they will have some hack that tells them the context of the DOM is an answer to the previous tool call 16:09:22 ... in JS the entire context gets reset after navigation 16:09:43 ... JSON-LD only works for built-in agents, and even for that it is a bit hacky 16:09:50 ... will file an issue for this 16:09:50 q? 16:09:55 q- 16:10:00 q? 16:10:48 Anssi: issue #126 is a spin-off from PR #76, interest to discuss this issue today? 16:10:49 https://github.com/webmachinelearning/webmcp/pull/76 -> Pull Request 76 Declarative API Explainer (by domfarolino) [Agenda+] 16:10:49 https://github.com/webmachinelearning/webmcp/issues/126 -> Issue 126 Where to fire `toolactivated` and `toolcanceled` events? (by domfarolino) [declarative] 16:11:12 Dominic: do we want to fire these on form elements or on the ModelContext object or Window 16:11:16 chrishtr has joined #webmachinelearning 16:11:33 ... to support these events on imperative tools, we cannot get away from this 16:11:33 q+ 16:12:05 ack brwalder 16:12:30 Brandon: Dominic good points on your the most recent comment, if imperative tools need to do anything they can just use the execute function 16:12:49 ... putting the event on ModelContext object seems like the best design 16:12:55 q? 16:14:12 s/"live"/"are fired" 16:14:39 +1 16:14:39 RESOLUTION: The toolactivated and toolcanceled events are fired on the ModelContext object. (issue #126) 16:14:39 https://github.com/webmachinelearning/webmcp/issues/126 -> Issue 126 Where to fire `toolactivated` and `toolcanceled` events? (by domfarolino) [declarative] 16:14:49 q? 16:15:10 Subtopic: Agent allowlist use cases and requirements 16:15:13 Anssi: issue #116 16:15:14 https://github.com/webmachinelearning/webmcp/issues/116 -> Issue 116 Agent allowlist use cases and requirements (by anssiko) [Agenda+] 16:15:24 ... I think the M:N problem illustrated by Yoav's informs this feature design: 16:15:28 -> https://github.com/webmachinelearning/webmcp/issues/51#issuecomment-3973968414 16:15:29 https://github.com/webmachinelearning/webmcp/issues/51 -> Issue 51 Define the API for in-page Agents to use a site's declared tools (by khushalsagar) [Agenda+] 16:15:54 Anssi: also Alex shared related learnings from the crypto space, see "Pointer Locks for Agents & Agent whitelisting" 16:15:59 -> https://github.com/webmachinelearning/webmcp/issues/43#issuecomment-3478492067 16:16:00 https://github.com/webmachinelearning/webmcp/issues/43 -> CLOSED Issue 43 Clarifying the scope of the proposal (by 43081j) 16:16:27 Anssi: for WebMCP too, we could have a future where we have in-page agents, iframe agents, extension-based agents and in-browser agents all living together on the web platform and talking WebMCP 16:16:47 ... and all these agents would in principle know how to operate the tools provided by any website 16:16:51 ... based on past learnings, it seems the agent allowlist mechanism should be considered together with an agent negotiation/lock mechanism #118 16:16:52 https://github.com/webmachinelearning/webmcp/issues/118 -> Issue 118 Agent negotiation (by yoavweiss) [backlog] 16:16:55 q+ 16:16:56 ... I'll invite participants to share concrete use cases in this issue 16:17:26 ack? 16:17:31 ack domfarolino 16:17:37 q+ 16:18:01 Dominic: if we don't introduce an API that allows to enumerate and list, then monkey-patching will likey happen 16:18:15 ... to avoid this registerTool problem, we can introduce a registry 16:19:15 ... two sub-problems, A) do we want agent identifier or allowlist to register tools, only exposed to extension agent, in-browser agent etc.; B) or one registry that is visible to all tools 16:19:36 ... second is concurrency problem, with pointer lock style as one possible solution 16:20:06 ... blocking out all other agents when one agent is executing maybe too heavy-handed solution 16:20:07 brwalder has joined #webmachinelearning 16:20:30 ... the simplest solution would be a global registry and design it so we can add on functionality to filter tools from specific agents 16:20:51 ... when you listTools() registered and you can view all global tools and those tools exposed to your agent only 16:21:08 ... I think this is a decent path forward 16:21:16 ... that might help with concurrency management 16:21:24 q? 16:21:59 Dominic: I think we're most excited to move forward with global registry of tools that can be extended with per-agent filter mechanism 16:22:15 ... pointer lock where platform blocks other agents seems a bit heavy 16:22:16 q? 16:22:22 ack AlexN 16:22:42 Alex: that sums up it pretty well, want to highlight Khus' proposal 16:22:45 q+ 16:23:08 ... we will see many different agents interacting 16:23:08 q? 16:23:15 ack kush 16:24:08 Khushal: I was convinced it seems premature to solve, filtering which tool goes to which agent, both the things don't need to be solved in the same agent and right now, we just want to make sure this API is extensible to addess these both things, filtering and ensuring only one agent is running at a time 16:25:10 Dominic: personally I'd like to see real concurrency handled by the web developer ultimately, basic global list of tools that extends to per-agent registry 16:25:12 q? 16:25:40 Anssi: are we clear on the use cases? 16:26:41 Dominic: I think the use case would need to clerified when we are to augment the global registry, understand multiple agents stomping each other 16:26:42 q? 16:26:57 q? 16:27:19 q+ 16:27:22 +1 16:27:23 +1 16:27:27 Dominic: my plan is to spec this and make sure it is extensible for a filtering mechanism 16:28:16 Brandon: sounds good 16:28:17 q? 16:28:27 ack Kryspin_Ziemski 16:29:37 Kryspin: we're talking about executing, how do we think about coordination, where there's hierarchy of agents, primary and flowing down from there 16:30:31 ... we're talking about tools and concurrency, the tools themselves mutate state because the agent determines it needs to be called, e.g. call checkout function, that may be relevant for in-page agent to know it was called, both aware of the interaction happening 16:31:52 ... shared tools are an intention and if in-browser agent calls a function it should bubble down, otherwise they're operating without knowledge of intention 16:32:03 q+ 16:32:05 ... think shared table, where people are not seeing what others are doing 16:33:13 Dominic: if in-browser agent calls a checkout flow, maybe the in-page agent wants to know, it is useful, the same if the user clicks the checkout button in the UI 16:33:29 Kryspin: the in-page agent needs to know, to be able to act on the checkout function 16:33:38 +q 16:34:09 q? 16:34:27 RRSAgent, draft minutes 16:34:28 I have made the request to generate https://www.w3.org/2026/03/05-webmachinelearning-minutes.html anssik 16:34:42 q? 16:35:06 ack brwalder 16:35:14 q+ 16:36:21 Brandon: I think some of this is on web developer to solve, we have in-page agent, in-browser agent, to mitigate this is to build in-page agents in a way that's useful to both agents, if there's an action on the page they don't want in-browser agent doing, they shouldn't expose that tool 16:37:08 ... need coordination to have the means to delegate between the two 16:37:19 q? 16:38:07 Kryspin: ModelContext is not registering against an agent, it'd be sense for in-page agent to be given tools, that's limit scope 16:38:52 q+ 16:39:03 ... if no interaction between the two agents, shared prompt mechanism or means to play an assistant role to the other agent, not able to know what the in-browser is tasked to do, from the in-page agent side 16:39:32 ... allowlist will solve of this 16:39:32 q? 16:39:34 ack AlexN 16:40:12 Alex: to the points of this sharing state across agents, there's a need for some context that does nto need to be fetched via tool call but written from the app 16:40:22 ... solves coordination issue, will open an issue about this 16:40:29 q? 16:40:31 ack Mark_Foltz 16:41:22 Mark: there's several topics here, one thing is to think if there are multiple agents that are concurrently modifying a page, allow feedback to be shared, what changed, to give direction to plan the next tool call 16:43:21 Kryspin: there should be a message bus, a messenger pattern, different agents having understanding what other agents are doing, more important than concurrency, in-page agents don't know what in-browser agent is doing 16:43:28 prior art: https://docs.copilotkit.ai/learn/whats-new/v1-50#useagent & https://developers.cloudflare.com/agents/api-reference/store-and-sync-state/ 16:44:09 Kryspin: people we do ambitious things, browser agent has more agency than in-page agents, and agents need to coordinate 16:44:22 Dominic: return value from the tool dispatched to all agents? 16:44:27 ... all agents listening to that? 16:44:50 Kryspin: yes, this is the missing piece 16:44:50 q? 16:44:56 ack Victor 16:45:49 Victor: in-page agents, we're trying to solve the problems without good list of use cases for this class of problems 16:46:34 Kryspin: I agree with that, we started with tool calling and shared registry of tools 16:46:56 ... a separate explainer would be great, help people coming from MCP space to WebMCP space 16:47:37 Dominic: we can add to an existing explainer 16:47:50 q? 16:48:37 Kryspin: I will add to an existing explainer agent coordination section 16:48:55 q? 16:49:06 Subtopic: Input schema validation ownership 16:49:10 Anssi: issue #92 16:49:10 https://github.com/webmachinelearning/webmcp/issues/92 -> Issue 92 Who owns the validation layer? (by MiguelsPizza) [Agenda+] 16:49:19 ... Alex proposes the browser to do the input schema validation and return validation errors in a structured way 16:49:24 ... the group seems to agree on that high-level point 16:49:32 ... Dominic commented there are three validation layers: meta, input and output validation 16:49:39 ... we seem to have an initial agreement that browser should do three-layer validation 16:49:52 Anssi: do we want to discuss error behavior on the call today? 16:50:01 q? 16:50:38 Dominic: meta validation, how strict we want to be? 16:50:59 ... JSON schema supports dynamic linking, for example 16:51:16 ... what is the normal behaviour, for best alignment with other projects 16:51:16 q? 16:52:03 Alex: standard schema is what the community has rallied around, it is the best resource 16:52:07 https://standardschema.dev/ 16:52:31 q? 16:52:48 Dominic: what would be the default look like? 16:52:51 q+ 16:53:15 Alex: you can write your own validator 16:53:19 q? 16:53:22 ack kush 16:53:55 Khushal: should ensure interop across all browser agents 16:54:06 Dominic: what keywords to support and expand from there 16:54:08 q? 16:54:19 https://github.com/webmachinelearning/webmcp/issues/92 -> Issue 92 Who owns the validation layer? (by MiguelsPizza) [Agenda+] 16:54:55 proposed RESOLUTION: Browser is responsible for input schema validation on all three layers: meta, input and output. TODO research JSON schema validation and codify a subset in the spec. (issue #92) 16:55:09 +1 16:55:21 +1 16:55:22 +1 16:55:23 +1 16:55:24 +1 16:55:26 RESOLUTION: Browser is responsible for input schema validation on all three layers: meta, input and output. TODO research JSON schema validation and codify a subset in the spec. (issue #92) 16:55:40 Subtopic: provideContext overwrite 16:55:44 Anssi: issue #101 16:55:44 https://github.com/webmachinelearning/webmcp/issues/101 -> Issue 101 `navigator.modelContext.provideContext` allows overwriting of previously registered tools in the same environment (by beaufortfrancois) [Agenda+] 16:55:52 ... since I put this on the agenda, Brandon shared motivation for the initial provideContext design: 16:55:55 -> https://github.com/webmachinelearning/webmcp/issues/101#issuecomment-3987182502 16:55:56 https://github.com/webmachinelearning/webmcp/issues/101 -> Issue 101 `navigator.modelContext.provideContext` allows overwriting of previously registered tools in the same environment (by beaufortfrancois) [Agenda+] 16:56:05 .. and informed by this background and current focus on tools, Brandon proposed to drop provideContext/clearContext from the spec entirely 16:56:09 ... and it seems the group agrees 16:56:17 qcomp has joined #webmachinelearning 16:56:25 q? 16:56:44 q+ 16:56:51 ack domfarolino 16:57:29 Dominic: I put up a PR to do this spec change, also doing this in Chrome, I see no controversy doing this change 16:57:31 q? 16:58:12 https://github.com/webmachinelearning/webmcp/pull/132 16:58:12 https://github.com/webmachinelearning/webmcp/pull/132 -> Pull Request 132 Remove `provideContext()` and `clearContext()` (by domfarolino) 16:58:16 https://github.com/webmachinelearning/webmcp/pull/132 -> Pull Request 132 Remove `provideContext()` and `clearContext()` (by domfarolino) 16:58:16 https://github.com/webmachinelearning/webmcp/issues/101 -> Issue 101 `navigator.modelContext.provideContext` allows overwriting of previously registered tools in the same environment (by beaufortfrancois) [Agenda+] 16:58:30 +1 16:58:35 +1 16:58:35 +1 16:58:35 +1 16:58:35 RESOLUTION: Drop provideContext/clearContext from the spec as in PR #132. (issue #101) 16:59:50 Subtopic: Define the API for in-page Agents to use a site's declared tools 16:59:54 Anssi: issue #51 was proposed to the agenda yesterday 16:59:55 https://github.com/webmachinelearning/webmcp/issues/51 -> Issue 51 Define the API for in-page Agents to use a site's declared tools (by khushalsagar) [Agenda+] 16:59:56 +1 17:00:07 ... this discussion was reignited by Yoav's M:N problem illustration, complexity explosion that exist between "MCP Servers" and "MCP Clients" in context of WebMCP when we use more loosely scoped definitions 17:00:13 ... we revisited this in context of agent allowlist discussion: 17:00:16 -> https://github.com/webmachinelearning/webmcp/issues/51#issuecomment-3973968414 17:00:17 https://github.com/webmachinelearning/webmcp/issues/51 -> Issue 51 Define the API for in-page Agents to use a site's declared tools (by khushalsagar) [Agenda+] 17:00:25 Anssi: Brandon's proposal is to move listTools and executeTools to navigator.modelContext to allow non-browser agents enumerate and execute tools 17:00:40 +1 17:00:40 +1 17:00:41 +1 17:00:47 +1 17:00:50 +1 17:00:52 +1 17:00:53 RESOLUTION: Move listTools and executeTools to navigator.modelContext to allow non-browser agents enumerate and execute tools. (issue #51) 17:01:07 RRSAgent, draft minutes 17:01:08 I have made the request to generate https://www.w3.org/2026/03/05-webmachinelearning-minutes.html anssik 17:01:45 Great meeting! 17:01:54 Thanks anssik! 17:02:19 RRSAgent, draft minutes 17:02:21 I have made the request to generate https://www.w3.org/2026/03/05-webmachinelearning-minutes.html anssik 17:02:39 Present+ Mark_Foltz 17:02:43 Present+ Dominic_Farolino 17:02:52 Present+ Kryspin_Ziemski 17:03:06 Present+ Alex_Nahas 17:03:12 Present+ Ben_Greenstein 17:03:18 Present+ Brandon_Walderman 17:03:36 Present+ Chris_Harrelson 17:03:42 Present+ Ehsan_Toreini 17:04:00 Present+ Iris_Johanson 17:04:08 Present+ Khushal_Sagar 17:04:17 Present+ Reilly_Grant 17:04:29 Present+ Sathish 17:04:41 Present+ Johann_Hofmann 17:05:00 Present+ Tania_Millan 17:05:04 Present+ Victor_Huang 17:05:19 Present+ Zoltan_Kis 17:05:24 RRSAgent, draft minutes 17:05:26 I have made the request to generate https://www.w3.org/2026/03/05-webmachinelearning-minutes.html anssik 17:08:00 s/these is/there is 17:09:30 s/your the most/your most 17:10:25 s/informs/comment informs 17:11:20 s/likey/likely 17:11:56 s/maybe too/may be too 17:13:14 s/clerified/clarified 17:15:04 s/be sense/make sense 17:15:27 s/that's limit/that'd limit 17:15:53 s/solve of this/solve this 17:16:11 s/nto/not 17:17:09 s/people we/people will 17:20:54 RRSAgent, draft minutes 17:20:55 I have made the request to generate https://www.w3.org/2026/03/05-webmachinelearning-minutes.html anssik 19:33:27 Zakim has left #webmachinelearning