CyberGym
QitOS integrates CyberGym as a benchmark family with a dedicated agent runtime underqitos/benchmark/cybergym/.
Current Integration Notes
The current integration is optimized for long-running PoC-generation tasks and keeps the benchmark-specific logic split across:qitos/benchmark/cybergym/runtime.pyqitos/benchmark/cybergym/runner.pyqitos/recipes/benchmarks/cybergym.pyqitos/benchmark/cybergym/agent/
Important Runtime Behavior
1. Task workspace layout
Single-task recipe runs now place prepared task files under:<out_dir>.
This keeps:
- benchmark-level files such as
run.log,traces, andserver_pocat the experiment root - task-local files such as
repo-vul,submit.sh,.cybergym, and generated PoCs inside the task workspace
2. Model transport defaults
OpenAI-compatible harness presets now default to:- request timeout:
120s - lightweight retry on transient request failures, including timeout cases
3. Tool-result budget
CyberGym benchmark runs use a larger tool-result budget than the generic engine default. The current CyberGym runner sets:READ and BASH outputs during exploit-development tasks.
Agent-Side Context Retention
The CyberGym agent keeps the full step chain and uses content-level compression rather than round deletion:- full step history is retained
- the newest 10 distinct steps remain raw
- the earliest 3 distinct steps remain raw
- older long tool results are moved into artifacts with preview metadata
Verification Focus
For public-server runs that only expose vulnerable-binary behavior:verification_scope == "vul_only"vul_exit_code != 0
Local Validation
The integration is covered by targeted tests around:- recipe workspace layout
- history retention and compaction
- model retry and timeout defaults
- runtime prompt/tool-path preservation
