docs(a2a-demo): refresh narration + lineage for ADK 1.33 + AI.GENERATE rewrite#149
Merged
haiyuan-eng-google merged 2 commits intoMay 12, 2026
Conversation
…E rewrite PR GoogleCloudPlatform#147 landed the supervisor↔A2A-sub-session mapping table and the receiver-extraction fallback parser, but the two narrative docs still described the pre-GoogleCloudPlatform#147 state. This commit aligns them. DATA_LINEAGE.md: * Layer 1 (agent_events): add the ADK 1.33 caller-side telemetry note. The A2A_INTERACTION row lives in a sibling caller session, not the supervisor's. * Layer 2 (Demo metadata): add the supervisor_a2a_invocations mapping table row with full schema, the per-tool-call time-window pairing rule, and the G1.5 gate it backstops. * Layer 3 (SDK extraction outputs): add the receiver-side dual-path writer section — primary AI.GENERATE path now uses SQL-style output_schema with deterministic model_params, and the demo fallback parser in build_org_graphs._repair_receiver_extraction_ from_prompt_contract re-stores via store_decision_points (WRITE_TRUNCATE; cited as a sharp edge). * Layer 4 (Auditor projections): fix the remote_agent_invocations source projection SQL — it no longer reads from <CALLER>.agent_events. The SQL in the table now matches build_joint_graph.py byte-for-byte: reads from <CALLER>.supervisor_a2a_invocations and joins through caller_campaign_runs. DEMO_NARRATION.md: * Beat 1: keep the 5-min flow; add a single optional follow-up paragraph for technical Q&A that names the ADK 1.33 split-session shape and the bridge table. * Beat 2: add a single follow-up paragraph for the AI.GENERATE typed output_schema + fallback parser story. * New "Presenter aside — robustness" section between Close and Questions: names both design choices (ADK 1.33 bridge + receiver fallback) as deliberate resilience to runtime/model shifts. * Questions To Invite: add a question about ADK/model shape changes and refresh the closing answer. The 5-minute talk track itself is unchanged. The additions are all presenter-aside / Q&A material, gated by the audience asking.
56e3f49 to
a33095b
Compare
haiyuan-eng-google
approved these changes
May 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #147. The two narrative docs (
DEMO_NARRATION.md,DATA_LINEAGE.md) still described the pre-#147 data model —remote_agent_invocationsin particular still showed the oldFROM <CALLER>.agent_events WHERE event_type='A2A_INTERACTION'join that #147 replaced with thesupervisor_a2a_invocationsmapping read. This PR aligns both docs with the merged code.DATA_LINEAGE.md (factual fixes)
A2A_INTERACTIONrow lives in a sibling caller session (agent='audience_risk_reviewer'), not under the supervisor;user_id/app_nameshared, no FK link.supervisor_a2a_invocationsrow with full schema, per-tool-call time-window pairing rule (supervisor_ts <= a2a_ts < next_supervisor_tspartitioned byuser_id), and the G1.5 gate it backstops.AI.GENERATEpath now uses SQL-styleoutput_schema => 'decisions ARRAY<STRUCT<...>>'with deterministicmodel_params(temperature=0.0,topP=0.1); fallback parser inbuild_org_graphs._repair_receiver_extraction_from_prompt_contractre-stores viastore_decision_points, which deletes existing decision rows for the parsedsession_ids and appends replacements via a BigQuery load job.remote_agent_invocationssource-projection SQL to matchbuild_joint_graph.py: reads from<CALLER>.supervisor_a2a_invocationsand joins throughcaller_campaign_runs. The pre-fix(a2a-demo): adapt joint graph to ADK 1.33 RemoteA2aAgent sub-session telemetry #147 SQL was a real factual error.DEMO_NARRATION.md (preserves the 5-min flow)
AI.GENERATEtypedoutput_schemarewrite and the fallback parser. Same gating.The 5-minute spoken talk track itself is unchanged. All additions are presenter-aside material.
Verification
build_joint_graph.py:123-137confirms theremote_agent_invocationsCTAS reads from<CALLER>.supervisor_a2a_invocationsand joins throughcaller_campaign_runs(matches the updated Layer 4 SQL in DATA_LINEAGE.md).run_caller_agent.py:126confirms thesupervisor_a2a_invocationstable is written byrun_caller_agent.py(matches the new Layer 2 row).build_org_graphs.py:249confirms_repair_receiver_extraction_from_prompt_contractis the fallback writer (matches the new Layer 3 paragraph).context_graph.py:2147-2224confirmsstore_decision_pointsis delete-by-session plus load-job append, not table truncation.Test plan
build_joint_graph.pyrun_caller_agent.pyContextGraphManager.store_decision_pointsgit diff --check origin/main...HEAD