✓ Verified
💻 Development
✓ Enhanced Data
Aws Agentcore Langgraph
Deploy production LangGraph agents on AWS.
- Rating
- 4.3 (453 reviews)
- Downloads
- 1,530 downloads
- Version
- 1.0.0
Overview
Deploy production LangGraph agents on AWS.
Complete Documentation
View Source →
AWS AgentCore + LangGraph
Multi-agent systems on AWS Bedrock AgentCore with LangGraph orchestration. Source: https://github.com/aws/bedrock-agentcore-starter-toolkit
Install
bash
pip install bedrock-agentcore bedrock-agentcore-starter-toolkit langgraph
uv tool install bedrock-agentcore-starter-toolkit # installs agentcore CLI
Quick Start
python
from langgraph.graph import StateGraph, START
from langgraph.graph.message import add_messages
from langgraph.prebuilt import ToolNode, tools_condition # routing + tool execution
from bedrock_agentcore.runtime import BedrockAgentCoreApp
from typing import Annotated
from typing_extensions import TypedDict
class State(TypedDict):
messages: Annotated[list, add_messages]
builder = StateGraph(State)
builder.add_node("agent", agent_node)
builder.add_node("tools", ToolNode(tools)) # prebuilt tool executor
builder.add_conditional_edges("agent", tools_condition) # routes to tools or END
builder.add_edge(START, "agent")
graph = builder.compile()
app = BedrockAgentCoreApp() # Wraps as HTTP service on port 8080 (/invocations, /ping)
@app.entrypoint
def invoke(payload, context):
result = graph.invoke({"messages": [("user", payload.get("prompt", ""))]})
return {"result": result["messages"][-1].content}
app.run()
CLI Commands
| Command | Purpose |
|---|---|
| agentcore configure -e agent.py --region us-east-1 | Setup |
| agentcore configure -e agent.py --region us-east-1 --name my_agent --non-interactive | Scripted setup |
| agentcore launch --deployment-type container | Deploy (container mode) |
| agentcore launch --disable-memory | Deploy without memory subsystem |
| agentcore dev | Hot-reload local dev server |
| agentcore invoke '{"prompt": "Hello"}' | Test |
| agentcore destroy | Cleanup |
Core Patterns
Multi-Agent Orchestration
- Orchestrator delegates to specialists (customer service, e-commerce, healthcare, financial, etc.)
- Specialists: inline functions or separate deployed agents; all share
session_idfor context
Memory (STM/LTM)
python
from bedrock_agentcore.memory import MemoryClient
memory = MemoryClient()
memory.create_event(session_id, actor_id, event_type, payload) # Store
events = memory.list_events(session_id) # Retrieve (returns list)
- STM: Turn-by-turn within session | LTM: Facts/decisions across sessions/agents
- ~10s eventual consistency after writes
Gateway Tools
bash
python -m bedrock_agentcore.gateway.deploy --stack-name my-agents --region us-east-1
python
from bedrock_agentcore.gateway import GatewayToolClient
gateway = GatewayToolClient()
result = gateway.call("tool_name", param1=value1, param2=value2)
- Transport: Fallback Mock (local), Local MCP servers, Production Gateway (Lambda/REST/MCP)
- Auto-configures
BEDROCK_AGENTCORE_GATEWAY_URLafter deploy
Decision Tree
text
Multiple agents coordinating? → Orchestrator + specialists pattern
Persistent cross-session memory? → AgentCore Memory (not LangGraph checkpoints)
External APIs/Lambda? → AgentCore Gateway
Single agent, simple? → Quick Start above
Complex multi-step logic? → StateGraph + tools_condition + ToolNode
Key Concepts
- AgentCore Runtime: HTTP service on port 8080 (handles
/invocations,/ping) - AgentCore Memory: Managed cross-session/cross-agent memory
- LangGraph Routing:
tools_conditionfor agent→tool routing,ToolNodefor execution - AgentCore Gateway: Transforms APIs/Lambda into MCP tools with auth
Naming Rules
- Start with letter, only letters/numbers/underscores, 1-48 chars:
my_agentnotmy-agent
Troubleshooting
| Issue | Fix |
|---|---|
| on-demand throughput isn't supported | Use us.anthropic.claude-* inference profiles |
| Model use case details not submitted | Fill Anthropic form in Bedrock Console |
| Invalid agent name | Use underscores not hyphens |
| Memory empty after write | Wait ~10s (eventual consistency) |
| Container not reading .env | Set ENV in Dockerfile, not .env |
| Memory not working after deploy | Check logs for "Memory enabled/disabled" |
| list_events returns empty | Check actor_id/session_id match; event['payload'] is a list |
| Gateway "Unknown tool" | Lambda must strip ___ prefix from bedrockAgentCoreToolName |
| Platform mismatch warning | Normal - CodeBuild handles ARM64 cross-platform builds |
References
- agentcore-cli.md - CLI commands, deployment, lifecycle
- agentcore-runtime.md - Streaming, async, observability
- agentcore-memory.md - STM/LTM patterns, API reference
- agentcore-gateway.md - Tool integration, MCP, Lambda
- langgraph-patterns.md - StateGraph design, routing
- reference-architecture-advertising-agents-use-case.pdf - Example multi-agent architecture
Installation
Terminal bash
openclaw install aws-agentcore-langgraph
Copied!
💻Code Examples
## Install
-install.sh
pip install bedrock-agentcore bedrock-agentcore-starter-toolkit langgraph
uv tool install bedrock-agentcore-starter-toolkit # installs agentcore CLI## Quick Start
-quick-start.py
from langgraph.graph import StateGraph, START
from langgraph.graph.message import add_messages
from langgraph.prebuilt import ToolNode, tools_condition # routing + tool execution
from bedrock_agentcore.runtime import BedrockAgentCoreApp
from typing import Annotated
from typing_extensions import TypedDict
class State(TypedDict):
messages: Annotated[list, add_messages]
builder = StateGraph(State)
builder.add_node("agent", agent_node)
builder.add_node("tools", ToolNode(tools)) # prebuilt tool executor
builder.add_conditional_edges("agent", tools_condition) # routes to tools or END
builder.add_edge(START, "agent")
graph = builder.compile()
app = BedrockAgentCoreApp() # Wraps as HTTP service on port 8080 (/invocations, /ping)
@app.entrypoint
def invoke(payload, context):
result = graph.invoke({"messages": [("user", payload.get("prompt", ""))]})
return {"result": result["messages"][-1].content}
app.run()### Memory (STM/LTM)
-memory-stmltm.py
from bedrock_agentcore.memory import MemoryClient
memory = MemoryClient()
memory.create_event(session_id, actor_id, event_type, payload) # Store
events = memory.list_events(session_id) # Retrieve (returns list)result = gateway.call("tool_name", param1=value1, param2=value2)
result--gatewaycalltoolname-param1value1-param2value2.txt
- Transport: Fallback Mock (local), Local MCP servers, Production Gateway (Lambda/REST/MCP)
- Auto-configures `BEDROCK_AGENTCORE_GATEWAY_URL` after deploy
## Decision Treeexample.py
from bedrock_agentcore.gateway import GatewayToolClient
gateway = GatewayToolClient()
result = gateway.call("tool_name", param1=value1, param2=value2)example.txt
Multiple agents coordinating? → Orchestrator + specialists pattern
Persistent cross-session memory? → AgentCore Memory (not LangGraph checkpoints)
External APIs/Lambda? → AgentCore Gateway
Single agent, simple? → Quick Start above
Complex multi-step logic? → StateGraph + tools_condition + ToolNodeTags
#devops_and-cloud
Quick Info
Category Development
Model Claude 3.5
Complexity Multi-Agent
Author killerapp
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
Ready to Install?
Get started with this skill in seconds
openclaw install aws-agentcore-langgraph
Related Skills
✓ Verified
💻 Development
4claw
4claw — a moderated imageboard for AI agents.
🧠 Claude-Ready
)}
★ 4.4 (118)
↓ 4,990
v1.0.0
✓ Verified
💻 Development
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
🧠 Claude-Ready
)}
★ 4.3 (89)
↓ 4,621
v1.0.0
✓ Verified
💻 Development
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
⚡ GPT-Optimized
)}
★ 3.8 (274)
↓ 17,648
v1.0.0
✓ Verified
💻 Development
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.
🧠 Claude-Ready
)}
★ 4.7 (88)
↓ 1,625
v1.0.0