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>
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
"""压测 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`,它单独手动跑。
|
||||
"""
|
||||
Reference in New Issue
Block a user