Inspiration

I wasn't struck by a bolt of epiphany or anything like that. It was just one part of curiosity and two part of cool factor. I just thought to myself, "How well can an AI make another AI?"

What it does

AutoNinja is a meta-agent system that autonomously generates production-ready AI agents from natural language descriptions. Using AWS Bedrock's native multi-agent collaboration, it orchestrates 6 specialized Bedrock Agents (1 supervisor + 5 collaborators) to transform a simple request like "Build a friend agent" into a fully deployed, functional Bedrock Agent complete with Lambda functions, CloudFormation infrastructure, OpenAPI schemas, system prompts, and comprehensive documentation. The system features complete auditability with every prompt and response logged to DynamoDB, all artifacts saved to S3, and full observability through CloudWatch and X-Ray. It reduces agent development time from days to minutes while maintaining production-grade quality, security, and AWS best practices.

How we built it

Autoninja was built using Kiro, Claude and AWS SDK Python. Kiro's spec mode was instrumental in structural the project and implementing AWS Bedrock's native multi-agent collaboration framework with a supervisor-collaborator pattern. The Supervisor Agent (configured with AgentCollaboration: SUPERVISOR) orchestrates five specialized collaborator agents: Requirements Analyst extracts structured specifications, Code Generator produces Lambda handlers and agent configurations, Solution Architect designs AWS infrastructure and generates CloudFormation templates, Quality Validator scans for security and compliance issues, and Deployment Manager deploys the complete stack to AWS. Each collaborator uses Claude Sonnet 4.5 for reasoning and has Lambda-backed action groups defined via OpenAPI schemas. We integrated AgentCore Memory for cross-job learning and AgentCore Runtime for extended execution sessions. The entire infrastructure is deployed via nested CloudFormation stacks (1 main + 8 nested), with a shared Lambda Layer containing DynamoDB and S3 clients for persistence. We implemented distributed rate limiting using DynamoDB to prevent throttling, and comprehensive observability using CloudWatch Logs, X-Ray tracing, and custom metrics.

Challenges we ran into

Vibe coding caused lots of headache. Eventually, I learned how to utilize hooks and steering to acquire the behavior I wanted. Like a two sided blade, the orchestration and configuration of the bedrock agent has proved to be a challenge. However, the available features makes a super agent.

Accomplishments that we're proud of

I'm particularly proud of all the new knowledge I was able to gain. It wasn't easy but it was very rewarding. We are standing on the edge of what's to be. AI is already causing a paradigm shift and we're at the front seat. Which is pretty exciting.

What we learned

Like drive and fixing cars. Using AI is cool but configuring AI at the nuts-and-bolts level, provides a deeper appreciation of all the components involved to make an operable agent.

What's next for AutoNinja

We would like to further improve and optimize by making autoninja truly agentic by fully utilizing all of Bedrock's features.

Built With

  • amazon-bedrock
  • amazon-bedrock-agentcore
  • amazon-bedrock-agents
  • amazon-web-services
  • anthropic-claude
  • bash
  • boto3
  • cloudformation
  • cloudwatch
  • dynamodb
  • git
  • github
  • graphviz
  • iam
  • json
  • lambda
  • mermaid
  • moto
  • openapi
  • pytest
  • python
  • rest-api
  • s3
  • serverless
  • x-ray
  • yaml
Share this project:

Updates