360 Secure SkillHub
360 安全技能中心

aws-agentcore-langgraph

核心功能:构建多智能体编排系统(协调器+专家模式)、实现跨会话持久内存(STM/LTM)、通过AgentCore Gateway对接外部工具(MCP、Lambda、API),支持生产级可观测与扩容。典型场景:客服/电商等多智能体协作任务、需长期记忆的对话系统、调用外部服务的复杂业务。通过Python代码定义LangGraph逻辑,封装为HTTP服务,也可通过CLI完成全生命周期管理。

killerapp
killerapp
热度 96.90
最近更新 2026-05-11 15:54:00
分类:开发依赖:代码执行 / MCP 服务 / 第三方 API应用场景:代码生成 / API 集成 / DevOps / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add aws-agentcore-langgraph
Metadata
name
aws-agentcore-langgraph
description
Deploy production LangGraph agents on AWS Bedrock AgentCore. Use for (1) multi-agent systems with orchestrator and specialist agent patterns, (2) building stateful agents with persistent cross-session memory, (3) connecting external tools via AgentCore Gateway (MCP, Lambda, APIs), (4) managing shared context across distributed agents, or (5) deploying complex agent ecosystems via CLI with production observability and scaling.

AWS AgentCore + LangGraph

Multi-agent systems on AWS Bedrock AgentCore with LangGraph orchestration. Source: https://github.com/aws/bedrock-agentcore-starter-toolkit

Install

pip install bedrock-agentcore bedrock-agentcore-starter-toolkit langgraph
uv tool install bedrock-agentcore-starter-toolkit  # installs agentcore CLI

Quick Start

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_id for context

Memory (STM/LTM)

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

python -m bedrock_agentcore.gateway.deploy --stack-name my-agents --region us-east-1
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_URL after deploy

Decision Tree

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_condition for agent→tool routing, ToolNode for execution
  • AgentCore Gateway: Transforms APIs/Lambda into MCP tools with auth

Naming Rules

  • Start with letter, only letters/numbers/underscores, 1-48 chars: my_agent not my-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