SuperAPI AI 工具集

scripted-runtime-notes

测试与质量

查看项目

更新于 10-16 06:41

技能介绍

用途:本资料是 SGLang 脚本化运行时(scripted runtime)的相关说明,面向测试与该运行时的开发维护场景。

何时新增 API:测试可直接读取 r.req.* 与 t._scheduler.*,二者之间没有封装边界,薄封装不带来隔离,只会扩大接口面。仅当 API 做实际工作时才新增:一是控制原语,通过真实路径驱动引擎(start_req、pause_generation、abort、evict_radix、exhaust_kv),应复用真实路径,绝不手动改状态;二是依赖钩子,值无法从快照读取,需通过 scheduler_hook.on_run_batch 或 recv 代理(chunks_done)累积,且只读,不 monkey-patch,不在 srt/ 中新增 *_count;三是多结构派生且被广泛复用,需扫描 chunked_req + waiting_queue + running_batch + last_batch(is_idle、status、batch_composition)。否则不要新增,直接在测试中读取 r.req.X / t._scheduler.X,单次使用的访问器内联即可。

禁止事项:不要为迁就缺失的探针而弱化断言;不要探测实现细节(如“字段非 None”“走了哪个分支”),应断言结果。

其它提示:引擎自驱动行为应驱动真实循环,而不是调用私有方法。绝不要从 harness/测试同步调用调度器私有方法(例如 scheduler._abort_on_waiting_timeout()),因为它运行在错误的循环阶段,绕过有序的 recv_requests → process_input_requests 注入,并可能在真实循环永不进入的状态下触发(例如暂停时)。对于引擎自行运行的扫描(超时/空闲),应启用配置或环境变量并用 yield 推进循环。

限制:资料未提供具体配置项、环境变量名称、代码示例与版本信息,暂未提供。