From agent request to submitted form

Form lifecycle · MCP tools verified; customer HTTPS web entry needs setup

From agent request to submitted form Form lifecycle · MCP tools verified; customer HTTPS web entry needs setup POST /v1/sessions Provisioning token + Google ingress identity Experience ID + browser JWT Open experience link Use the customer web entry shown in the combined architecture GET /v1/sessions/{id}/events Via customer web entry; browser JWT; keep SSE open POST {session}:runSession inputs: experienceSessionId variable + customer text initialize + tools/list POST /mcp; CES service-agent ID token get_session_info() X-Trueserve-Session-Id uses the GECX variable session_id + catalogue scope start_auto_change(id, driver) Store UI_RENDER createSurface + updateComponents in entries:{id} SSE: A2UI form frames The browser renders the ACG driver form surface_id + awaiting_input await_auto_change(id, surface) Synchronous call; wait up to 20 seconds POST /v1/sessions/{id}/ui-action Via customer web entry; fields, acknowledgement and event_id Validate + retain action mm:actions stream; mm:result receipt; event_id deduplication Submission for this surface The waiter reads the action; later calls read the retained result completed_demo + details MCP tool response; policy_updated is false Agent confirms demo receipt Create and bind Discover and render Wait and submit Client · App backend · Sequence participant Client App backend GECX · Agent + MCP · Sequence participant GECX Agent + MCP Multimodal · Cloud Run · Sequence participant Multimodal Cloud Run Redis · Renders/actions · Sequence participant Redis Renders/actions Browser · Mobile web · Sequence participant Browser Mobile web Legend request return security async trace default message

Four identifiers

  • • Your integration owns the GECX session resource. The multimodal service owns a separate experience UUID.
  • • MCP transport IDs belong to the protocol. surface_id identifies one form inside an experience.

Updates travel in two directions

  • • GECX calls render tools; your browser reads A2UI from the SSE stream. Generic clients can use update_components and update_data_model.
  • • The customer posts a ui-action. GECX gets those fields from an outstanding or later wait tool call.

Bounded waiting

  • • A timeout returns pending. Your agent must call again to read a later submission.
  • • The standalone service makes no GECX API call to wake an idle conversation. Voice interruption needs channel testing.

Renderer scope

  • • The bundled page handles ACG forms and the legacy auto form. Other catalogue components need a matching renderer.
  • • Spoken submission records a completed result. It does not fill individual fields in the open browser form.