Files
PolyLoop/tools/soak/scenarios/__init__.py
T
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

11 lines
674 B
Python
Raw 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.
"""压测场景:把某一个具体 benchmark 接到 PolyLoop 的公共接缝上。
一个「场景」要交的东西是固定的四样:一个决策解释器(模型输出 → 动作)、一个动作执行器
(动作 → 观察)、一份上下文(提示词装配成消息序列)、以及一份装好的 `RunRequest`。压测
的驱动侧只认这四样,换一个 benchmark 就是换一个本包下的模块。
**这一层允许知道 benchmark 的领域细节**`src/polyloop/` 不允许(CLAUDE.md §1.1)。库里
一个业务词都不能有,而「AppWorld 的动作是一段 Python 代码」这种话必须写在某个地方,写在
这里。
"""