<mxfile host="ai-architect-catalog"><diagram id="support-resolution-agent-gcp" name="Support resolution agent / gcp"><mxGraphModel grid="1" gridSize="10"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="customer" value="Customer
Person" data-role="user" data-service="external" data-class="personal" 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="channels" value="Chat and email channels
Cloud Run" data-role="experience" data-service="gcp.cloud-run" data-class="personal" 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="conversation-api" value="Conversation API
Cloud Run" data-role="api" data-service="gcp.cloud-run" data-class="personal" 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="agent" value="Resolution agent
Agent Runtime (Agent Platform)" data-role="orchestrator" data-service="gcp.agent-runtime" data-class="personal" 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="gateway" value="Model gateway
Apigee (AI gateway policies)" data-role="gateway" data-service="gcp.apigee" data-class="personal" 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="Reasoning model
Gemini 3.8 Flash (Agent Platform)" data-role="model" data-service="gcp.gemini" data-class="personal" 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="tools" value="Tool server (MCP)
MCP server on Cloud Run" data-role="tools" data-service="gcp.cloud-run-mcp" data-class="personal" 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="220" width="252" height="112" as="geometry"/></mxCell><mxCell id="policy-index" value="Policy and help index
Agent Search" data-role="retrieval" data-service="gcp.agent-search" data-class="internal" 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="case-state" value="Case state
Firestore" data-role="memory" data-service="gcp.firestore" data-class="personal" 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="400" width="252" height="112" as="geometry"/></mxCell><mxCell id="commerce" value="Order and payment systems
External system" data-role="system" data-service="external" data-class="personal" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#8AB4FF33;strokeColor=#8AB4FF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="1540" y="220" width="252" height="112" as="geometry"/></mxCell><mxCell id="desk" value="Human agent desk
Review console on Cloud Run" data-role="review" data-service="gcp.review-console" data-class="personal" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#FF9FCB33;strokeColor=#FF9FCB;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, cost, CSAT
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="scenarios" value="Scenario 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="400" width="252" height="112" as="geometry"/></mxCell><mxCell id="contact" value="Message" data-kind="data" data-class="personal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="customer" target="channels" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="screen" value="Bot and rate checks" data-kind="control" data-class="operational" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="channels" target="edge" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="open-case" value="Verified session and message" data-kind="data" data-class="personal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="channels" target="conversation-api" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="delegate" value="Case with authority table" data-kind="control" data-class="personal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="conversation-api" target="agent" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="plan" value="State and policy context" data-kind="data" data-class="personal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="agent" target="gateway" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="infer" value="Model call" data-kind="data" data-class="personal" 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="ground" value="Policy lookup" data-kind="data" data-class="internal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="agent" target="policy-index" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="act" value="Typed tool call" data-kind="data" data-class="personal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="agent" target="tools" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="effect" value="Read or capped write with idempotency key" data-kind="data" data-class="personal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="tools" target="commerce" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="remember" value="Step, result, budget" data-kind="data" data-class="personal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="agent" target="case-state" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="handoff" value="Transfer with case summary" data-kind="control" data-class="personal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="agent" target="desk" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="reply" value="Answer, confirmation or transfer notice" data-kind="data" data-class="personal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="conversation-api" target="channels" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="telemetry" value="Spend and latency per case" 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="simulate" value="Simulated contacts per release" data-kind="control" data-class="internal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="scenarios" target="conversation-api" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell></root></mxGraphModel></diagram></mxfile>
