home / skills / hoodini / ai-agents-skills / aws-agentcore

aws-agentcore skill

/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-agentcore

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
5.3 KB
---
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

Overview

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.

How this skill works

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.

When to use it

  • Building agents that run on AWS infrastructure and integrate with Bedrock models
  • Wrapping existing APIs or Lambda functions into tool calls for agents
  • Implementing multi-agent workflows or a supervisor/sub-agent routing strategy
  • Persisting conversational memory across sessions (semantic or preference-based)
  • Adding guardrails, observability, and identity providers for production deployments

Best practices

  • Design small, composable tools with clear input/output schemas so agents can call them reliably
  • Use Gateway targets (OpenAPI or Lambda) to expose existing services as tools instead of ad-hoc prompts
  • Combine memory strategies (semantic + user preference) only when needed to balance cost and recall
  • Add guardrails and observability early to detect unsafe behaviors and debug tool usage
  • Start with a supervisor agent for complex tasks, routing to specialized sub-agents for research, writing, or execution

Example use cases

  • Customer support assistant with persistent memory, knowledge-base search tool, and Google OAuth for identity
  • Multi-agent incident response where a supervisor delegates tasks to analyst and remediation sub-agents
  • Automated product search assistant that calls a database search Lambda tool and returns structured results
  • Text-to-Python IDE agent using the code interpreter tool for generating and validating code snippets
  • Enterprise web intelligence agent combining browser tools and memory for ongoing research tasks

FAQ

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.