跳转到主要内容Benchmark 与 Recipe
QitOS 现在有意把三层分开。
1. Framework 层
这是可复用的内核:
AgentModule + Engine
DesktopEnv
ActionSpace
EnvironmentAdapter
- family presets
- qita replay 与 visual inspection
框架代码应保持 benchmark-agnostic。
2. Benchmark 层
这里放数据集专属适配:
qitos.benchmark.desktop:starter benchmark family
qitos.benchmark.osworld:真实 OSWorld adapter path
- benchmark-specific runtime
- benchmark-specific evaluator/scorer
- benchmark-native task metadata 与 artifact 处理
凡是 test_all.json、evaluator bridge、setup/postconfig、qcow2 boot input、benchmark-native scoring 这类内容,都应该放这里。
3. Recipe 层
Recipe 是可复现的 baseline method:
- canonical single-agent baseline
- benchmark baseline method
- multimodal starter method
现在 desktop baseline 已经下沉到:
/Users/morinop/coding/yoga_framework/qitos/recipes/desktop/osworld_starter.py
而公开 example:
/Users/morinop/coding/yoga_framework/examples/real/openai_cua_agent.py
只保留成一个很薄的入口包装。
同样的结构现在也已经扩展到:
qitos.recipes.benchmarks.gaia
qitos.recipes.benchmarks.tau_bench
qitos.recipes.benchmarks.cybench
为什么这个拆分重要
这个拆分解决了三个真实问题:
- benchmark runner 不再依赖 example 文件
- 同一个 baseline 可以被 example、docs 和 benchmark runner 共同复用
- 未来独立
qitos-recipes 时,几乎只需要迁移打包边界,不需要重构设计
这才是 research-first 框架该有的演进方式。
如果你要新增 benchmark family,下一步请直接看 第三方 Benchmark 接入规范。