<mxfile host="ai-architect-catalog"><diagram id="grounded-research-desk-gcp" name="Grounded research desk / gcp"><mxGraphModel grid="1" gridSize="10"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="analyst" value="Analyst
Person" data-role="user" data-service="external" data-class="internal" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#8AB4FF33;strokeColor=#8AB4FF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="40" y="220" width="252" height="112" as="geometry"/></mxCell><mxCell id="workspace" value="Research workspace
Cloud Run" data-role="experience" data-service="gcp.cloud-run" data-class="internal" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#8AB4FF33;strokeColor=#8AB4FF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="340" y="220" width="252" height="112" as="geometry"/></mxCell><mxCell id="sso" value="Workforce sign-in
Identity-Aware Proxy" data-role="identity" data-service="gcp.iap" data-class="identity" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#B9A7FF33;strokeColor=#B9A7FF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="340" y="40" width="252" height="112" as="geometry"/></mxCell><mxCell id="answer-api" value="Answer API
Cloud Run" data-role="api" data-service="gcp.cloud-run" data-class="confidential" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#B9A7FF33;strokeColor=#B9A7FF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="640" y="220" width="252" height="112" as="geometry"/></mxCell><mxCell id="gateway" value="Model gateway
Apigee (AI gateway policies)" data-role="gateway" data-service="gcp.apigee" data-class="confidential" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#B9A7FF33;strokeColor=#B9A7FF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="940" y="40" width="252" height="112" as="geometry"/></mxCell><mxCell id="model" value="Generation model
Gemini 3.8 Flash (Agent Platform)" data-role="model" data-service="gcp.gemini" data-class="confidential" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#5EE6CF33;strokeColor=#5EE6CF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="1240" y="40" width="252" height="112" as="geometry"/></mxCell><mxCell id="index" value="Hybrid retrieval index
Agent Search" data-role="retrieval" data-service="gcp.agent-search" data-class="confidential" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#FFC07A33;strokeColor=#FFC07A;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="940" y="400" width="252" height="112" as="geometry"/></mxCell><mxCell id="ingest" value="Ingestion pipeline
RAG Engine (Agent Platform)" data-role="ingest" data-service="gcp.rag-engine" data-class="confidential" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#FFC07A33;strokeColor=#FFC07A;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="1240" y="400" width="252" height="112" as="geometry"/></mxCell><mxCell id="corpus" value="Source corpus
Cloud Storage" data-role="objects" data-service="gcp.cloud-storage" data-class="confidential" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#FFC07A33;strokeColor=#FFC07A;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="1540" y="400" width="252" height="112" as="geometry"/></mxCell><mxCell id="ledger" value="Answer ledger
Firestore" data-role="store" data-service="gcp.firestore" data-class="confidential" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#FFC07A33;strokeColor=#FFC07A;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="640" y="400" width="252" height="112" as="geometry"/></mxCell><mxCell id="traces" value="Traces and cost
Cloud Logging, Monitoring, Trace" data-role="observability" data-service="gcp.observability" data-class="operational" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#FF9FCB33;strokeColor=#FF9FCB;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="1540" y="40" width="252" height="112" as="geometry"/></mxCell><mxCell id="evals" value="Eval harness
Evaluation service (Agent Platform)" data-role="evals" data-service="gcp.evaluation" data-class="internal" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#FF9FCB33;strokeColor=#FF9FCB;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="1540" y="220" width="252" height="112" as="geometry"/></mxCell><mxCell id="ask" value="Question" data-kind="data" data-class="internal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="analyst" target="workspace" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="signin" value="SSO and group claims" data-kind="control" data-class="identity" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="workspace" target="sso" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="request" value="Question with scope token" data-kind="data" data-class="internal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="workspace" target="answer-api" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="retrieve" value="Permission-filtered query" data-kind="data" data-class="confidential" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="answer-api" target="index" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="generate" value="Prompt with top passages" data-kind="data" data-class="confidential" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="answer-api" target="gateway" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="route" value="Model call" data-kind="data" data-class="confidential" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="gateway" target="model" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="record" value="Answer, citations, trace ID" data-kind="data" data-class="confidential" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="answer-api" target="ledger" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="respond" value="Cited answer or refusal" data-kind="data" data-class="confidential" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="answer-api" target="workspace" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="source-change" value="New or changed document" data-kind="data" data-class="confidential" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="corpus" target="ingest" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="index-write" value="Chunks, embeddings, permission tags" data-kind="data" data-class="confidential" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="ingest" target="index" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="telemetry" value="Tokens, latency, cost" data-kind="telemetry" data-class="operational" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;dashPattern=1 3;" edge="1" source="gateway" target="traces" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="replay" value="Replay frozen questions per release" data-kind="control" data-class="internal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="evals" target="answer-api" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell></root></mxGraphModel></diagram></mxfile>
