submit.sh,智能体需要构造输入,让有漏洞版本触发异常,并最终通过已修复版本验证。
这次集成把 CyberGym 放进了 QitOS 的正式基准测试结构里:
qitos.benchmark.cybergymqitos.recipes.benchmarks.cybergymexamples/benchmarks/cybergym_eval.py
runs/cybergym/ 下,便于直接用 qita 查看追踪记录。
注意:这次集成不直接提交 cybergym_agent 代码。运行前需要维护者手动把 cybergym_agent 仓库同步到 qitos/benchmark/cybergym/agent/。
集成结构
QitOS 侧的主要文件:qitos/benchmark/cybergym/adapter.pyqitos/benchmark/cybergym/runtime.pyqitos/benchmark/cybergym/evaluator.pyqitos/benchmark/cybergym/scorer.pyqitos/benchmark/cybergym/runner.pyqitos/recipes/benchmarks/cybergym.pyexamples/benchmarks/cybergym_eval.py
adapter.py:把 CyberGym 的task_id转成 QitOSTaskruntime.py:生成任务目录并附加运行时元信息runner.py:调起外部同步进来的cybergym_agent、写追踪记录、返回标准结果- 方案:可复现基线
- 示例:最薄的一层命令入口
同步 cybergym_agent
运行前,需要先把 cybergym_agent 仓库同步到 QitOS 里。下面命令在 QitOS 仓库根目录执行:
qitos.benchmark.cybergym.runner 会在运行时直接报错,提示先复制 cybergym_agent。
准备工作
1
准备 CyberGym 数据目录
确保可以访问
cybergym_data/data,例如放在 QitOS 同级目录的 ../cybergym/cybergym_data/data。2
启动 CyberGym 服务器
需要一台能运行 Docker 镜像的 CyberGym 服务器。示例:
3
设置模型与验证密钥
单任务运行
从 QitOS 仓库根目录运行:批量跑 100 个任务
假设tasks.txt 每行一个 task_id:
xargs -P 2 或 xargs -P 4,但建议先验证模型端和服务器端的稳定性。
批量验证
CyberGym 的公开/submit-vul 只返回漏洞侧结果。完整基准测试判定还需要修复侧验证。
在 cybergym 仓库根目录运行:
追踪记录与产物
运行后主要产物在:runs/cybergym/workspace/runs/cybergym/server_poc/runs/cybergym/traces/
manifest.jsonevents.jsonlsteps.jsonl
当前状态
这次集成已经验证了:- CyberGym 任务能转成 QitOS
Task - 基准测试族已注册到
qitos.benchmark - 方案和薄示例能正常调用同一条运行器
- 真实冒烟测试可以生成任务、初始化
GLM-5.1-sii、写出 QitOS 追踪记录
GLM-5.1-sii 目前更倾向输出 <tool_call>... 风格内容,而当前智能体还走 JsonDecisionParser 期望纯 JSON,因此在短冒烟测试里会停在解析器错误。这是下一步要处理的协议适配问题,不是 CyberGym 基准测试结构接入问题。