I've been diving into building AI agents, and I'm comfortable creating simple ones locally with tools like OpenAI Agent SDK and CrewAI. Now, I'm feeling a bit overwhelmed with the next steps for deploying an agent into production on AWS. It seems like I have three main options: 1) start from scratch using ECS, Lambda, API Gateway, etc., 2) use Bedrock Agents, or 3) go with Bedrock AgentCore. Am I correct in identifying these options? Which approach do you think is preferred in the community?
5 Answers
I really recommend going with Bedrock AgentCore for deploying to production on AWS. Bedrock Agents is the older method, and I'd suggest avoiding it unless you have a specific reason. From scratch can work too, but you'll have to set up a lot of things manually. Check out my video explanation here: [YouTube Video](https://www.youtube.com/shorts/MVoUy2msH_Q).
Consider learning Terraform as well! While it's great to experiment with AWS, deploying in production means you'll have to manage all the connectivity components like gateways and lambdas. Setting this all up from scratch can be overwhelming for your first deployment.
Managing agents can definitely spiral out of control quickly. If you're considering architectures, it might be worthwhile to look into a dedicated memory layer for your agents. Hindsight is a tool designed to help with memory management in production, and you can find it here: [GitHub Repo](https://github.com/vectorize-io/hindsight).
You're on the right track with those options. Even if you go 'from scratch', you'll mostly be using Bedrock APIs. The best approach really depends on what you need. If you're aiming to have your agent available through a web service, you'll need some kind of web server compute—like ECS or Lambda. In my experience, Bedrock Agents can be pretty rigid and might not justify the extra costs. If you make your own agents, tools, and setups, you'll have a lot more flexibility by accessing the Converse API directly. Just a heads up though, managing multiple agents can get tricky with AWS resources!
Those sound like solid options! We tried out demo agents with both Bedrock + AgentCore and Bedrock + Lambda, and both worked quite well. If you're interested, I can share our repo for Bedrock + AgentCore: [GitHub Repo](https://github.com/okahu-demos/aws-strands-agentcore) and for Bedrock + Lambda: [GitHub Repo](https://github.com/okahu-demos/chatbot-coffee-lambda). Our decision hinged on whether we needed memory features from AgentCore or were already using a Postgres database. We also tested CrewAI agents and found Strands fit better. Here's the example for that: [GitHub Repo](https://github.com/okahu-demos/crewai-travel-agent). Hope this helps!

Related Questions
Biggest Problem With Suno AI Audio
How to Build a Custom GPT Journalist That Posts Directly to WordPress