cannon-and-wall / openenv.yaml
CystronCode's picture
feat: GRPO training, fixed curriculum stages 2+3, AST verifier, leaderboard UI, openenv schema
da648a3
Raw
History Blame Contribute Delete
1.45 kB
name: cannon-and-wall
version: 1.1.0
author: Jairaj S
theme: self-improvement+multi-agent
description: >
A Red vs Blue adversarial RL environment for training LLMs on cybersecurity reasoning.
Two agents (Cannon = attacker, Wall = defender) compete across escalating curriculum
stages of a seeded Flask app with OWASP Top 3 vulnerabilities. Rewards are fully
deterministic — no LLM-as-judge.
base_class: Environment
entry: environment/server.py
client: client/client.py
port: 7860
tags:
- security
- red-team
- self-play
- rl
action_space:
cannon:
type: object
properties:
agent: {type: string, const: cannon}
vuln_type: {type: string, enum: [sqli, xss, broken_auth]}
line_number: {type: integer}
explanation: {type: string}
proof_of_concept: {type: string}
wall:
type: object
properties:
agent: {type: string, const: wall}
patched_code: {type: string}
explanation: {type: string}
observation_space:
type: object
properties:
source_code: {type: string, description: "Full Flask app source for the current stage"}
round: {type: integer, description: "Current round number (1-3)"}
stage: {type: integer, description: "Curriculum stage (1-3)"}
scores:
type: object
properties:
cannon: {type: number}
wall: {type: number}
last_cannon_report: {type: [object, "null"]}