Multi-agent system to research, generate, and validate AWS Terraform modules.
329
A multi-agent system that researches, generates, validates, and commits production-ready Terraform modules for AWS — through conversation.
Writing Terraform modules isn't the hard part. Writing them well is. AWS Orchestrator takes a different approach: you describe what you need in plain language, and a coordinated team of AI agents handles the research, generation, validation, and delivery.
It evaluates CIS benchmarks, queries the Terraform registry via MCP for the latest provider docs, generates the .tf files in a local sandbox, validates them, and commits them to your GitHub repository.
main.tf, variables.tf, outputs.tf, versions.tf, locals.tf, and README.md.terraform init, fmt, and validate inside the container.The quickest way to run the AWS Orchestrator Agent is via docker run. You must provide an LLM API key (Google Gemini is the default).
docker run -d \
--name aws-orchestrator \
-p 10104:10104 \
-e GOOGLE_API_KEY=your_gemini_api_key_here \
-e GITHUB_PERSONAL_ACCESS_TOKEN=your_github_pat_here \
-v ./workspace:/app/workspace \
talkopsai/aws-orchestrator-agent:latest
This will start the agent API running on http://localhost:10104.
Note: To interact with the agent, we highly recommend running the web UI alongside it using Docker Compose.
Running the agent alongside the TalkOps UI gives you rich interactive components, streaming deployment gates, and approval cards.
Create a docker-compose.yml file:
services:
aws-orchestrator-agent:
image: talkopsai/aws-orchestrator-agent:latest
container_name: aws-orchestrator-agent
ports:
- "10104:10104"
environment:
- GOOGLE_API_KEY=${GOOGLE_API_KEY}
- GITHUB_PERSONAL_ACCESS_TOKEN=${GITHUB_PERSONAL_ACCESS_TOKEN}
- GITHUB_MCP_URL=https://api.githubcopilot.com/mcp
- TERRAFORM_WORKSPACE=./workspace/terraform_modules
- ENVIRONMENT=production
# LLM Config (Gemini used by default)
- LLM_PROVIDER=google_genai
- LLM_MODEL=gemini-3.1-flash-lite-preview
- LLM_HIGHER_MODEL=gemini-3.1-pro-preview
- LLM_DEEPAGENT_MODEL=gemini-3.1-pro-preview
volumes:
- ./workspace:/app/workspace
restart: unless-stopped
networks:
- aws-orchestrator-net
talkops-ui:
image: talkopsai/talkops:0.2.0
container_name: talkops-ui
ports:
- "8080:80"
depends_on:
- aws-orchestrator-agent
restart: unless-stopped
networks:
- aws-orchestrator-net
networks:
aws-orchestrator-net:
driver: bridge
Then run:
GOOGLE_API_KEY=your_key GITHUB_PERSONAL_ACCESS_TOKEN=your_token docker compose up -d
You can now access the UI at http://localhost:8080.
| Variable | Description | Example / Default |
|---|---|---|
GOOGLE_API_KEY | Your Google API Key (if using Gemini) | AIzaSy... |
OPENAI_API_KEY | Your OpenAI API Key (if using OpenAI) | sk-... |
ANNOTHR_API_KEY | Your Anthropic API Key (if using Anthropic) | sk-ant-... |
GITHUB_PERSONAL_ACCESS_TOKEN | A GitHub PAT with repo scope for commits | ghp_... |
LLM_PROVIDER | The LLM provider to use | google_genai, openai, anthropic |
TERRAFORM_WORKSPACE | Path where generated modules are saved | ./workspace/terraform_modules |
LOG_LEVEL | Application logging level | INFO, DEBUG |
If you want to keep the generated Terraform modules locally on your host machine to inspect them outside the container, you should mount a volume to /app/workspace:
-v ./my-local-workspace:/app/workspace
Inside the container, the default generated path for the files is /app/workspace/terraform_modules/<service>.
Content type
Image
Digest
sha256:f0cb10667…
Size
274.3 MB
Last updated
6 months ago
docker pull talkopsai/aws-orchestrator-agent