<mxfile host="ai-architect-catalog"><diagram id="in-product-copilot-gcp" name="In-product copilot / gcp"><mxGraphModel grid="1" gridSize="10"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="tenant-user" value="Tenant user
Person" data-role="user" data-service="external" data-class="tenant" 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="product" value="Product UI with copilot panel
Cloud Run" data-role="experience" data-service="gcp.cloud-run" data-class="tenant" 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="edge" value="Edge protection
Cloud Armor + Load Balancing" data-role="edge" data-service="gcp.cloud-armor" data-class="operational" 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="identity" value="Tenant identity
Identity Platform" data-role="identity" data-service="gcp.identity-platform" 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="640" y="40" width="252" height="112" as="geometry"/></mxCell><mxCell id="copilot-api" value="Copilot API
Cloud Run" data-role="api" data-service="gcp.cloud-run" data-class="tenant" 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="tenant" 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="Assistant model
Gemini 3.8 Flash (Agent Platform)" data-role="model" data-service="gcp.gemini" data-class="tenant" 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="tenant-index" value="Tenant-partitioned index
AlloyDB for PostgreSQL" data-role="retrieval" data-service="gcp.alloydb" data-class="tenant" 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="actions" value="Product actions
MCP server on Cloud Run" data-role="tools" data-service="gcp.cloud-run-mcp" data-class="tenant" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#5EE6CF33;strokeColor=#5EE6CF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="940" y="220" width="252" height="112" as="geometry"/></mxCell><mxCell id="app-db" value="Product database
AlloyDB for PostgreSQL" data-role="store" data-service="gcp.alloydb" data-class="tenant" 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="220" width="252" height="112" as="geometry"/></mxCell><mxCell id="meter" value="Usage meter
BigQuery + Looker Studio" data-role="analytics" data-service="gcp.bigquery" data-class="operational" 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="traces" value="Traces
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="Release evals
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="open" value="Question in context" data-kind="data" data-class="tenant" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="tenant-user" target="product" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="protect" value="Tenant rate limits" data-kind="control" data-class="operational" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="product" target="edge" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="send" value="Question and screen context" data-kind="data" data-class="tenant" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="product" target="copilot-api" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="scope" value="Resolve tenant from session" data-kind="control" data-class="identity" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="copilot-api" target="identity" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="retrieve" value="Tenant namespace query" data-kind="data" data-class="tenant" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="copilot-api" target="tenant-index" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="ask-model" value="Prompt tagged with tenant" data-kind="data" data-class="tenant" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="copilot-api" target="gateway" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="infer" value="Model call" data-kind="data" data-class="tenant" 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="propose" value="Proposed action (dry run)" data-kind="data" data-class="tenant" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="copilot-api" target="actions" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="apply" value="Confirmed write with undo token" data-kind="data" data-class="tenant" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="actions" target="app-db" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="meter-usage" value="Tokens per tenant" 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="meter" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="telemetry" value="Latency and refusals" data-kind="telemetry" data-class="operational" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;dashPattern=1 3;" edge="1" source="copilot-api" target="traces" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="probe" value="Cross-tenant probes per release" data-kind="control" data-class="internal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="evals" target="copilot-api" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell></root></mxGraphModel></diagram></mxfile>
