Files
iomgaa 21a9a30ee9 feat(soak): AppWorld 场景适配器——代码围栏解释器与容器执行器
复刻 dissect 的动作协议当压测负载:两条正则、first_only 策略、五条纠错说明逐字照抄,
提示词模板连同出处一起收进 tools/soak/prompts/。有两处刻意不同,都写在代码注释里——
未闭合围栏那一支不补回三反引号(公共契约要求回填历史的文本不长于模型原文),空围栏
那一支不截断。

执行器在 execute 内部顺带问一次 is_done 填 env_reported_completion,并把环境自己数的
执行次数透出来。那个数字是故障注入的判据来源:验「声明绝不重放的动作没有被执行两次」
必须数环境侧,数库自己的计数器等于我们和我们自己对账。

端到端真跑过一道题(82e2fac_1):8 步 task_completed,环境判分通过,事件数与步数与
环境执行次数三者相等,耗时 30 秒。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-11 08:16:31 -04:00

15 lines
710 B
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""压测 harness 自己的测试。
**它不进 `make ci`**`pyproject.toml` 的 `testpaths` 只收 `tests/`,那一套守的是库的公共
承诺,而这里守的是压测工具。跑法是显式给路径::
PYTHONUNBUFFERED=1 conda run --live-stream -n PolyLoop \\
python -m pytest tools/soak/tests/ -p no:cacheprovider -q
分开是刻意的:压测工具坏了只影响我们自己,不该让库的 CI 变红;反过来,库的 CI 也不该因为
压测这边加了个依赖就装不上。
这里的测试全都不起容器、不打模型——环境层与场景层的接缝上用的是假对象。真起容器那条路是
`tools/soak/check_appworld.py`,它单独手动跑。
"""