/ 00-agent-agentcore / architecture.drawio
architecture.drawio
1 <mxfile host="app.diagrams.net" version="24.0.0"> 2 <diagram id="stack00" name="Stack 00 - AgentCore"> 3 <mxGraphModel dx="1500" dy="1200" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="1500" pageHeight="1100" math="0" shadow="0"> 4 <root> 5 <mxCell id="0" /> 6 <mxCell id="1" parent="0" /> 7 <mxCell id="desc" value="<b style="font-size:13px;">Stack 00: Amazon Bedrock AgentCore</b><br><br><b>Flow:</b><br>1. Stacks 01/02 invoke AgentCore Runtime Endpoint (InvokeAgentRuntime API).<br>2. Runtime loads agent code from Amazon S3 and runs Strands Multimodal Agent in an isolated microVM.<br>3. Agent uses Amazon Bedrock (Claude Sonnet) for inference and AgentCore Memory for conversation context.<br>4. For video analysis, the video_analysis tool calls TwelveLabs API (external) via pre-signed S3 URLs.<br>5. AWS Systems Manager Parameter Store exports runtime ARN, S3 bucket, memory ID, and role ARN for downstream stacks." style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;spacing=10;fontSize=11;fontStyle=0;" parent="1" vertex="1"> 8 <mxGeometry x="40" y="-190" width="870" height="160" as="geometry" /> 9 </mxCell> 10 <mxCell id="region" value="AWS Region" style="points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;container=1;pointerEvents=0;collapsible=0;recursiveResize=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_region;strokeColor=#00A4A6;fillColor=none;dashed=1;verticalAlign=top;align=left;spacingLeft=30;fontColor=#147EBA;" vertex="1" parent="1"> 11 <mxGeometry x="40" y="0" width="870" height="770" as="geometry" /> 12 </mxCell> 13 <!-- ROW 1: Main flow (y=60) --> 14 <mxCell id="caller" value="Stacks 01/02<br>AWS Lambda" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#ED7100;strokeColor=#ffffff;dashed=0;verticalLabelPosition=top;verticalAlign=bottom;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.lambda;" vertex="1" parent="region"> 15 <mxGeometry x="50" y="80" width="60" height="60" as="geometry" /> 16 </mxCell> 17 <mxCell id="endpoint" value="AgentCore<br>Runtime Endpoint" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#01A88D;strokeColor=#ffffff;dashed=0;verticalLabelPosition=top;verticalAlign=bottom;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.bedrock;" vertex="1" parent="region"> 18 <mxGeometry x="260" y="80" width="60" height="60" as="geometry" /> 19 </mxCell> 20 <mxCell id="runtime" value="AgentCore<br>Runtime" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#01A88D;strokeColor=#ffffff;dashed=0;verticalLabelPosition=top;verticalAlign=bottom;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.bedrock;" vertex="1" parent="region"> 21 <mxGeometry x="470" y="80" width="60" height="60" as="geometry" /> 22 </mxCell> 23 <mxCell id="bedrock" value="Amazon Bedrock<br>(Claude Sonnet)" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#01A88D;strokeColor=#ffffff;dashed=0;verticalLabelPosition=top;verticalAlign=bottom;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.bedrock;" vertex="1" parent="region"> 24 <mxGeometry x="700" y="80" width="60" height="60" as="geometry" /> 25 </mxCell> 26 <!-- ROW 2: Supporting (y=220) - far enough below Row 1 labels --> 27 <mxCell id="s3" value="Amazon S3<br>(Agent Code)" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#3F8624;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.s3;" vertex="1" parent="region"> 28 <mxGeometry x="260" y="220" width="60" height="60" as="geometry" /> 29 </mxCell> 30 <mxCell id="iam" value="AWS IAM Role<br>(Execution)" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#DD344C;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.identity_and_access_management;" vertex="1" parent="region"> 31 <mxGeometry x="470" y="220" width="60" height="60" as="geometry" /> 32 </mxCell> 33 <mxCell id="memory" value="AgentCore<br>Memory" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#01A88D;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.bedrock;" vertex="1" parent="region"> 34 <mxGeometry x="700" y="220" width="60" height="60" as="geometry" /> 35 </mxCell> 36 <mxCell id="memory_desc" value="Short-term: session_id, 3-day TTL<br>Long-term: actor_id, persistent" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=0;fontColor=#666666;" vertex="1" parent="region"> 37 <mxGeometry x="650" y="320" width="200" height="35" as="geometry" /> 38 </mxCell> 39 <!-- ROW 3: Strands box (y=400) - far below Row 2 labels --> 40 <mxCell id="strands_box" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;opacity=30;arcSize=10;" vertex="1" parent="region"> 41 <mxGeometry x="200" y="400" width="420" height="80" as="geometry" /> 42 </mxCell> 43 <mxCell id="strands_logo" value="" style="shape=image;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;aspect=fixed;imageAspect=0;image=https://strandsagents.com/latest/assets/logo-github.svg;" vertex="1" parent="region"> 44 <mxGeometry x="220" y="403" width="30" height="30" as="geometry" /> 45 </mxCell> 46 <mxCell id="strands_title" value="Strands Multimodal Agent" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontStyle=0;fontColor=#6c8ebf;" vertex="1" parent="region"> 47 <mxGeometry x="258" y="403" width="200" height="28" as="geometry" /> 48 </mxCell> 49 <mxCell id="vision_tool" value="Claude Vision (inline)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=10;fontStyle=0;" vertex="1" parent="region"> 50 <mxGeometry x="220" y="438" width="160" height="30" as="geometry" /> 51 </mxCell> 52 <mxCell id="video_tool" value="video_analysis tool" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=10;fontStyle=0;" vertex="1" parent="region"> 53 <mxGeometry x="400" y="438" width="160" height="30" as="geometry" /> 54 </mxCell> 55 <!-- ROW 4: SSM (y=580) --> 56 <mxCell id="ssm" value="SSM<br>Parameter Store" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#E7157B;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.parameter_store;" vertex="1" parent="region"> 57 <mxGeometry x="50" y="580" width="60" height="60" as="geometry" /> 58 </mxCell> 59 <mxCell id="ssm_params" value="/agentcore/agent_runtime_arn<br>/agentcore/s3_bucket_name<br>/agentcore/memory_id<br>/agentcore/runtime_role_arn" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=9;fontStyle=2;fontColor=#666666;" vertex="1" parent="region"> 60 <mxGeometry x="20" y="680" width="180" height="55" as="geometry" /> 61 </mxCell> 62 <!-- TwelveLabs OUTSIDE region - bigger icon 80x80 --> 63 <mxCell id="twelvelabs" value="TwelveLabs API<br>(External)" style="shape=image;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;imageAspect=0;image=https://vectorseek.com/wp-content/uploads/2025/12/TwelveLabs-Logo-PNG-SVG-Vecto-01.png;" vertex="1" parent="1"> 64 <mxGeometry x="980" y="540" width="80" height="80" as="geometry" /> 65 </mxCell> 66 <!-- EDGES - all with strokeWidth=2;flowAnimation=1 --> 67 <!-- Row 1: horizontal main flow --> 68 <mxCell id="e1" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#01A88D;strokeWidth=2;flowAnimation=1;" edge="1" parent="region" source="caller" target="endpoint"> 69 <mxGeometry relative="1" as="geometry" /> 70 </mxCell> 71 <mxCell id="e2" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#01A88D;strokeWidth=2;flowAnimation=1;" edge="1" parent="region" source="endpoint" target="runtime"> 72 <mxGeometry relative="1" as="geometry" /> 73 </mxCell> 74 <mxCell id="e3" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#01A88D;strokeWidth=2;flowAnimation=1;" edge="1" parent="region" source="runtime" target="bedrock"> 75 <mxGeometry relative="1" as="geometry" /> 76 </mxCell> 77 <!-- Row 1→2: vertical down (straight, no label crossing because Row 2 is 220 and labels end at ~170) --> 78 <mxCell id="e4" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#3F8624;strokeWidth=2;flowAnimation=1;" edge="1" parent="region" source="endpoint" target="s3"> 79 <mxGeometry relative="1" as="geometry" /> 80 </mxCell> 81 <mxCell id="e5" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#DD344C;strokeWidth=2;flowAnimation=1;" edge="1" parent="region" source="runtime" target="iam"> 82 <mxGeometry relative="1" as="geometry" /> 83 </mxCell> 84 <mxCell id="e6" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#01A88D;strokeWidth=2;flowAnimation=1;" edge="1" parent="region" source="bedrock" target="memory"> 85 <mxGeometry relative="1" as="geometry" /> 86 </mxCell> 87 <!-- Runtime → Strands (straight down, labels are now ABOVE icons so no overlap) --> 88 <mxCell id="e7" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#6c8ebf;strokeWidth=2;flowAnimation=1;dashed=1;" edge="1" parent="region" source="runtime" target="strands_box"> 89 <mxGeometry relative="1" as="geometry"> 90 <Array as="points"> 91 <mxPoint x="500" y="380" /> 92 <mxPoint x="480" y="380" /> 93 </Array> 94 </mxGeometry> 95 </mxCell> 96 <!-- video_tool → TwelveLabs (route DOWN below strands, then RIGHT out of region) --> 97 <mxCell id="e8" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#d6b656;strokeWidth=2;flowAnimation=1;" edge="1" parent="1" source="video_tool" target="twelvelabs"> 98 <mxGeometry relative="1" as="geometry"> 99 <Array as="points"> 100 <mxPoint x="520" y="530" /> 101 <mxPoint x="900" y="530" /> 102 <mxPoint x="900" y="580" /> 103 </Array> 104 </mxGeometry> 105 </mxCell> 106 <!-- SSM dashed export --> 107 <mxCell id="e9" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#E7157B;strokeWidth=2;flowAnimation=1;dashed=1;" edge="1" parent="region" source="caller" target="ssm"> 108 <mxGeometry relative="1" as="geometry"> 109 <Array as="points"> 110 <mxPoint x="80" y="580" /> 111 </Array> 112 </mxGeometry> 113 </mxCell> 114 </root> 115 </mxGraphModel> 116 </diagram> 117 </mxfile>