{
  "schemaVersion": "1.0",
  "item": {
    "slug": "aws-agentcore-langgraph",
    "name": "aws-agentcore-langgraph",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/killerapp/aws-agentcore-langgraph",
    "canonicalUrl": "https://clawhub.ai/killerapp/aws-agentcore-langgraph",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/aws-agentcore-langgraph",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=aws-agentcore-langgraph",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/agentcore-cli.md",
      "references/agentcore-gateway.md",
      "references/agentcore-memory.md",
      "references/agentcore-runtime.md",
      "references/langgraph-patterns.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/aws-agentcore-langgraph"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/aws-agentcore-langgraph",
    "agentPageUrl": "https://openagent3.xyz/skills/aws-agentcore-langgraph/agent",
    "manifestUrl": "https://openagent3.xyz/skills/aws-agentcore-langgraph/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/aws-agentcore-langgraph/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "AWS AgentCore + LangGraph",
        "body": "Multi-agent systems on AWS Bedrock AgentCore with LangGraph orchestration. Source: https://github.com/aws/bedrock-agentcore-starter-toolkit"
      },
      {
        "title": "Install",
        "body": "pip install bedrock-agentcore bedrock-agentcore-starter-toolkit langgraph\nuv tool install bedrock-agentcore-starter-toolkit  # installs agentcore CLI"
      },
      {
        "title": "Quick Start",
        "body": "from langgraph.graph import StateGraph, START\nfrom langgraph.graph.message import add_messages\nfrom langgraph.prebuilt import ToolNode, tools_condition  # routing + tool execution\nfrom bedrock_agentcore.runtime import BedrockAgentCoreApp\nfrom typing import Annotated\nfrom typing_extensions import TypedDict\n\nclass State(TypedDict):\n    messages: Annotated[list, add_messages]\n\nbuilder = StateGraph(State)\nbuilder.add_node(\"agent\", agent_node)\nbuilder.add_node(\"tools\", ToolNode(tools))  # prebuilt tool executor\nbuilder.add_conditional_edges(\"agent\", tools_condition)  # routes to tools or END\nbuilder.add_edge(START, \"agent\")\ngraph = builder.compile()\n\napp = BedrockAgentCoreApp()  # Wraps as HTTP service on port 8080 (/invocations, /ping)\n@app.entrypoint\ndef invoke(payload, context):\n    result = graph.invoke({\"messages\": [(\"user\", payload.get(\"prompt\", \"\"))]})\n    return {\"result\": result[\"messages\"][-1].content}\napp.run()"
      },
      {
        "title": "CLI Commands",
        "body": "CommandPurposeagentcore configure -e agent.py --region us-east-1Setupagentcore configure -e agent.py --region us-east-1 --name my_agent --non-interactiveScripted setupagentcore launch --deployment-type containerDeploy (container mode)agentcore launch --disable-memoryDeploy without memory subsystemagentcore devHot-reload local dev serveragentcore invoke '{\"prompt\": \"Hello\"}'Testagentcore destroyCleanup"
      },
      {
        "title": "Multi-Agent Orchestration",
        "body": "Orchestrator delegates to specialists (customer service, e-commerce, healthcare, financial, etc.)\nSpecialists: inline functions or separate deployed agents; all share session_id for context"
      },
      {
        "title": "Memory (STM/LTM)",
        "body": "from bedrock_agentcore.memory import MemoryClient\nmemory = MemoryClient()\nmemory.create_event(session_id, actor_id, event_type, payload)  # Store\nevents = memory.list_events(session_id)  # Retrieve (returns list)\n\nSTM: Turn-by-turn within session | LTM: Facts/decisions across sessions/agents\n~10s eventual consistency after writes"
      },
      {
        "title": "Gateway Tools",
        "body": "python -m bedrock_agentcore.gateway.deploy --stack-name my-agents --region us-east-1\n\nfrom bedrock_agentcore.gateway import GatewayToolClient\ngateway = GatewayToolClient()\nresult = gateway.call(\"tool_name\", param1=value1, param2=value2)\n\nTransport: Fallback Mock (local), Local MCP servers, Production Gateway (Lambda/REST/MCP)\nAuto-configures BEDROCK_AGENTCORE_GATEWAY_URL after deploy"
      },
      {
        "title": "Decision Tree",
        "body": "Multiple agents coordinating? → Orchestrator + specialists pattern\nPersistent cross-session memory? → AgentCore Memory (not LangGraph checkpoints)\nExternal APIs/Lambda? → AgentCore Gateway\nSingle agent, simple? → Quick Start above\nComplex multi-step logic? → StateGraph + tools_condition + ToolNode"
      },
      {
        "title": "Key Concepts",
        "body": "AgentCore Runtime: HTTP service on port 8080 (handles /invocations, /ping)\nAgentCore Memory: Managed cross-session/cross-agent memory\nLangGraph Routing: tools_condition for agent→tool routing, ToolNode for execution\nAgentCore Gateway: Transforms APIs/Lambda into MCP tools with auth"
      },
      {
        "title": "Naming Rules",
        "body": "Start with letter, only letters/numbers/underscores, 1-48 chars: my_agent not my-agent"
      },
      {
        "title": "Troubleshooting",
        "body": "IssueFixon-demand throughput isn't supportedUse us.anthropic.claude-* inference profilesModel use case details not submittedFill Anthropic form in Bedrock ConsoleInvalid agent nameUse underscores not hyphensMemory empty after writeWait ~10s (eventual consistency)Container not reading .envSet ENV in Dockerfile, not .envMemory not working after deployCheck logs for \"Memory enabled/disabled\"list_events returns emptyCheck actor_id/session_id match; event['payload'] is a listGateway \"Unknown tool\"Lambda must strip ___ prefix from bedrockAgentCoreToolNamePlatform mismatch warningNormal - CodeBuild handles ARM64 cross-platform builds"
      },
      {
        "title": "References",
        "body": "agentcore-cli.md - CLI commands, deployment, lifecycle\nagentcore-runtime.md - Streaming, async, observability\nagentcore-memory.md - STM/LTM patterns, API reference\nagentcore-gateway.md - Tool integration, MCP, Lambda\nlanggraph-patterns.md - StateGraph design, routing\nreference-architecture-advertising-agents-use-case.pdf - Example multi-agent architecture"
      }
    ],
    "body": "AWS AgentCore + LangGraph\n\nMulti-agent systems on AWS Bedrock AgentCore with LangGraph orchestration. Source: https://github.com/aws/bedrock-agentcore-starter-toolkit\n\nInstall\npip install bedrock-agentcore bedrock-agentcore-starter-toolkit langgraph\nuv tool install bedrock-agentcore-starter-toolkit  # installs agentcore CLI\n\nQuick Start\nfrom langgraph.graph import StateGraph, START\nfrom langgraph.graph.message import add_messages\nfrom langgraph.prebuilt import ToolNode, tools_condition  # routing + tool execution\nfrom bedrock_agentcore.runtime import BedrockAgentCoreApp\nfrom typing import Annotated\nfrom typing_extensions import TypedDict\n\nclass State(TypedDict):\n    messages: Annotated[list, add_messages]\n\nbuilder = StateGraph(State)\nbuilder.add_node(\"agent\", agent_node)\nbuilder.add_node(\"tools\", ToolNode(tools))  # prebuilt tool executor\nbuilder.add_conditional_edges(\"agent\", tools_condition)  # routes to tools or END\nbuilder.add_edge(START, \"agent\")\ngraph = builder.compile()\n\napp = BedrockAgentCoreApp()  # Wraps as HTTP service on port 8080 (/invocations, /ping)\n@app.entrypoint\ndef invoke(payload, context):\n    result = graph.invoke({\"messages\": [(\"user\", payload.get(\"prompt\", \"\"))]})\n    return {\"result\": result[\"messages\"][-1].content}\napp.run()\n\nCLI Commands\nCommand\tPurpose\nagentcore configure -e agent.py --region us-east-1\tSetup\nagentcore configure -e agent.py --region us-east-1 --name my_agent --non-interactive\tScripted setup\nagentcore launch --deployment-type container\tDeploy (container mode)\nagentcore launch --disable-memory\tDeploy without memory subsystem\nagentcore dev\tHot-reload local dev server\nagentcore invoke '{\"prompt\": \"Hello\"}'\tTest\nagentcore destroy\tCleanup\nCore Patterns\nMulti-Agent Orchestration\nOrchestrator delegates to specialists (customer service, e-commerce, healthcare, financial, etc.)\nSpecialists: inline functions or separate deployed agents; all share session_id for context\nMemory (STM/LTM)\nfrom bedrock_agentcore.memory import MemoryClient\nmemory = MemoryClient()\nmemory.create_event(session_id, actor_id, event_type, payload)  # Store\nevents = memory.list_events(session_id)  # Retrieve (returns list)\n\nSTM: Turn-by-turn within session | LTM: Facts/decisions across sessions/agents\n~10s eventual consistency after writes\nGateway Tools\npython -m bedrock_agentcore.gateway.deploy --stack-name my-agents --region us-east-1\n\nfrom bedrock_agentcore.gateway import GatewayToolClient\ngateway = GatewayToolClient()\nresult = gateway.call(\"tool_name\", param1=value1, param2=value2)\n\nTransport: Fallback Mock (local), Local MCP servers, Production Gateway (Lambda/REST/MCP)\nAuto-configures BEDROCK_AGENTCORE_GATEWAY_URL after deploy\nDecision Tree\nMultiple agents coordinating? → Orchestrator + specialists pattern\nPersistent cross-session memory? → AgentCore Memory (not LangGraph checkpoints)\nExternal APIs/Lambda? → AgentCore Gateway\nSingle agent, simple? → Quick Start above\nComplex multi-step logic? → StateGraph + tools_condition + ToolNode\n\nKey Concepts\nAgentCore Runtime: HTTP service on port 8080 (handles /invocations, /ping)\nAgentCore Memory: Managed cross-session/cross-agent memory\nLangGraph Routing: tools_condition for agent→tool routing, ToolNode for execution\nAgentCore Gateway: Transforms APIs/Lambda into MCP tools with auth\nNaming Rules\nStart with letter, only letters/numbers/underscores, 1-48 chars: my_agent not my-agent\nTroubleshooting\nIssue\tFix\non-demand throughput isn't supported\tUse us.anthropic.claude-* inference profiles\nModel use case details not submitted\tFill Anthropic form in Bedrock Console\nInvalid agent name\tUse underscores not hyphens\nMemory empty after write\tWait ~10s (eventual consistency)\nContainer not reading .env\tSet ENV in Dockerfile, not .env\nMemory not working after deploy\tCheck logs for \"Memory enabled/disabled\"\nlist_events returns empty\tCheck actor_id/session_id match; event['payload'] is a list\nGateway \"Unknown tool\"\tLambda must strip ___ prefix from bedrockAgentCoreToolName\nPlatform mismatch warning\tNormal - CodeBuild handles ARM64 cross-platform builds\nReferences\nagentcore-cli.md - CLI commands, deployment, lifecycle\nagentcore-runtime.md - Streaming, async, observability\nagentcore-memory.md - STM/LTM patterns, API reference\nagentcore-gateway.md - Tool integration, MCP, Lambda\nlanggraph-patterns.md - StateGraph design, routing\nreference-architecture-advertising-agents-use-case.pdf - Example multi-agent architecture"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/killerapp/aws-agentcore-langgraph",
    "publisherUrl": "https://clawhub.ai/killerapp/aws-agentcore-langgraph",
    "owner": "killerapp",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/aws-agentcore-langgraph",
    "downloadUrl": "https://openagent3.xyz/downloads/aws-agentcore-langgraph",
    "agentUrl": "https://openagent3.xyz/skills/aws-agentcore-langgraph/agent",
    "manifestUrl": "https://openagent3.xyz/skills/aws-agentcore-langgraph/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/aws-agentcore-langgraph/agent.md"
  }
}