"I presented at DevelopersIO 2025 Osaka with the title 'Let's Try Amazon Bedrock AgentCore! ~Explaining the Key Points of Various Features~'! #devio2025"

"I presented at DevelopersIO 2025 Osaka with the title 'Let's Try Amazon Bedrock AgentCore! ~Explaining the Key Points of Various Features~'! #devio2025"

2025.09.06

Hello, I'm Jinno from the Consulting Department!

I presented at DevelopersIO 2025 Osaka held on Wednesday, September 3, 2025, with the title "Let's Try Amazon Bedrock AgentCore! ~Explaining the Key Points of Various Functions~"!

In this presentation, I introduced the attractive features of Amazon Bedrock AgentCore, which was released as a public preview in July 2025, based on my hands-on experience.

Thankfully, quite a number of people attended and despite feeling nervous, I hope I was able to convey the appeal of AgentCore even a little bit!

Presentation Materials

Due to my enthusiasm, I ended up creating 81 slides for a 20-minute presentation.

CleanShot 2025-09-05 at 19.56.38@2x

Key Points of the Presentation

What is Amazon Bedrock AgentCore?

Amazon Bedrock AgentCore is an optimal managed service for deploying and operating AI agents.

CleanShot 2025-09-05 at 19.57.52@2x

There are various managed functions available, and below are the types of functions:

CleanShot 2025-09-05 at 19.58.47@2x

  • Runtime
    • Hosting function
  • Identity
    • Authentication function
  • Gateway
    • Function to turn external processing into Tools
  • Memory
    • Memory function
  • Built in tools
    • Code Interpreter: Code execution environment
    • Browser: Browser execution environment

That's a lot of features...!! Here's roughly how these functions can be integrated with each other:

CleanShot 2025-09-05 at 20.00.27@2x

From here, I'll go through each service one by one.

Runtime

Runtime is a managed service for hosting AI agents.

CleanShot 2025-09-05 at 20.03.05@2x

Since it's a hosting environment, you can freely choose the agent framework and LLM as shown below.
Not being vendor-locked is a nice point, isn't it?

CleanShot 2025-09-05 at 20.03.43@2x#### Deployment

You can run the agentcore configure command to be asked about IAM and ECR settings, with the option for automatic creation. It's nice and simple.

CleanShot 2025-09-05 at 20.04.47@2x

After running the agentcore configure command, you can deploy with agentcore launch. Easy!

CleanShot 2025-09-05 at 20.06.15@2x

While it's simple, let's also look at the deployment process.
The configure command creates files used to build a container image, which is pushed to ECR, and then the AgentCore Runtime pulls that image.

CleanShot 2025-09-05 at 20.07.53@2x

Invocation is also simple - you can call the created agent using agentcore invoke.

CleanShot 2025-09-05 at 20.08.51@2x

When invoked, the result is returned as shown below. The AI agent's message is in the response field!

Invocation example
			
			agentcore invoke '{"prompt": "Hello"}'                        
Payload:
{
  "prompt": "Hello"
}
Invoking BedrockAgentCore agent 'agent' via cloud endpoint
Session ID: c4dbea7b-7c51-471c-b631-330f991d5893

Response:
{
  "ResponseMetadata": {
    "RequestId": "c796b751-caf4-4d44-a450-dbde138546dd",
    "HTTPStatusCode": 200,
    "HTTPHeaders": {
      "date": "Fri, 05 Sep 2025 22:47:24 GMT",
      "content-type": "application/json",
      "transfer-encoding": "chunked",
      "connection": "keep-alive",
      "x-amzn-requestid": "c796b751-caf4-4d44-a450-dbde138546dd",
      "baggage":
"Self=1-68bb6874-5e56d29a3edd9d1103a57630,session.id=c4dbea7b-7c51-471c-b631-330f991d5893",
      "x-amzn-bedrock-agentcore-runtime-session-id": "c4dbea7b-7c51-471c-b631-330f991d5893",
      "x-amzn-trace-id":
"Root=1-68bb6874-56784cc51d5370ab108fd780;Self=1-68bb6874-5e56d29a3edd9d1103a57630"
    },
    "RetryAttempts": 0
  },
  "runtimeSessionId": "c4dbea7b-7c51-471c-b631-330f991d5893",
  "traceId":
"Root=1-68bb6874-56784cc51d5370ab108fd780;Self=1-68bb6874-5e56d29a3edd9d1103a57630",
  "baggage":
"Self=1-68bb6874-5e56d29a3edd9d1103a57630,session.id=c4dbea7b-7c51-471c-b631-330f991d5893",
  "contentType": "application/json",
  "statusCode": 200,
  "response": [
    "b'{\"role\": \"assistant\", \"content\": [{\"text\": \"Hi there! How are you doing today?
Is there anything I can help you with?\"}]}'"
  ]
}
```#### Blog

There are actual blogs where this has been tested, so please refer to these as well!

https://dev.classmethod.jp/articles/bedrock-agentcore-openai-gpt41/

### Identity

This is a managed service that provides authentication functionality for AI agents. There are two types: Inbound Auth and Outbound Auth.

![CleanShot 2025-09-05 at 20.10.25@2x](https://devio2024-media.developers.io/image/upload/v1757074172/2025/09/05/jtvufebxveu2yjzrgbm1.png)

Inbound Auth is an authentication function for the AI agent itself. It can implement authentication by integrating with IdPs such as Cognito.

![CleanShot 2025-09-05 at 20.12.53@2x](https://devio2024-media.developers.io/image/upload/v1757074179/2025/09/05/qh2uw8yn5eukatbc0kdh.png)

Outbound Auth is an authentication function for AI agents to call external services. It manages API keys and OAuth authentication information in a managed way, allowing them to be automatically obtained.

For example, in the case of an API Key, it can be obtained through the flow below, and the acquisition logic can be obtained just by adding a decorator, which is nice.

![CleanShot 2025-09-05 at 20.14.26@2x](https://devio2024-media.developers.io/image/upload/v1757074185/2025/09/05/ceizdi52dp8b4bg8yiaq.png)

```python
@requires_api_key(
    provider_name="azure-openai-key"
)
async def need_api_key(*, api_key: str):

		

Blog

For more details, I have summarized them in the blog below, so please refer to this as well!

https://dev.classmethod.jp/articles/amazon-bedrock-agentcore-identity-cognito-azure-openai/### Memory

Memory is a managed service for giving AI agents "memory." There are two types of memory: Short-term Memory and Long-term Memory.

CleanShot 2025-09-05 at 20.18.08@2x

Short-term Memory is a mechanism that maintains conversation history during a session. It's nice to be able to maintain conversation history in a managed service, isn't it? The memory retention and retrieval logic is not too difficult and can be implemented.

CleanShot 2025-09-05 at 20.19.22@2x

The data structure can be managed with built-in attributes such as actor_id for each user and session_id for each session, so there's no need to think about complicated things. The conversation history tabs in ChatGPT and Claude might be easy to imagine.

CleanShot 2025-09-05 at 20.20.51@2x

CleanShot 2025-09-05 at 20.21.02@2x

On the other hand, Long-term Memory is a function that automatically extracts and integrates important information from Short-term Memory.
The extracted data is stored as vectors, enabling semantic search to extract highly relevant memories.

CleanShot 2025-09-05 at 20.22.28@2x

You might wonder how to configure the transition from Short-term Memory to Long-term Memory,
but this can be done through settings called Strategies for extraction. There are three built-in Strategies. It's about considering what kind of extraction to choose depending on the use case.

CleanShot 2025-09-05 at 20.24.17@2x

Blog

For more details, I've also summarized this in the blog below, so please refer to it!

https://dev.classmethod.jp/articles/amazon-bedrock-agentcore-memory-sample-agent/### Gateway

Gateway is a service that converts APIs, Lambda functions, and various services into MCP (Model Context Protocol) compatible tools, making them easy to call from AI agents.
This seems useful in cases where AI agents want to treat APIs or Lambda functions as Tools.
In this article, we'll examine how to turn a Lambda function into a Tool.

CleanShot 2025-09-05 at 20.25.03@2x

Gateway prepares Lambda functions to be callable from agents as MCP protocol-compatible tools. Specifically, this involves granting Gateway permission to call Lambda functions and registering the mapping between Lambda functions and Tools using Tool Schema.

CleanShot 2025-09-05 at 20.27.04@2x

			
			# Tool schema definition
tool_schemas = [
    {
        "name": "get_order_tool",
        "description": "Retrieves order information",
        "inputSchema": {
            "type": "object",
            "properties": {
                "orderId": {
                    "type": "string",
                    "description": "Order ID"
                }
            },
            "required": ["orderId"]
        }
    },
    {
        "name": "update_order_tool",
        "description": "Updates order information",
        "inputSchema": {
            "type": "object",
            "properties": {
                "orderId": {
                    "type": "string",
                    "description": "Order ID"
                }
            },
            "required": ["orderId"]
        }
    }
]

# Target configuration
target_config = {
    "mcp": {
        "lambda": {
            "lambdaArn": lambda_arn,
            "toolSchema": {
                "inlinePayload": tool_schemas
            }
        }
    }
}

# Credential provider (Gateway IAM role is used for Lambda invocation)
credential_config = [
    {
        "credentialProviderType": "GATEWAY_IAM_ROLE"
    }
]

		

After these preparations, Lambda functions can be used as Tools as shown below.
Agents can also use the results from Tool-converted Lambda functions to respond to users.

CleanShot 2025-09-05 at 20.27.59@2x#### Blog

For more details, please also refer to the blog post I have summarized below!

https://dev.classmethod.jp/articles/amazon-bedrock-agentcore-gateway-lambda-tool/

Observability

Observability is a managed service that enables visualization of various metrics, traces, and logs for AI agents.

CleanShot 2025-09-05 at 20.42.44@2x

There is some preparatory work to do. There is a transaction search function that can visualize the agent's execution flow, which becomes available after being enabled once per account.

CleanShot 2025-09-05 at 20.43.25@2x

Additionally, aws-opentelemetry-distro needs to be included in the dependencies. However, when deploying using AgentCore's starter toolkit, it is automatically included in the Dockerfile and enabled. That's a nice feature.

CleanShot 2025-09-05 at 20.44.32@2x

Integrated Dashboard

CloudWatch provides an integrated dashboard called GenAI Observability, which allows you to see the agent's behavior at a glance.
It visualizes session counts, error rates, token usage, etc., which seems useful for monitoring performance and early problem detection.

CleanShot 2025-09-05 at 20.45.04@2x

I found it valuable that you can check the AI agent's activities on a timeline. Being able to visually understand which tools were used when and where bottlenecks occur is very convenient for debugging.

CleanShot 2025-09-06 at 08.00.49@2x

CleanShot 2025-09-05 at 20.45.42@2x

Terms like traces, spans, and sessions have appeared, and their relationship is as follows:

CleanShot 2025-09-05 at 20.45.53@2x

CleanShot 2025-09-05 at 20.46.56@2x

Blog

For more details, please also refer to the blog post I have summarized below!

https://dev.classmethod.jp/articles/amazon-bedrock-agentcore-observability-genai-observability/### Built-in Tools

Built-in Tools provides two useful features: Code Interpreter and Browser.

CleanShot 2025-09-05 at 20.48.25@2x

Since both are provided in a managed way, it's great that you can use them without worrying about security or environment setup.

Code Interpreter

Code Interpreter is a feature that executes code created by generative AI in a secure external environment.

CleanShot 2025-09-05 at 20.48.59@2x

The code is executed in a completely isolated sandbox environment, allowing for safe execution without affecting the agent's main environment. It supports Python, JavaScript, TypeScript, and data science libraries such as pandas, numpy, matplotlib, etc.

CleanShot 2025-09-05 at 20.49.11@2x

Blog

For more details, please refer to the blog post linked below!

https://dev.classmethod.jp/articles/amazon-bedrock-agentcore-code-interpreter-act-simple-code/

Browser

Browser is a service that provides an execution environment for generative AI to operate a browser.

CleanShot 2025-09-05 at 20.49.47@2x

Utilizing Playwright and Browser-use, it can operate an actual web browser. This seems useful for information gathering and automating screen operations.

However, there's a caution that using search engines might trigger CAPTCHA. The official documentation recommends using MCP tools (like Tavily) rather than browsers for general searches.

https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/built-in-tools-troubleshooting.html

Blog

For more details, please refer to the blog post linked below!

https://dev.classmethod.jp/articles/amazon-bedrock-agentcore-agentcore-browser-sample/

Summary

AgentCore is a managed service with all the necessary features for AI agent development. Let's build AI agents by combining the functions you need!!

CleanShot 2025-09-05 at 20.51.54@2x## Conclusion

That was the presentation blog on "Let's try Amazon Bedrock AgentCore! ~Explaining the key points of various features~"!

Since it can be used for free during the preview period, it's definitely a service I'd like everyone to try. I plan to explore it more deeply in the future and share practical usage and tips on my blog!
I'd be happy if this sparked your interest enough to try it out! Let's create useful AI agents together!!

CleanShot 2025-09-05 at 20.53.18@2x

Thank you for reading until the end!

Share this article

FacebookHatena blogX

Related articles