Download openenv.yaml from Vishvam10/cloudenv: direct link, hf CLI and curl.
- Browser
- Download file 4.92 kB
-
https://huggingface.co/spaces/Vishvam10/cloudenv/resolve/main/openenv.yaml
- Command line
-
hf download hf://spaces/Vishvam10/cloudenv/openenv.yaml
-
curl -L -o openenv.yaml https://huggingface.co/spaces/Vishvam10/cloudenv/resolve/main/openenv.yaml
4.92 kB
| spec_version: 1 | |
| name: cloudenv | |
| display_name: "CloudEnv AWS Configuration Environment" | |
| description: > | |
| An RL environment where an AI agent configures AWS cloud infrastructure pipelines. | |
| The agent receives a broken pipeline and must issue AWS API actions (S3, SQS, Lambda, | |
| IAM, etc.) to restore it to a valid state. Tasks range from easy single-service fixes | |
| to hard multi-service orchestration with complex IAM policies. | |
| Rewards are shaped based on pipeline connection validity and step efficiency. | |
| type: space | |
| runtime: fastapi | |
| app: cloudenv.server.app:app | |
| port: 7860 | |
| tags: | |
| - openenv | |
| - aws | |
| - cloud-infrastructure | |
| - reinforcement-learning | |
| action_space: | |
| type: composite | |
| fields: | |
| - name: task_id | |
| type: string | |
| description: "Task identifier (maps to pipeline_id)" | |
| - name: episode_id | |
| type: string | |
| description: "Episode identifier" | |
| - name: service | |
| type: string | |
| values: | |
| [ | |
| s3, | |
| sqs, | |
| sns, | |
| dynamodb, | |
| lambda, | |
| iam, | |
| sts, | |
| secretsmanager, | |
| logs, | |
| events, | |
| kinesis, | |
| cloudwatch, | |
| ssm, | |
| stepfunctions, | |
| firehose, | |
| ec2, | |
| rds, | |
| elasticache, | |
| ecs, | |
| route53, | |
| apigateway, | |
| apigatewayv2, | |
| cognito-idp, | |
| cognito-identity, | |
| ses, | |
| sesv2, | |
| acm, | |
| wafv2, | |
| glue, | |
| athena, | |
| ] | |
| description: "AWS service to interact with (or internal for init)" | |
| - name: operation | |
| type: string | |
| description: > | |
| AWS API operation name (e.g. CreateBucket, PutBucketPolicy) or internal | |
| operations like InitializeEnvironment. | |
| - name: payload | |
| type: object | |
| description: "Arguments for the AWS API call" | |
| - name: instance_id | |
| type: string | |
| required: false | |
| description: "Specific instance of the AWS service (e.g. bucket name, queue URL)" | |
| - name: intent | |
| type: string | |
| required: false | |
| description: "Optional semantic intent describing the goal of this action" | |
| - name: principal_arn | |
| type: string | |
| required: false | |
| description: "IAM principal ARN performing the action (defaults to root)" | |
| observation_space: | |
| fields: | |
| - name: task_id | |
| type: string | |
| description: "Current task identifier" | |
| - name: episode_id | |
| type: string | |
| description: "Current episode identifier" | |
| - name: step_count | |
| type: integer | |
| description: "Number of steps taken so far in this episode" | |
| - name: operation_result | |
| type: object | |
| description: "Result of the last AWS API operation (service, operation, status, result/error)" | |
| - name: reward | |
| type: float | |
| description: "Reward received for the last action" | |
| - name: done | |
| type: boolean | |
| description: "Whether the episode is complete (pipeline fully restored)" | |
| - name: current_pipeline_state | |
| type: object | |
| description: "Current broken pipeline graph after the last action" | |
| reward: | |
| min: 0.0 | |
| max: 1.0 | |
| description: > | |
| Per-step reward is shaped by pipeline validity (0.7 * valid_ratio), | |
| improvement deltas (0.15 * combined_delta), and step efficiency | |
| (0.05 * step_factor). When all connections match the ideal pipeline, | |
| the environment returns reward=0.99 and done=true. Episode-level scoring | |
| is produced by cloudenv.server.graders.* (0.01-0.99). | |
| difficulties: | |
| - easy | |
| - medium | |
| - hard | |
| - all | |
| max_steps: 50 | |
| tasks: | |
| - id: easy-task-1 | |
| description: > | |
| Single-service S3 policy fix: a bucket policy denies s3:GetObject on a target | |
| bucket. Correct it to Allow so the pipeline validates. | |
| grader: cloudenv.server.graders.easy_grader | |
| - id: easy-task-2 | |
| description: > | |
| Lambda invoke fix: a lambda:func_a -> lambda:func_b edge denies | |
| lambda:InvokeFunction. Update IAM policy to Allow invocation. | |
| grader: cloudenv.server.graders.easy_grader | |
| - id: medium-task-1 | |
| description: > | |
| Multi-service chain: s3 -> lambda is valid, but lambda -> sqs denies | |
| sqs:SendMessage while lambda -> sns is already valid. Update the SQS policy | |
| (or IAM role) to allow SendMessage. | |
| grader: cloudenv.server.graders.medium_grader | |
| - id: hard-task-1 | |
| description: > | |
| S3 -> Lambda -> SQS pipeline with broken service_url configs and an SQS policy | |
| denying SendMessage. Fix the Lambda/SQS config URLs and attach an Allow | |
| SendMessage role policy. | |
| grader: cloudenv.server.graders.hard_grader | |
| - id: hard-task-2 | |
| description: > | |
| IAM role-policy mismatch with duplicate node configs. Normalize Lambda config | |
| (service_url/timeout/retry_attempts), normalize SQS config | |
| (service_url/visibility_timeout), and allow SendMessage/ReceiveMessage in IAM. | |
| grader: cloudenv.server.graders.hard_grader | |