Skip to main content

AWS Orchestrator Configuration

Complete configuration reference for deploying and running the AWS Orchestrator Agent. The recommended approach is Docker Compose, which bundles the Deep Agent backend with the TalkOps UI frontend.


No cloning required. Create two files and you're running.

1. Create docker-compose.yml​

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: Standard tier (fast, cheap — validator + routing) ──
- LLM_PROVIDER=google_genai
- LLM_MODEL=gemini-3.1-flash-lite-preview
- LLM_TEMPERATURE=0.0
- LLM_MAX_TOKENS=15000
# ── LLM: Higher tier (planner + supervisor) ──
- LLM_HIGHER_PROVIDER=google_genai
- LLM_HIGHER_MODEL=gemini-3.1-pro-preview
# ── LLM: Deep Agent tier (coordinator + generator) ──
- LLM_DEEPAGENT_PROVIDER=google_genai
- LLM_DEEPAGENT_MODEL=gemini-3.1-pro-preview
- LLM_DEEPAGENT_TEMPERATURE=1.0
- LLM_DEEPAGENT_MAX_TOKENS=25000
- LOG_LEVEL=INFO
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

2. Create .env​

GOOGLE_API_KEY=your_google_api_key_here
GITHUB_PERSONAL_ACCESS_TOKEN=your_github_pat_here
Using a different LLM provider?

Change the LLM_PROVIDER and LLM_MODEL values in the compose file. Replace GOOGLE_API_KEY with OPENAI_API_KEY or ANTHROPIC_API_KEY in your .env. See Environment Variables for all supported providers.

3. Start everything​

docker compose up -d

# AWS Orchestrator running at http://localhost:10104
# TalkOps UI running at http://localhost:8080

Open http://localhost:8080 and start talking to the orchestrator.


From Source (Development)​

For development, contribution, or customization:

Prerequisites​

  • Python 3.12+
  • uv for dependency management
  • Terraform CLI (for sandbox validation)

Installation​

git clone https://github.com/talkops-ai/aws-orchestrator-agent.git
cd aws-orchestrator-agent

# Create virtual environment with Python 3.12
uv venv --python=3.12
source .venv/bin/activate # On Unix/macOS
# .venv\Scripts\activate # On Windows

# Install dependencies
uv pip install -e .

# Configure environment
cp .env.example .env
# Edit .env — at minimum set your LLM API key

Start the A2A server​

aws-orchestrator --host localhost --port 10104

Connect a UI client​

Pull and run the TalkOps UI:

docker run -d \
--name talkops-ui \
-p 8080:80 \
talkopsai/talkops:0.2.0

Then open http://localhost:8080 in your browser.


Environment Variables​

Core & MCP​

VariableRequiredDefaultDescription
GOOGLE_API_KEYYes (if using Gemini)—Google Gemini API key
OPENAI_API_KEYYes (if using OpenAI)—OpenAI API key
ANTHROPIC_API_KEYYes (if using Anthropic)—Anthropic API key
GITHUB_PERSONAL_ACCESS_TOKENRecommended—GitHub PAT with repo scope (for commit support)
GITHUB_MCP_URLRecommendedhttps://api.githubcopilot.com/mcpGitHub MCP server endpoint
TERRAFORM_WORKSPACENo./workspace/terraform_modulesPath where generated modules are written
ENVIRONMENTNodevelopmentdevelopment or production

Three-Tier LLM Architecture​

The Orchestrator splits LLM usage across three tiers to balance cost, speed, and cognitive depth:

Tier 1: Standard (fast, cheap)​

Used by: Validator, routing logic

VariableDefaultDescription
LLM_PROVIDERgoogle_genaiLLM provider: google_genai, openai, anthropic, azure
LLM_MODELgemini-3.1-flash-lite-previewModel name
LLM_TEMPERATURE0.0Temperature (deterministic for validation)
LLM_MAX_TOKENS15000Max output tokens

Tier 2: Higher (better reasoning)​

Used by: Planner, Supervisor

VariableDefaultDescription
LLM_HIGHER_PROVIDERgoogle_genaiLLM provider
LLM_HIGHER_MODELgemini-3.1-pro-previewModel name
LLM_HIGHER_TEMPERATURE0.0Temperature
LLM_HIGHER_MAX_TOKENS15000Max output tokens

Tier 3: Deep Agent (full capability)​

Used by: Coordinator, Generator

VariableDefaultDescription
LLM_DEEPAGENT_PROVIDERgoogle_genaiLLM provider
LLM_DEEPAGENT_MODELgemini-3.1-pro-previewModel name
LLM_DEEPAGENT_TEMPERATURE1.0Temperature (creative for code generation)
LLM_DEEPAGENT_MAX_TOKENS25000Max output tokens
Why Temperature 1.0 for the Deep Agent?

The generator needs creative latitude to produce diverse, well-structured Terraform code. Lower temperatures lead to repetitive, formulaic output. The skill blueprint constrains the generator's output to be correct — temperature just gives it stylistic freedom.

AWS & Terraform Context​

These optional variables are picked up by the coordinator's build_context() and injected into the session context:

VariableDefaultDescription
AWS_ACCOUNT_ID—AWS account ID (for resource ARN generation)
AWS_REGIONus-east-1Default AWS region
AWS_PROFILE—AWS CLI profile name
TF_VERSION_CONSTRAINT>= 1.9.0, < 2.0.0Terraform version constraint
AWS_PROVIDER_VERSION>= 5.40.0AWS provider version constraint
TF_BACKEND_TYPEs3Terraform state backend type
TF_STATE_BUCKET—S3 bucket for Terraform state

Organization & Governance​

VariableDefaultDescription
ORG_NAME—Organization name (for tagging and naming)
MODULE_PREFIX—Prefix for module names
REQUIRE_APPROVALtrueWhether HITL approval gates are enforced

Middleware Limits​

VariableDefaultDescription
TF_WRITE_FILE_RUN_LIMIT20Max write_file calls per run
TF_GLOBAL_TOOL_RUN_LIMIT60Max total tool calls per run
TF_MODEL_CALL_RUN_LIMIT40Max LLM calls per run
TF_ENABLE_TOOL_RETRYfalseEnable auto-retry for transient tool failures

Customizing Agent Policies​

HITL Policies​

Edit memory/hitl-policies.md to customize when the agent pauses for human input. The coordinator reads this file at the start of every session.

# Example: Add a custom mandatory gate
### 6. Production Namespace Guard
- **When:** Module targets a production environment
- **Purpose:** Extra sign-off before generating prod-grade infrastructure
- **Never skip:** Always require approval for production targets

Organization Standards​

Edit memory/org-standards.md to define your team's Terraform conventions:

# Example: Organization standards
- All resources must have `Environment`, `Team`, and `CostCenter` tags
- Module names follow: `{org}-{service}-{environment}`
- Always use `us-east-1` as primary region
- KMS encryption required for all storage services

Module Index​

The memory/module-index.md file is automatically maintained by the agent after every successful GitHub commit. It records where modules live so the update workflow can find them:

| Module | Repository | Path |
|--------|-----------|------|
| vpc | acme/infra-modules | /modules/networking/vpc |
| s3 | acme/infra-modules | /modules/storage/s3 |