Skip to content

Refactor/harness role packages - #8

Merged
xxxyxun merged 3 commits into
AI45Lab:mainfrom
xxxyxun:refactor/harness-role-packages
Oct 28, 2026
Merged

xxxyxun merged 3 commits into
AI45Lab:mainfrom
xxxyxun:refactor/harness-role-packages

Conversation

@xxxyxun

@xxxyxun xxxyxun commented Oct 27, 2026

Copy link
Copy Markdown
Collaborator

目的

将 src/tandem 下平铺的模块按职责分类,方便后续开发和替换组件。本次只做结构整理,不引入新的执行策略。

改动内容

  • 将模块整理到 runtime、planning、gui、models、verification,保留 protocol 原有结构。
  • 根目录保留包入口、配置和组件装配。
  • 将 Ranking、build_choice_requests、ranking_dict 提取到 models/ranking.py,供 JEV/Kev 共用。
  • 同步更新 tandem_eval/entry.py、runner.py 及测试中的导入和 mock 路径。
  • 新增 step/stage × JEV/Kev 四种组合的组件装配测试。
  • 更新 pyproject.toml 中四个文件的 Ruff 路径配置,不新增豁免规则。
  • 更新 README、AGENTS、DEVIATIONS,以及集群和阶段执行文档。
  • 模块行数规范调整为尽量不超过 300 行,硬上限 500 行。

兼容性与范围

Python 导入路径发生变化,不保留旧路径兼容壳,例如:

  • tandem.session → tandem.runtime.session
  • tandem.providers → tandem.models.slow
  • tandem.selector → tandem.models.jev
  • Ranking 从 tandem.models.ranking 导入

CLI 命令、配置字段、消息协议、结果目录契约保持不变。
未修改 prompt、候选构造逻辑、排序策略、重试策略、环境执行或评分逻辑。
未新增运行时依赖,未修改共享 VM 或冻结环境。

验证

  • Ruff:通过。
  • pytest:259 个测试通过。
  • 协议自检:16 个样例通过。

真实 GUI smoke:

测试 实际执行 官方分数 结论
OSWorld1 step,qz Kimi + JEV 2 个 GUI 动作、1 次中间 Verify 1.0 执行与评分链路通过
OSWorld2 step,MiniMax + JEV 2 个 GUI 动作、1 次中间 Verify 0.0 按步数上限正常结束并出分
OSWorld2 stage 0 个动作 0.0 同名菜单目标绑定失败,未通过

两个 step 测试均确认 JEV 收到截图,已核验的执行回执正常。
上述为短程 smoke,不是完整任务集的准确率或性能回归。

原始记录位于共享存储,需相应访问权限:
/mnt/shared-storage-gpfs2/evobox-share-gpfs2/xuyuanxun/tandem_refactor_smoke_20261027_2143/rjob_logs/smoke_summary.json

Move existing harness modules into role-based packages and extract shared ranking helpers. Update consumers, tests and developer documentation for the new import paths.

Validation: Ruff, 259 unit tests, 16 protocol samples, and real OSWorld1/OSWorld2 step-mode GUI smoke runs. Existing grounding, stage target ambiguity and rjob watcher limitations remain unchanged.

@two-tiger two-tiger left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@xxxyxun
xxxyxun merged commit e606af3 into AI45Lab:main Oct 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants