Inspiration
Many times we're buried in work and don't have time to cook or find a meal that fits our diet, or maybe we're traveling, don't know the area, and are working with a tight budget. Budget Food Agent came from that need: being able to keep going with our day while delegating that search to an agent.
What it does
BudgetFoodAgent coordinates autonomous meal planning using modular tools, hooks, and verification steering:
split_budget: Deterministically divides the user's budget across meals (e.g. lunch and dinner), absorbing rounding residuals to ensure exact sums down to the cent.
find_nearby_places: Discovers food venues using the Google Places API and filters out any venue exceeding a 10-minute walk using Google Maps travel-time calculations.
read_web_menu: Retrieves restaurant web pages (using Serper search as a fallback when needed).
log_result: Persists audit entries to DynamoDB (recommendations and places-registry tables) for transparency and verification.
How we built it
We built with Strands Agents, Google Vertex AI Gemini, Python, and HTML/Vanilla JS/Cognito SDK. We also used several AWS integrations like Cognito, S3, and DynamoDB, and hosted everything on AWS. Initially we wanted to use Bedrock models and Agent Runtime, but a limitation on our account made us pivot to the infrastructure mentioned above.
Challenges we ran into
The first one came during research: we realized major delivery companies are already working on agent integrations across different areas. DoorDash launched grocery shopping inside ChatGPT together with OpenAI in December 2025. Instacart already has full checkout via ChatGPT with over 1,800 merchants, while Uber Eats hasn't announced any AI agent integrations yet. There were other implementations as well.
While we know that limits the scope of our project, we wanted to take a different approach: being able to plan several meals a day, or even a whole week, adjusted to our nutritional goals and budget limit.
On top of that, when we did our first deployment we found that our "free-tier" account didn't have the services we needed enabled by default, which forced me to pivot quickly and migrate to the services we ended up using.
Accomplishments that we're proud of
Pivoting our infrastructure quickly and still ending up with a working project. Integrating Strands Agents with tools from other platforms was a big part of that: even though our demo only shows a slice of what our agent can actually do, I think it captures the use case and capabilities of Strands Agents in a way that's simple and easy to understand.
What we learned
How to use Strands Agents with Amazon services as well as external services without losing functionality. Thanks to Sandy for showing us how to get more deterministic results by combining Hooks, Loops, Plugins, and so on.
What's next for Budget Food Agent
Honestly, we need to keep an eye on how development and integrations evolve among the main players in the space, DoorDash, Uber Eats, Grubhub, and others, and steer the agent's growth toward directions that deliver more value and differentiation for the end user.
One path that seems worth exploring is finding a better way to index information from restaurants that don't have their information online, and feeding that into our agent's context so users have better information to make decisions. In this demo we relied on Google Places data, and not every restaurant had a website or a menu included in their listing.
Built With
- amazon-web-services
- html
- python
- strands-agents
Log in or sign up for Devpost to join the conversation.