Building production-ready AI agents that can understand images, videos, and documents while maintaining personalized conversations across sessions is complex. Joy Chakraborty (AWS Senior Technical Program Manager) and Elizabeth Fuentes Leone (AWS Developer Advocate) demonstrated how the open-source Strands Agents SDK and Amazon S3 Vectors make this achievable with minimal code.
Why Strands Agents SDK
When AWS spoke with customers building agentic AI applications using traditional frameworks, consistent pain points emerged:
- Too much plumbing code required for simple agents like chatbots
- Difficulty understanding what agents are doing internally, making debugging harder
- Challenges making agentic code modular for unit testing
These challenges led to Strands Agents SDK, released earlier in 2025 with over 3 million downloads. The framework follows key principles:
Simple things should be simple - Strands Agents SDK improves developer productivity by reducing boilerplate code
Modular and testable - Critical for enterprise applications requiring robust testing
Model-driven design - The LLM decides execution strategies while developers focus on business problems, crucial as the model industry evolves rapidly
Building Your First Agent
Creating a basic chatbot with Strands Agents SDK requires just one line of code. Simply create an instance from the agent class, and your agent is ready using default configurations (Amazon Bedrock Model Provider with Anthropic Claude Sonnet 4).
The framework provides transparency through the agent results object, showing all processed messages, execution metrics (agentic loop iterations, tool usage, token consumption), and detailed performance data.
Customization is straightforward. Create a session with your AWS configuration, instantiate a model provider with your preferred model, and update the agent. Strands Agents SDK supports all major model providers including Amazon Bedrock, Anthropic, OpenAI, and Gemini.
System prompts set agent personas. Want a storyteller for math problems? Set the system prompt accordingly, and the agent provides explanations like someone telling a story. Need an AWS solution architect expert? Configure the system prompt, and the agent delivers best practices and architectural guidance.
Tools: Extending Agent Capabilities
Agents have limited capability without tools. Tools enable models to interact with the real world by accessing up-to-date information. The LLM does not know the current temperature in Las Vegas - it requires a weather tool.
Converting a Python function into a tool requires only applying the @tool decorator from the Strands Agents SDK. When creating the agent, pass the function as a tool parameter. The model then decides when to use which tool based on the request.
Strands Agents SDK supports pre-built tools maintained by the open-source community. The session demonstrated a multimodal agent using:
- Image reader - Analyzes images and provides summaries
- File reader - Processes PDFs and text files with content analysis
- Video reader - Analyzes video content scene by scene
The demo showed the agent analyzing an architecture diagram, extracting all AWS services, components, and data flows. The same agent analyzed documentation files and a six-minute glacier climbing video, providing detailed scene-by-scene summaries.
MCP Tools: Remote Service Integration
Local tools run in the same process as agent code. But what about tools running remotely as services? This is where Model Context Protocol (MCP) tools come in.
MCP is an open standard enabling agents to communicate with remote services without custom integrations. Standard IO handles local MCP tool communication, while streamable HTTP manages remote connections.
Creating an MCP server involves:
- Import FastMCP from the MCP SDK
- Create an MCP class instance
- Apply the
@mcp.tool()decorator to functions - Start the MCP server with streamable HTTP protocol
On the client side, create an MCP client instance pointing to the server location and protocol. Pass the MCP client as the tool parameter when creating the agent. The client communicates with the remote server, discovers available tools, and configures them for the agent.
The demo showed an agent using three MCP tools to analyze a video, compute risk scores for dangerous elements, and calculate overall risk - all through remote tool calls.
Session Management and Conversation History
Strands Agents SDK provides multiple ways to maintain conversation context:
Agent state - Stateful information outside conversations maintained across requests (like tracking tool invocation counts)
Request state - Contextual information for single requests, initialized per agent invocation
Conversation history - The complete interaction record enabling agents to remember previous exchanges
Without session management, agents forget conversations when reinitialized. Strands Agents SDK offers solutions:
Conversation Manager
The conversation manager helps control context window size and manage what information gets retained. Two key strategies include:
Sliding window - Maintains only the most recent N conversation pairs (user message and agent response), automatically discarding older messages as new ones arrive
Summarization - Compresses conversation history by summarizing a percentage of older messages while keeping the most recent messages intact
These strategies help manage model context window limits while maintaining conversational coherence.
File Session Manager
Save sessions locally to folders, with each session ID creating a separate directory containing all user requests and agent responses. This works for both single agents and multi-agent systems where conversations pass between agents.
S3 Session Manager
For production deployments, save sessions to Amazon S3 buckets. Simply import S3SessionManager instead of FileSessionManager, provide bucket name, prefix, session configuration, and region. Every session automatically saves to S3.
Amazon S3 Vectors for Personalized Memory
Session management preserves conversations, but what about remembering user preferences for personalized recommendations? This requires intelligent memory storage and retrieval.
Amazon S3 Vectors (announced GA at re:Invent 2025) is the first cloud object storage with native support to store and query vectors. It delivers purpose-built, cost-optimized vector storage for AI agents, inference, Retrieval Augmented Generation (RAG), and semantic search at billion-vector scale.
Amazon S3 Vectors provides the same elasticity, durability, and availability as Amazon S3, with subsecond latency for infrequent queries and as low as 100 milliseconds for more frequent queries.
The architecture works as follows:
- Send chat history to a large language model for intelligent summarization
- Extract the most important context from user-agent conversations
- Generate embeddings using models like Amazon Titan Embeddings
- Store embeddings in Amazon S3 Vectors with metadata (like user ID)
- Retrieve relevant context for future conversations using vector similarity search
Amazon S3 Vectors organizes data through vector buckets (top-level containers) and vector indexes (logical collections of related vectors within buckets). The service supports up to 50 metadata fields per vector, enabling powerful filtering capabilities.
The demo showcased a travel assistant with persistent memory. The agent:
- Stored user travel preferences (cultural sites, outdoor activities, local cuisine)
- Analyzed destination photos and videos
- Provided personalized recommendations based on stored preferences
- Remembered user context even after clearing the local conversation history
By using metadata filtering with user IDs, the agent retrieved the correct user's preferences from Amazon S3 Vectors, enabling truly personalized experiences.
Elizabeth shared an important learning: when creating tools, focus on describing capabilities rather than service names. The agent does not care that you are using "S3 Vector Store" - it needs to understand the tool can "save chat history for personalized recommendations." This prevents the LLM from getting distracted by service details.
Key Takeaways
Start simple - Build basic agents with minimal code, then add complexity as needed
Tools are just functions - Use the @tool decorator to expose any Python function as an agent tool
MCP for remote services - Use Model Context Protocol when tools run as remote services or need to be shared across agents
Choose the right memory solution - Local file storage for development, S3 Session Manager for production, Amazon S3 Vectors for personalized experiences
Model-driven design wins - Let the LLM decide execution strategies while you focus on business logic
Consider latency requirements - Amazon S3 Vectors offers cost-effectiveness and billion-vector scale but may have higher latency than specialized vector databases for high-frequency queries
Metadata is powerful - Use Amazon S3 Vectors metadata (up to 50 fields) for filtering and organizing user-specific information
Joy's advice resonates: "Simple things should be simple to build and deploy." Strands Agents SDK delivers on this promise, making production-ready multimodal AI agents accessible to developers.
Ready to build? Check out the Strands Agents SDK documentation at https://strandsagents.com/latest/documentation/docs/ and start with the examples from this session. The framework's open-source community continues growing, contributing pre-built tools and patterns for common use cases.
About This Series
This post is part of DEV Track Spotlight, a series highlighting the incredible sessions from the AWS re:Invent 2025 Developer Community (DEV) track.
The DEV track featured 60 unique sessions delivered by 93 speakers from the AWS Community - including AWS Heroes, AWS Community Builders, and AWS User Group Leaders - alongside speakers from AWS and Amazon. These sessions covered cutting-edge topics including:
- 🤖 GenAI & Agentic AI - Multi-agent systems, Strands Agents SDK, Amazon Bedrock
- 🛠️ Developer Tools - Kiro, Kiro CLI, Amazon Q Developer, AI-driven development
- 🔒 Security - AI agent security, container security, automated remediation
- 🏗️ Infrastructure - Serverless, containers, edge computing, observability
- ⚡ Modernization - Legacy app transformation, CI/CD, feature flags
- 📊 Data - Amazon Aurora DSQL, real-time processing, vector databases
Each post in this series dives deep into one session, sharing key insights, practical takeaways, and links to the full recordings. Whether you attended re:Invent or are catching up remotely, these sessions represent the best of our developer community sharing real code, real demos, and real learnings.
Follow along as we spotlight these amazing sessions and celebrate the speakers who made the DEV track what it was!
Top comments (0)