home / skills / hoodini / ai-agents-skills / aws-agentcore
This skill helps you design and deploy AI agents on AWS Bedrock AgentCore, enabling tool orchestration, memory, and secure identity integration.
npx playbooks add skill hoodini/ai-agents-skills --skill aws-agentcoreReview the files below or copy the command above to add this skill to your agents.
---
name: aws-agentcore
description: Build AI agents with AWS Bedrock AgentCore. Use when developing agents on AWS infrastructure, creating tool-use patterns, implementing agent orchestration, or integrating with Bedrock models. Triggers on keywords like AgentCore, Bedrock Agent, AWS agent, Lambda tools.
---
# AWS Bedrock AgentCore
Build production-grade AI agents on AWS infrastructure.
## Quick Start
```python
import boto3
from agentcore import Agent, Tool
# Initialize AgentCore client
client = boto3.client('bedrock-agent-runtime')
# Define a tool
@Tool(name="search_database", description="Search the product database")
def search_database(query: str, limit: int = 10) -> dict:
# Tool implementation
return {"results": [...]}
# Create agent
agent = Agent(
model_id="anthropic.claude-3-sonnet",
tools=[search_database],
instructions="You are a helpful product search assistant."
)
# Invoke agent
response = agent.invoke("Find laptops under $1000")
```
## AgentCore Components
AgentCore provides these primitives:
| Component | Purpose |
|-----------|---------|
| **Runtime** | Serverless agent execution (framework-agnostic) |
| **Gateway** | Convert APIs/Lambda to MCP-compatible tools |
| **Memory** | Multi-strategy memory (semantic, user preference) |
| **Identity** | Auth with Cognito, Okta, Google, EntraID |
| **Tools** | Code Interpreter, Browser Tool |
| **Observability** | Deep analysis and tracing |
## Lambda Tool Integration
```python
# Lambda function as tool
import json
def lambda_handler(event, context):
action = event.get('actionGroup')
function = event.get('function')
parameters = event.get('parameters', [])
# Parse parameters
params = {p['name']: p['value'] for p in parameters}
if function == 'get_weather':
result = get_weather(params['city'])
elif function == 'book_flight':
result = book_flight(params['origin'], params['destination'])
return {
'response': {
'actionGroup': action,
'function': function,
'functionResponse': {
'responseBody': {
'TEXT': {'body': json.dumps(result)}
}
}
}
}
```
## Agent Orchestration
```python
from agentcore import SupervisorAgent, SubAgent
# Create specialized sub-agents
research_agent = SubAgent(
name="researcher",
model_id="anthropic.claude-3-sonnet",
instructions="You research and gather information."
)
writer_agent = SubAgent(
name="writer",
model_id="anthropic.claude-3-sonnet",
instructions="You write clear, engaging content."
)
# Create supervisor
supervisor = SupervisorAgent(
model_id="anthropic.claude-3-opus",
sub_agents=[research_agent, writer_agent],
routing_strategy="supervisor" # or "intent_classification"
)
response = supervisor.invoke("Write a blog post about AI agents")
```
## Guardrails Integration
```python
from agentcore import Agent, Guardrail
# Define guardrail
guardrail = Guardrail(
guardrail_id="my-guardrail-id",
guardrail_version="1"
)
agent = Agent(
model_id="anthropic.claude-3-sonnet",
guardrails=[guardrail],
tools=[...],
)
```
## AgentCore Gateway
Convert existing APIs to MCP-compatible tools:
```python
# gateway_setup.py
from bedrock_agentcore import GatewayClient
gateway = GatewayClient()
# Create gateway from OpenAPI spec
gateway.create_target(
name="my-api",
type="OPENAPI",
openapi_spec_path="./api-spec.yaml"
)
# Create gateway from Lambda function
gateway.create_target(
name="my-lambda-tool",
type="LAMBDA",
function_arn="arn:aws:lambda:us-east-1:123456789:function:my-tool"
)
```
## AgentCore Memory
```python
from agentcore import Agent, Memory
# Create memory with multiple strategies
memory = Memory(
name="customer-support-memory",
strategies=["semantic", "user_preference"]
)
agent = Agent(
model_id="anthropic.claude-3-sonnet",
memory=memory,
tools=[...],
)
# Memory persists across sessions
response = agent.invoke(
"What did we discuss last time?",
session_id="user-123"
)
```
## Official Use Cases Repository
AWS provides production-ready implementations:
**Repository**: https://github.com/awslabs/amazon-bedrock-agentcore-samples
### Available Use Cases (`02-use-cases/`)
| Use Case | Description |
|----------|-------------|
| **A2A Multi-Agent Incident Response** | Agent-to-Agent with Strands + OpenAI SDK |
| **Customer Support Assistant** | Memory, Knowledge Base, Google OAuth |
| **Market Trends Agent** | LangGraph with browser tools |
| **DB Performance Analyzer** | PostgreSQL integration |
| **Device Management Agent** | IoT with Cognito auth |
| **Enterprise Web Intelligence** | Browser tools for research |
| **Text to Python IDE** | AgentCore Code Interpreter |
| **Video Games Sales Assistant** | Amplify + CDK deployment |
### Quick Start with Use Cases
```bash
git clone https://github.com/awslabs/amazon-bedrock-agentcore-samples.git
cd amazon-bedrock-agentcore-samples/02-use-cases/customer-support-assistant
# Follow README for deployment
```
## Resources
- **Official Samples**: https://github.com/awslabs/amazon-bedrock-agentcore-samples
- **Use Cases**: https://github.com/awslabs/amazon-bedrock-agentcore-samples/tree/main/02-use-cases
- **Tutorials**: https://github.com/awslabs/amazon-bedrock-agentcore-samples/tree/main/01-tutorials
This skill helps you build production-grade AI agents using AWS Bedrock AgentCore. It provides primitives for runtime execution, tool integration, memory, identity, observability, and supervisor-based orchestration. Use it to create serverless agents, wrap APIs or Lambda functions as tools, and coordinate multi-agent workflows on AWS.
The skill wires AgentCore primitives into working agents: define tools (including Lambda or API gateways), configure memory and guardrails, and assign models for agents or sub-agents. It can deploy serverless runtimes, convert OpenAPI or Lambda targets into MCP-compatible tools via a gateway, and orchestrate tasks using supervisor/sub-agent patterns. Observability and identity integrations let you trace behavior and secure access.
How do I expose an existing Lambda as a tool?
Use the AgentCore Gateway to create a LAMBDA target with the function ARN; the gateway converts the Lambda into an MCP-compatible tool the agent can invoke.
Can I use different models per sub-agent?
Yes. Sub-agents can specify their own model_id so you can optimize each role for cost, latency, or capability.
How is memory persisted across sessions?
Configure a Memory instance with strategies such as semantic or user_preference and include session_id when invoking so the memory store associates data with a user session.
Where do guardrails fit in production?
Attach Guardrail objects to agents to enforce safety policies and integrate runtime checks before or after tool execution to prevent unsafe outputs.