从一个 hook 调用走到返回结果
这一章跟随“加载 hook → 调用 → 判断返回对象 → 必要时 await → 接纳结果”,然后再看 trace 装饰器如何决定包装函数形状。重点是:函数定义、调用返回的对象和注解提供不同证据,不能互相替代。
isawaitable 检查已经得到的对象
slime/rollout/sample_hooks.py 的 _apply_to_sample() 先加载 hook,执行 result = hook(...),然后 inspect.isawaitable(result)。若为真才 result = await result,最后检查结果类型。这样同一扩展点可接收同步函数、协程函数,也可接收“普通函数返回可等待对象”的实现。
isawaitable 只判断对象能否用于 await,不启动它,不等它结束,也不保证业务结果类型正确。同步 hook 的函数体在调用那一行立即执行;如果它做长时间阻塞 I/O,这个检查不能把阻塞变成异步。
展开固定源码:hook 的真实返回值检查
_accepted_kwargs / _apply_to_sampleslime/rollout/sample_hooks.py · L30–L49
快照 2f2318653f6f794dddd321eff7c9d4b7b174643f· 查看固定版本源码
def _accepted_kwargs(function, kwargs: dict[str, Any]) -> dict[str, Any]:
signature = inspect.signature(function)
if any(parameter.kind == inspect.Parameter.VAR_KEYWORD for parameter in signature.parameters.values()):
return kwargs
return {key: value for key, value in kwargs.items() if key in signature.parameters}
async def _apply_to_sample(args, sample: Sample, paths: list[str], **kwargs) -> Sample:
for path in paths:
hook = load_function(path)
result = hook(args, sample, **_accepted_kwargs(hook, kwargs))
if inspect.isawaitable(result):
result = await result
if result is not None:
if not isinstance(result, Sample):
raise TypeError(
f"Rollout sample hook {path!r} returned {type(result).__name__}, expected Sample or None."
)
sample = result
return sampleiscoroutinefunction 在调用前决定 wrapper 形状
trace_function() 在装饰时用 inspect.iscoroutinefunction(fn):协程函数走 async_wrapper,在 trace 范围内 await fn(...);同步函数走 sync_wrapper,在 trace 范围内直接 fn(...)。它检查的是函数,和前面检查返回对象的时机不同。
| 传入实现 | iscoroutinefunction(fn) | 调用后的对象 | 合适的后续动作 |
|---|---|---|---|
普通 def 返回整数 | 假 | 整数,isawaitable 为假 | 直接读取 |
async def 返回整数 | 真 | 协程对象,isawaitable 为真 | await 后才取得整数 |
普通 def 返回另一个函数的协程对象 | 通常为假 | 协程对象,isawaitable 为真 | 对返回对象 await |
Python 3.12 的函数检查还识别 functools.partial 包装的协程函数,以及显式标记的同步函数;所以“通常为假”描述的是本实验中未标记的普通函数。不要把对少数定义形式的检查扩张成“所有异步行为均能提前识别”。
这个差异也影响 trace 边界:如果同步分支返回一个尚未执行的协程,with trace_span 在返回该对象时已经退出;以后别处才 await 的执行不自动仍处于同一个 span。Slime 的同步 wrapper 本身没有追加 isawaitable 适配,不能把 hook 的能力推到装饰器上。
展开固定源码:异步和同步 wrapper 的分支
trace_functionslime/observability/trace_utils.py · L451–L496
快照 2f2318653f6f794dddd321eff7c9d4b7b174643f· 查看固定版本源码
def trace_function(
name: str,
*,
target: str | None = None,
target_getter: Callable[..., Sample | TraceHandle | list[Sample | TraceHandle] | None] | None = None,
attrs_getter: Callable[..., dict[str, Any] | None] | None = None,
record_error: bool = True,
):
def decorator(fn):
if inspect.iscoroutinefunction(fn):
@functools.wraps(fn)
async def async_wrapper(*args, **kwargs):
resolved_target = _resolve_trace_function_target(
fn,
args,
kwargs,
target=target,
target_getter=target_getter,
)
if resolved_target is None:
return await fn(*args, **kwargs)
attrs = _resolve_trace_function_attrs(fn, args, kwargs, attrs_getter=attrs_getter)
with trace_span(resolved_target, name, attrs=attrs, record_error=record_error):
return await fn(*args, **kwargs)
return async_wrapper
@functools.wraps(fn)
def sync_wrapper(*args, **kwargs):
resolved_target = _resolve_trace_function_target(
fn,
args,
kwargs,
target=target,
target_getter=target_getter,
)
if resolved_target is None:
return fn(*args, **kwargs)
attrs = _resolve_trace_function_attrs(fn, args, kwargs, attrs_getter=attrs_getter)
with trace_span(resolved_target, name, attrs=attrs, record_error=record_error):
return fn(*args, **kwargs)
return sync_wrapper
return decoratorAwaitable 与 AsyncIterator 描述契约,不安排执行
collections.abc.Awaitable[T] 表示 await 后能取得 T 的对象;collections.abc.AsyncIterator[T] 表示可以异步逐项取得 T 的迭代器。它们可以用于注解,也作为抽象基类描述协议;写一条注解不创建 Task、不自动 await,也不在运行时验证返回值。
真实源码 _run_request_abortable_generate(..., generate_call: Awaitable[Sample | list[Sample]]) 接收已经创建的可等待对象,在函数体内显式 await generate_call。boot_agent_sandbox(...) -> AsyncIterator[E2BSandbox] 的注解则配合其含 yield 的异步生成器实现,再由 @asynccontextmanager 变成异步上下文管理器入口。不能仅靠 -> AsyncIterator[...] 断言某函数一定启动了迭代。
async def f() -> int 中 int 描述 await 后的值;调用 f() 先拿到协程对象。这和参数注解 value: Awaitable[int] 描述的输入层次不同。
展开固定源码:等待对象参数与沙箱生成器注解
_run_request_abortable_generateslime/rollout/sglang_rollout.py · L258–L274
快照 2f2318653f6f794dddd321eff7c9d4b7b174643f· 查看固定版本源码
async def _run_request_abortable_generate(
state: GenerateState,
sample: Sample,
generate_call: Awaitable[Sample | list[Sample]],
) -> Sample | list[Sample]:
task = asyncio.current_task()
assert task is not None
state.cancellable_tasks.add(task)
try:
return await generate_call
except asyncio.CancelledError:
if task in state.cancellable_tasks:
raise
sample.status = Sample.Status.ABORTED
return sample
finally:
state.cancellable_tasks.discard(task)boot_agent_sandbox signatureexamples/coding_agent_rl/generate.py · L95–L103
快照 2f2318653f6f794dddd321eff7c9d4b7b174643f· 查看固定版本源码
@asynccontextmanager
async def boot_agent_sandbox(image: str, instance_id: str) -> AsyncIterator[E2BSandbox]:
"""Boot a fresh E2B sandbox and install the selected harness toolchain.
Create the sandbox from the dataset image, install Node 22 + the harness CLI
from host tarballs, retry transient boot/install failures, and close the
sandbox when the caller leaves the context.
"""
sb = Noneboot_agent_sandbox resource cleanupexamples/coding_agent_rl/generate.py · L128–L134
快照 2f2318653f6f794dddd321eff7c9d4b7b174643f· 查看固定版本源码
if sb is None:
assert last_err is not None
raise last_err
try:
yield sb
finally:
await sb.__aexit__(None, None, None)语法会进入哪些特殊方法
第 10 节读过使用方式,现在展开协议入口。协议要求返回的对象具备相应行为;不是在任意普通方法名前添加 async 就能满足。
| 语法/协议方法 | 输入与输出 | 结束和异常 |
|---|---|---|
async with resource as value → __aenter__() | 返回可等待对象;await 之后的值绑定到 value | 进入成功后,退出时才由语法调用 __aexit__ |
__aexit__(exc_type, exc_value, traceback) | 接收退出时异常信息,正常退出三个值为 None;返回值也被 await | 结果为真可抑制异常;返回假或 None 让原异常传播 |
async for value in source → __aiter__() | 普通方法,直接返回异步迭代器 | Python 3.12 不接受它返回待 await 的协程 |
每次取项 → __anext__() | 返回可等待对象,await 后得到下一项 | 用 StopAsyncIteration 表达结束,其他异常传播 |
没有任何一行语法自动把每次迭代变成并发 Task;循环体依然一项处理完再取下一项。实验 SampleStream 是独立的语言演示,不冒充 Slime 内部类。__aexit__ 返回假,保留错误;__anext__ 产出两项后停止。
break 结束消费,不等于资源已就地关闭
含 yield 的 async def 是异步生成器函数,调用后得到异步生成器,不是普通协程。每次恢复取到一个产出;自然耗尽以 StopAsyncIteration 结束。不要在异步生成器中用 return value 返回最终值,也不要自己抛 StopAsyncIteration 代替正常结束。
消费方提前 break 时,应把需要的清理边界写清楚。await generator.aclose() 让生成器执行退出流程,包括已经进入的 try/finally;contextlib.aclosing(generator) 把它绑定到 async with 的退出点。这比依赖垃圾回收时间或事件循环的最终兜底更明确。第 13 节 loop.shutdown_asyncgens() 是手动 loop 的兜底,不替代资源使用点的关闭。
Slime 的沙箱生成器在 yield sb 外围用 finally: await sb.__aexit__(None, None, None) 负责释放。这个直接调用是源码的具体做法;一般 async with 语法还会传真实异常三元组,不能把两者所有行为视为完全相同。
可运行实验:函数形状、返回值与关闭
下载 example.py,执行 python3 -W error example.py。只依赖标准库;推荐 Python 3.12,最低 3.11。
教学裁剪保留 _apply_to_sample(args, sample, paths, **kwargs) 与 trace_function(name) 名字和基本输入/输出。将动态导入换成本地 HOOKS 字典,Sample 简化为整数,省略参数签名过滤及业务类型检查;trace 的 target/attrs 解析与 span 写入简化为进入/退出记录。SampleStream 和 chunks() 则是独立语法实验。
展开完整实验:example.py
"""Hook/trace teaching cuts plus independent async-protocol exercises."""
import asyncio
import functools
import inspect
from collections.abc import AsyncIterator, Awaitable
from contextlib import aclosing
EVENTS = []
def trace_function(name):
# Slime keeps target resolution and trace_span here; we only record order.
def decorator(fn):
if inspect.iscoroutinefunction(fn):
@functools.wraps(fn)
async def async_wrapper(*args, **kwargs):
EVENTS.append(name + ':enter')
try:
return await fn(*args, **kwargs)
finally:
EVENTS.append(name + ':exit')
return async_wrapper
@functools.wraps(fn)
def sync_wrapper(*args, **kwargs):
EVENTS.append(name + ':enter')
try:
return fn(*args, **kwargs)
finally:
EVENTS.append(name + ':exit')
return sync_wrapper
return decorator
@trace_function('sync')
def sync_hook(args, sample):
return sample + 1
@trace_function('async')
async def async_hook(args, sample):
await asyncio.sleep(0)
return sample * 2
def deferred_hook(args, sample):
return async_hook(args, sample)
HOOKS = {'sync': sync_hook, 'async': async_hook, 'deferred': deferred_hook}
async def _apply_to_sample(args, sample, paths, **kwargs):
for path in paths:
# Teaching substitution for Slime's load_function(path).
hook = HOOKS[path]
result = hook(args, sample, **kwargs)
if inspect.isawaitable(result):
result = await result
if result is not None:
sample = result
return sample
class SampleStream:
"""Independent language exercise, not an excerpt from Slime."""
def __init__(self):
self.value = 0
async def __aenter__(self):
print('resource enter')
return self
async def __aexit__(self, exc_type, exc_value, traceback):
print('resource exit', exc_type.__name__ if exc_type else None)
return False
def __aiter__(self):
return self
async def __anext__(self):
if self.value == 2:
raise StopAsyncIteration
await asyncio.sleep(0)
self.value += 1
return self.value
async def chunks() -> AsyncIterator[int]:
try:
yield 10
yield 20
finally:
print('generator closed')
async def exercise():
result = await _apply_to_sample(None, 1, ['sync', 'async', 'deferred'])
print('sample', result)
print('trace', EVENTS)
pending: Awaitable[int] = deferred_hook(None, 3)
print('deferred', inspect.iscoroutinefunction(deferred_hook), inspect.isawaitable(pending))
print('awaited', await pending)
async with SampleStream() as stream:
values = [value async for value in stream]
print('values', values)
stream: AsyncIterator[int] = chunks()
async with aclosing(stream):
async for value in stream:
print('first', value)
break
if __name__ == '__main__':
asyncio.run(exercise())
sample 8
trace ['sync:enter', 'sync:exit', 'async:enter', 'async:exit', 'async:enter', 'async:exit']
deferred False True
awaited 6
resource enter
values [1, 2]
resource exit None
first 10
generator closed
先看 1 → 2 → 4 → 8:三个 hook 分别同步返回、异步返回、同步返回一个协程对象;最后一个仍由 isawaitable(result) 接住。再看 deferred False True:同一个普通函数未被认作协程函数,但本次返回对象可等待。注解 pending: Awaitable[int] 没有替 await pending 执行任务。最后取异步生成器第一项后 break,aclosing 确保 generator closed 在当前作用域退出时发生。
同名方法不证明对象属于原生并发 API
库存里的实例候选保留了实际源码位置,但候选不能直接等同于运行时类型结论。必须沿接收者的构造、参数来源或可靠注解辨认对象,再读该类契约。
| 表面相同的调用 | 实际区别 | 继续阅读 |
|---|---|---|
.get(...) | dict.get 读取映射;queue.Queue.get 是同步队列读取;asyncio.Queue.get 返回要等待的操作;ray.get 是第三方入口 | 07 · 队列 |
.join(...) | str.join 拼接字符串;threading.Thread.join 等线程退出;队列 join 等任务记账归零;调用是否阻塞/可 await 各不相同 | 07 · 队列、09 · 线程同步 |
.close(...) | 文件、子进程管道、StreamWriter、Server、第三方 client 或业务对象可能都使用这个名字;关闭资源的层次和是否需要等待不同 | 18 · 进程生命周期、20 · Streams |
同样,inspect.isawaitable(obj) 能告诉我们 await 合法,却不能证明 obj 来自 asyncio;第三方对象也可以实现可等待协议。源码候选表用于定位和复核,不应因为方法名像 get / join / close 就计入已证明的原生 API 使用。
语言依据与版本边界
书上怎么说:书中建议 Python 3.9 起用 collections.abc 的对应异步类型;注解区分输入等待对象与 await 后返回值。
我的判断(本书未覆盖):hook 和 trace 的不同适配能力来自本章固定 Slime 源码;函数检查的 Python 3.12 扩展、提前 break 后的显式关闭按官方文档核对。
依据 A:《Fluent Python, 2nd Edition》(2022),第 21 章 Type Hinting Asynchronous Objects。英文 corpus/en/ch21.md:1579–1633,中文 corpus/zh/ch21.md:1530–1586,锚点 type-hinting-asynchronous-objects。本书基于 Python 3.10;本次验证解释器 Python 3.12.3。
原文:“With Python ≥ 3.9, use the collections.abc equivalents of these.”
对照:“对于 Python 3.9 及以上版本,应使用 collections.abc 中的对应类型。”
语义核对:inspect 的异步检查、异步上下文与迭代协议、异步生成器关闭、aclosing、collections.abc。
本节对应的全部源码位置
下面把同类用法在 Slime 中的每个扫描位置接回本节讲解;点击文件名可查看完整源码快照。重复出现的 API 共用解释,具体输入与清理由所在函数决定。
先辨认对象类型,再查同名接口的具体讲解
这些只是可能相关的原生接口;必须先核对接收者类型。没有匹配的名字仍可能属于普通对象或第三方接口。
展开本节 681 条源码记录
| 记录 / 讲解 | 源码位置 | 原代码 |
|---|---|---|
| occ-000002 | examples/coding_agent_rl/generate.py:27 <module> | from collections.abc import AsyncIterator |
| occ-000007 | examples/coding_agent_rl/generate.py:96 <module> | async def boot_agent_sandbox(image: str, instance_id: str) -> AsyncIterator[E2BSandbox]: |
| occ-000010 待核实接收者 | examples/coding_agent_rl/generate.py:109 boot_agent_sandbox | await cand.__aenter__() |
| occ-000013 待核实接收者 | examples/coding_agent_rl/generate.py:113 boot_agent_sandbox | await cand.__aexit__(None, None, None) |
| occ-000018 待核实接收者 | examples/coding_agent_rl/generate.py:134 boot_agent_sandbox | await sb.__aexit__(None, None, None) |
| occ-000033 待核实接收者 | examples/coding_agent_rl/generate.py:290 _log_timeout_diagnostic.<comprehension> | pending = [t for t in asyncio.all_tasks() if not t.done()] |
| occ-000035 待核实接收者 | examples/coding_agent_rl/swe.py:91 _metadata_scaleswe | rem = m.get("remote_env_info") or {} |
| occ-000036 待核实接收者 | examples/coding_agent_rl/swe.py:93 _metadata_scaleswe | swepro = m.get("swepro") |
| occ-000037 待核实接收者 | examples/coding_agent_rl/swe.py:94 _metadata_scaleswe | eval_cmd = m.get("eval_cmd") |
| occ-000038 待核实接收者 | examples/coding_agent_rl/swe.py:95 _metadata_scaleswe | f2p_script = rem.get("f2p_script") |
| occ-000039 待核实接收者 | examples/coding_agent_rl/swe.py:96 _metadata_scaleswe | looks_swebench = bool(rem.get("test_patch")) and not (swepro or eval_cmd or f2p_script) |
| occ-000040 待核实接收者 | examples/coding_agent_rl/swe.py:99 _metadata_scaleswe | "instance_id": m.get("instance_id") or rem.get("instance_id") or label or "unknown", |
| occ-000041 待核实接收者 | examples/coding_agent_rl/swe.py:99 _metadata_scaleswe | "instance_id": m.get("instance_id") or rem.get("instance_id") or label or "unknown", |
| occ-000042 待核实接收者 | examples/coding_agent_rl/swe.py:100 _metadata_scaleswe | "image": m.get("image") or rem.get("image_url"), |
| occ-000043 待核实接收者 | examples/coding_agent_rl/swe.py:100 _metadata_scaleswe | "image": m.get("image") or rem.get("image_url"), |
| occ-000044 待核实接收者 | examples/coding_agent_rl/swe.py:101 _metadata_scaleswe | "workdir": m.get("workdir") or rem.get("workdir"), |
| occ-000045 待核实接收者 | examples/coding_agent_rl/swe.py:101 _metadata_scaleswe | "workdir": m.get("workdir") or rem.get("workdir"), |
| occ-000046 待核实接收者 | examples/coding_agent_rl/swe.py:102 _metadata_scaleswe | "problem_statement": m.get("problem_statement") or _coerce_prompt(sample.prompt), |
| occ-000047 待核实接收者 | examples/coding_agent_rl/swe.py:108 _metadata_scaleswe | "pre_commands": m.get("pre_commands") or rem.get("pre_commands"), |
| occ-000048 待核实接收者 | examples/coding_agent_rl/swe.py:108 _metadata_scaleswe | "pre_commands": m.get("pre_commands") or rem.get("pre_commands"), |
| occ-000049 待核实接收者 | examples/coding_agent_rl/swe.py:117 _metadata_swebench | rem = m.get("remote_env_info") or {} |
| occ-000050 待核实接收者 | examples/coding_agent_rl/swe.py:119 _metadata_swebench | "instance_id": rem.get("instance_id") or "unknown", |
| occ-000051 待核实接收者 | examples/coding_agent_rl/swe.py:120 _metadata_swebench | "repo": rem.get("repo") or "", |
| occ-000052 待核实接收者 | examples/coding_agent_rl/swe.py:121 _metadata_swebench | "version": rem.get("version"), |
| occ-000053 待核实接收者 | examples/coding_agent_rl/swe.py:122 _metadata_swebench | "base_commit": rem.get("base_commit") or "", |
| occ-000054 待核实接收者 | examples/coding_agent_rl/swe.py:123 _metadata_swebench | "problem_statement": rem.get("problem_statement") or _coerce_prompt(sample.prompt), |
| occ-000055 待核实接收者 | examples/coding_agent_rl/swe.py:124 _metadata_swebench | "hints_text": rem.get("hints_text") or "", |
| occ-000056 待核实接收者 | examples/coding_agent_rl/swe.py:125 _metadata_swebench | "test_patch": rem.get("test_patch") or "", |
| occ-000057 待核实接收者 | examples/coding_agent_rl/swe.py:126 _metadata_swebench | "FAIL_TO_PASS": rem.get("FAIL_TO_PASS"), |
| occ-000058 待核实接收者 | examples/coding_agent_rl/swe.py:127 _metadata_swebench | "PASS_TO_PASS": rem.get("PASS_TO_PASS"), |
| occ-000059 待核实接收者 | examples/coding_agent_rl/swe.py:128 _metadata_swebench | "environment_setup_commit": rem.get("environment_setup_commit"), |
| occ-000060 待核实接收者 | examples/coding_agent_rl/swe.py:133 _metadata_swebench | "image": rem.get("image"), |
| occ-000061 待核实接收者 | examples/coding_agent_rl/swe.py:134 _metadata_swebench | "workdir": rem.get("workdir") or "/testbed", |
| occ-000062 待核实接收者 | examples/coding_agent_rl/swe.py:146 _coerce_prompt | if isinstance(m, dict) and m.get("role") == "user": |
| occ-000063 待核实接收者 | examples/coding_agent_rl/swe.py:147 _coerce_prompt | return flatten_content(m.get("content")) |
| occ-000064 待核实接收者 | examples/coding_agent_rl/swe.py:152 evaluability_check | if md.get("protocol") == PROTOCOL_SWEBENCH: |
| occ-000065 待核实接收者 | examples/coding_agent_rl/swe.py:154 evaluability_check | return "protocol_row_mismatch:looks_swebench" if md.get("looks_swebench") else None |
| occ-000066 待核实接收者 | examples/coding_agent_rl/swe.py:160 _evaluability_check_swebench | inst = md.get("grading", {}).get("sweb_instance") or {} |
| occ-000067 待核实接收者 | examples/coding_agent_rl/swe.py:160 _evaluability_check_swebench | inst = md.get("grading", {}).get("sweb_instance") or {} |
| occ-000068 待核实接收者 | examples/coding_agent_rl/swe.py:161 _evaluability_check_swebench | if not inst.get("repo"): |
| occ-000069 待核实接收者 | examples/coding_agent_rl/swe.py:163 _evaluability_check_swebench | if not inst.get("base_commit"): |
| occ-000070 待核实接收者 | examples/coding_agent_rl/swe.py:165 _evaluability_check_swebench | if not (inst.get("test_patch") or "").strip(): |
| occ-000073 待核实接收者 | examples/coding_agent_rl/swe.py:186 prepare_workspace | if md.get("protocol") == PROTOCOL_SCALESWE: |
| occ-000074 待核实接收者 | examples/coding_agent_rl/swe.py:187 prepare_workspace | grading = md.get("grading") or {} |
| occ-000075 待核实接收者 | examples/coding_agent_rl/swe.py:188 prepare_workspace | swepro = grading.get("swepro") |
| occ-000077 待核实接收者 | examples/coding_agent_rl/swe.py:191 prepare_workspace | pre_commands = grading.get("pre_commands") |
| occ-000080 待核实接收者 | examples/coding_agent_rl/swe.py:196 prepare_workspace | md.get("problem_statement") or "", |
| occ-000082 待核实接收者 | examples/coding_agent_rl/swe.py:203 apply_before_repo_set_cmd | before = swepro.get("before_repo_set_cmd") |
| occ-000087 待核实接收者 | examples/coding_agent_rl/swe.py:222 apply_pre_commands | body = "\n".join(c for c in (pre or []) if c) |
| occ-000093 待核实接收者 | examples/coding_agent_rl/swe.py:245 run_evaluation | if md.get("protocol") == PROTOCOL_SWEBENCH: |
| occ-000097 待核实接收者 | examples/coding_agent_rl/swe.py:259 _grade_scaleswe | grading = md.get("grading") or {} |
| occ-000098 待核实接收者 | examples/coding_agent_rl/swe.py:260 _grade_scaleswe | swepro = grading.get("swepro") |
| occ-000099 待核实接收者 | examples/coding_agent_rl/swe.py:261 _grade_scaleswe | eval_cmd = grading.get("eval_cmd") |
| occ-000100 待核实接收者 | examples/coding_agent_rl/swe.py:262 _grade_scaleswe | f2p_script = grading.get("f2p_script") |
| occ-000101 待核实接收者 | examples/coding_agent_rl/swe.py:263 _grade_scaleswe | pre_commands = grading.get("pre_commands") |
| occ-000113 待核实接收者 | examples/coding_agent_rl/swe.py:293 _setup_swepro_assets | host_p = swepro.get(k) |
| occ-000118 待核实接收者 | examples/coding_agent_rl/swe.py:304 _apply_diff | ladder = " || ".join( |
| occ-000121 待核实接收者 | examples/coding_agent_rl/swe.py:317 _run_swepro | test_arg = ",".join(swepro.get("selected_test_files") or []) |
| occ-000122 待核实接收者 | examples/coding_agent_rl/swe.py:317 _run_swepro | test_arg = ",".join(swepro.get("selected_test_files") or []) |
| occ-000126 待核实接收者 | examples/coding_agent_rl/swe.py:335 _run_swepro | passed = {t["name"] for t in parsed.get("tests", []) if t.get("status") == "PASSED"} |
| occ-000127 待核实接收者 | examples/coding_agent_rl/swe.py:335 _run_swepro.<comprehension> | passed = {t["name"] for t in parsed.get("tests", []) if t.get("status") == "PASSED"} |
| occ-000128 待核实接收者 | examples/coding_agent_rl/swe.py:336 _run_swepro | required = set(swepro.get("fail_to_pass") or []) | set(swepro.get("pass_to_pass") or []) |
| occ-000129 待核实接收者 | examples/coding_agent_rl/swe.py:336 _run_swepro | required = set(swepro.get("fail_to_pass") or []) | set(swepro.get("pass_to_pass") or []) |
| occ-000136 待核实接收者 | examples/coding_agent_rl/swe.py:368 _apply_model_patch | ladder = " || ".join(f"{cmd} /tmp/patch.diff" for cmd in _GIT_APPLY_CMDS) |
| occ-000138 待核实接收者 | examples/coding_agent_rl/swe.py:388 _eval_report_from_log | tmp.write(log) |
| occ-000139 待核实接收者 | examples/coding_agent_rl/swe.py:390 _eval_report_from_log | tmp.close() |
| occ-000140 待核实接收者 | examples/coding_agent_rl/swe.py:411 _ratio | passed, failed = d.get("success", []), d.get("failure", []) |
| occ-000141 待核实接收者 | examples/coding_agent_rl/swe.py:411 _ratio | passed, failed = d.get("success", []), d.get("failure", []) |
| occ-000142 待核实接收者 | examples/coding_agent_rl/swe.py:419 _log_swebench_result | if info.get("resolved"): |
| occ-000143 待核实接收者 | examples/coding_agent_rl/swe.py:422 _log_swebench_result | ts_status = info.get("tests_status") or {} |
| occ-000144 待核实接收者 | examples/coding_agent_rl/swe.py:423 _log_swebench_result | f2p_pass, f2p_total = _ratio(ts_status.get("FAIL_TO_PASS", {})) |
| occ-000145 待核实接收者 | examples/coding_agent_rl/swe.py:424 _log_swebench_result | p2p_pass, p2p_total = _ratio(ts_status.get("PASS_TO_PASS", {})) |
| occ-000146 待核实接收者 | examples/coding_agent_rl/swe.py:431 _log_swebench_result | bool(info.get("patch_successfully_applied")), |
| occ-000153 待核实接收者 | examples/coding_agent_rl/swe.py:490 _grade_swebench | info = report.get(instance_id, {}) |
| occ-000154 待核实接收者 | examples/coding_agent_rl/swe.py:492 _grade_swebench | return EvalResult(1.0 if info.get("resolved") else 0.0, bool(info.get("patch_successfully_applied"))) |
| occ-000155 待核实接收者 | examples/coding_agent_rl/swe.py:492 _grade_swebench | return EvalResult(1.0 if info.get("resolved") else 0.0, bool(info.get("patch_successfully_applied"))) |
| occ-000156 待核实接收者 | examples/geo3k_vlm_multi_turn/rollout.py:66 _encode_observation_for_generation | tools = metadata.get("tools") if metadata else None |
| occ-000157 待核实接收者 | examples/geo3k_vlm_multi_turn/rollout.py:110 _encode_observation_for_generation | if multimodal_inputs and multimodal_inputs.get("images"): |
| occ-000158 待核实接收者 | examples/geo3k_vlm_multi_turn/rollout.py:165 _prepare_initial_inputs | if sample.multimodal_inputs and sample.multimodal_inputs.get("images"): |
| occ-000159 待核实接收者 | examples/geo3k_vlm_multi_turn/rollout.py:187 _prepare_start_state | elif sampling_params.get("max_new_tokens") is not None: |
| occ-000163 待核实接收者 | examples/geo3k_vlm_multi_turn/rollout.py:325 generate | env.reset() |
| occ-000165 待核实接收者 | examples/geo3k_vlm_multi_turn/rollout.py:385 generate | env.close() |
| occ-000193 待核实接收者 | examples/retool/generate_with_retool.py:120 postprocess_predictions | tool_name = tool_call_data.get("name") |
| occ-000194 待核实接收者 | examples/retool/generate_with_retool.py:121 postprocess_predictions | arguments = tool_call_data.get("arguments", {}) |
| occ-000195 待核实接收者 | examples/retool/generate_with_retool.py:124 postprocess_predictions | code = arguments.get("code", "") |
| occ-000200 待核实接收者 | examples/retool/generate_with_retool.py:266 generate | sampling_params.get("max_new_tokens", remaining_budget), |
| occ-000208 待核实接收者 | examples/retool/tool_sandbox.py:209 PythonSandbox.execute_code | indented_code = "\n".join(" " + line for line in code.split("\n")) |
| occ-000209 待核实接收者 | examples/retool/tool_sandbox.py:263 PythonSandbox.execute_code | f.write(wrapped_code) |
| occ-000220 待核实接收者 | examples/retool/tool_sandbox.py:350 ToolRegistry._execute_python | code = arguments.get("code", "") |
| occ-000224 待核实接收者 | examples/search-r1/generate_with_search.py:53 _passages2string | text = "\n".join(content.split("\n")[1:]) |
| occ-000232 待核实接收者 | examples/search-r1/generate_with_search.py:174 generate | _existing_stop = sampling_params.get("stop") or [] |
| occ-000237 待核实接收者 | examples/search-r1/google_search_server.py:33 filter_links | for item in result.get("items", []): |
| occ-000242 待核实接收者 | examples/search-r1/google_search_server.py:54 fetch | async with session.get(url, headers=headers) as response: |
| occ-000244 待核实接收者 | examples/search-r1/google_search_server.py:55 fetch | raw = await response.read() |
| occ-000251 待核实接收者 | examples/search-r1/google_search_server.py:91 collect_context | return "\n".join(ctx_paras) |
| occ-000256 待核实接收者 | examples/search-r1/google_search_server.py:116 google_search | items = response.get("organic", []) |
| occ-000257 待核实接收者 | examples/search-r1/google_search_server.py:121 google_search | title = item.get("title", "") |
| occ-000258 待核实接收者 | examples/search-r1/google_search_server.py:122 google_search | context = " ".join(parse_snippet(item.get("snippet", ""))) |
| occ-000259 待核实接收者 | examples/search-r1/google_search_server.py:122 google_search | context = " ".join(parse_snippet(item.get("snippet", ""))) |
| occ-000260 待核实接收者 | examples/search-r1/google_search_server.py:132 google_search.<comprehension> | links = [item.get("link", "") for item in items if "link" in item] |
| occ-000262 待核实接收者 | examples/search-r1/google_search_server.py:136 google_search | title = item.get("title", "") |
| occ-000263 待核实接收者 | examples/search-r1/google_search_server.py:137 google_search | snippet = item.get("snippet", "") |
| occ-000268 待核实接收者 | examples/search-r1/local_search_server.py:76 local_search | retrieval_results = result.get("result", [[]])[0] |
| occ-000269 待核实接收者 | examples/search-r1/local_search_server.py:86 local_search | content = item.get("contents", "") |
| occ-000272 待核实接收者 | examples/strands_sglang/generate_with_strands.py:85 generate | model.reset() |
| occ-000275 待核实接收者 | examples/strands_sglang/subprocess_interpreter.py:141 SubprocessInterpreter.run_file | source = f.read() |
| occ-000283 待核实接收者 | examples/strands_sglang/subprocess_interpreter.py:360 SubprocessInterpreter._create_temp_file | f.write(code) |
| occ-000284 待核实接收者 | examples/strands_sglang/subprocess_interpreter.py:380 SubprocessInterpreter._check_code_type | f"{', '.join(self._CODE_EXTENSION_MAPPING.keys())}." |
| occ-000293 待核实接收者 | examples/tau-bench/generate_with_tau.py:60 res_to_sample | status = status_mapping.get(res.status) |
| occ-000299 待核实接收者 | examples/tau-bench/trainable_agents.py:141 TrainableAgentMixin._initialize_environment | env_reset_res = env.reset(task_index=task_index) |
| occ-000300 待核实接收者 | examples/tau-bench/trainable_agents.py:143 TrainableAgentMixin._initialize_environment | env_reset_res = env.reset() |
| occ-000304 待核实接收者 | examples/tau-bench/trainable_agents.py:397 TrainableAgentMixin._build_final_result | res.response = "".join([msg.get("content", "") for msg in messages if msg["role"] == "assistant"]) |
| occ-000305 待核实接收者 | examples/tau-bench/trainable_agents.py:397 TrainableAgentMixin._build_final_result.<comprehension> | res.response = "".join([msg.get("content", "") for msg in messages if msg["role"] == "assistant"]) |
| occ-000306 待核实接收者 | slime/agent/adapters/anthropic.py:59 AnthropicAdapter._translate | translated = _translate_messages(body.get("messages") or [], body.get("system")) |
| occ-000307 待核实接收者 | slime/agent/adapters/anthropic.py:59 AnthropicAdapter._translate | translated = _translate_messages(body.get("messages") or [], body.get("system")) |
| occ-000308 待核实接收者 | slime/agent/adapters/anthropic.py:60 AnthropicAdapter._translate | tools_schema = _tools_to_chat_tools(body.get("tools")) |
| occ-000311 待核实接收者 | slime/agent/adapters/anthropic.py:89 _translate_messages | role, content = m.get("role"), m.get("content") |
| occ-000312 待核实接收者 | slime/agent/adapters/anthropic.py:89 _translate_messages | role, content = m.get("role"), m.get("content") |
| occ-000313 待核实接收者 | slime/agent/adapters/anthropic.py:93 _translate_messages | if isinstance(b, dict) and b.get("type") == "tool_result": |
| occ-000314 待核实接收者 | slime/agent/adapters/anthropic.py:94 _translate_messages | translated.append({"role": "tool", "content": flatten_content(b.get("content"))}) |
| occ-000315 待核实接收者 | slime/agent/adapters/anthropic.py:95 _translate_messages | elif isinstance(b, dict) and b.get("type") == "text": |
| occ-000316 待核实接收者 | slime/agent/adapters/anthropic.py:96 _translate_messages | translated.append({"role": "user", "content": b.get("text", "")}) |
| occ-000317 待核实接收者 | slime/agent/adapters/anthropic.py:105 _translate_messages | if b.get("type") == "text": |
| occ-000318 待核实接收者 | slime/agent/adapters/anthropic.py:106 _translate_messages | texts.append(b.get("text", "")) |
| occ-000319 待核实接收者 | slime/agent/adapters/anthropic.py:107 _translate_messages | elif b.get("type") == "thinking": |
| occ-000320 待核实接收者 | slime/agent/adapters/anthropic.py:108 _translate_messages | thinkings.append(b.get("thinking", "")) |
| occ-000321 待核实接收者 | slime/agent/adapters/anthropic.py:109 _translate_messages | elif b.get("type") == "tool_use": |
| occ-000322 待核实接收者 | slime/agent/adapters/anthropic.py:111 _translate_messages | tcs.append(tool_call_dict(b.get("name", "tool"), b.get("input"))) |
| occ-000323 待核实接收者 | slime/agent/adapters/anthropic.py:111 _translate_messages | tcs.append(tool_call_dict(b.get("name", "tool"), b.get("input"))) |
| occ-000324 待核实接收者 | slime/agent/adapters/anthropic.py:112 _translate_messages | mo: dict[str, Any] = {"role": "assistant", "content": "".join(texts)} |
| occ-000325 待核实接收者 | slime/agent/adapters/anthropic.py:114 _translate_messages | mo["reasoning_content"] = "".join(thinkings) |
| occ-000326 待核实接收者 | slime/agent/adapters/anthropic.py:136 _tools_to_chat_tools | "description": t.get("description", ""), |
| occ-000327 待核实接收者 | slime/agent/adapters/anthropic.py:137 _tools_to_chat_tools | "parameters": t.get("input_schema") or t.get("parameters") or {"type": "object", "properties": {}}, |
| occ-000328 待核实接收者 | slime/agent/adapters/anthropic.py:137 _tools_to_chat_tools | "parameters": t.get("input_schema") or t.get("parameters") or {"type": "object", "properties": {}}, |
| occ-000329 待核实接收者 | slime/agent/adapters/anthropic.py:168 _build_reply_parts | manager_tcs.append(tool_call_dict(tu["name"], tu.get("input"))) |
| occ-000330 待核实接收者 | slime/agent/adapters/anthropic.py:195 _request_session_id | return sid_from_bearer(request) or (request.headers.get("X-Api-Key") or "").strip() or "default" |
| occ-000331 待核实接收者 | slime/agent/adapters/anthropic.py:203 _render_response | "model": body.get("model", "slime-actor"), |
| occ-000335 待核实接收者 | slime/agent/adapters/anthropic.py:238 _render_stream | await out.write(f"event: message_start\ndata: {json.dumps(ms_data, ensure_ascii=False)}\n\n".encode()) |
| occ-000337 待核实接收者 | slime/agent/adapters/anthropic.py:256 _render_stream | await out.write(f"event: content_block_start\ndata: {json.dumps(cbs_data, ensure_ascii=False)}\n\n".encode()) |
| occ-000339 待核实接收者 | slime/agent/adapters/anthropic.py:259 _render_stream | await out.write(f"event: content_block_delta\ndata: {json.dumps(cbd_data, ensure_ascii=False)}\n\n".encode()) |
| occ-000341 待核实接收者 | slime/agent/adapters/anthropic.py:262 _render_stream | await out.write(f"event: content_block_stop\ndata: {json.dumps(cbe_data, ensure_ascii=False)}\n\n".encode()) |
| occ-000343 待核实接收者 | slime/agent/adapters/anthropic.py:269 _render_stream | await out.write(f"event: message_delta\ndata: {json.dumps(md_data, ensure_ascii=False)}\n\n".encode()) |
| occ-000345 待核实接收者 | slime/agent/adapters/anthropic.py:272 _render_stream | await out.write(f"event: message_stop\ndata: {json.dumps(mst_data, ensure_ascii=False)}\n\n".encode()) |
| occ-000348 待核实接收者 | slime/agent/adapters/anthropic.py:280 _count_tokens | await request.read() |
| occ-000349 待核实接收者 | slime/agent/adapters/anthropic.py:301 _fold_mid_list_system_into_user | msgs = body_obj.get("messages") |
| occ-000350 待核实接收者 | slime/agent/adapters/anthropic.py:305 _fold_mid_list_system_into_user.<comprehension> | system_idx = [i for i, m in enumerate(msgs) if isinstance(m, dict) and m.get("role") == "system" and i > 0] |
| occ-000351 待核实接收者 | slime/agent/adapters/anthropic.py:310 _fold_mid_list_system_into_user._promote_to_list | c = msg.get("content") |
| occ-000352 待核实接收者 | slime/agent/adapters/anthropic.py:326 _fold_mid_list_system_into_user | wrapped = _wrap(flatten_content(sys_msg.get("content"))) |
| occ-000353 待核实接收者 | slime/agent/adapters/anthropic.py:330 _fold_mid_list_system_into_user | if isinstance(cand, dict) and cand.get("role") == "user": |
| occ-000354 待核实接收者 | slime/agent/adapters/anthropic.py:337 _fold_mid_list_system_into_user | if isinstance(cand, dict) and cand.get("role") == "user": |
| occ-000356 待核实接收者 | slime/agent/adapters/common.py:96 flatten_content | t = b.get("type") |
| occ-000357 待核实接收者 | slime/agent/adapters/common.py:98 flatten_content | parts.append(b.get("text", "")) |
| occ-000358 待核实接收者 | slime/agent/adapters/common.py:100 flatten_content | parts.append(flatten_content(b.get("content"))) |
| occ-000359 待核实接收者 | slime/agent/adapters/common.py:104 flatten_content | parts.append(flatten_content(b.get("content"))) |
| occ-000360 待核实接收者 | slime/agent/adapters/common.py:106 flatten_content | parts.append(str(b.get("text") or "")) |
| occ-000361 待核实接收者 | slime/agent/adapters/common.py:107 flatten_content | return "\n".join(p for p in parts if p) |
| occ-000365 待核实接收者 | slime/agent/adapters/common.py:228 BaseAdapter.shutdown_session.<comprehension> | tasks = [t for t in self.inflight.pop(sid, ()) if not t.done()] |
| occ-000369 待核实接收者 | slime/agent/adapters/common.py:235 BaseAdapter.shutdown_session._drain | task.cancel() |
| occ-000372 待核实接收者 | slime/agent/adapters/common.py:239 BaseAdapter.shutdown_session | loop = tasks[0].get_loop() |
| occ-000376 待核实接收者 | slime/agent/adapters/common.py:243 BaseAdapter.shutdown_session | self.logger.exception("[%s] sid=%s shutdown drain failed", self.log_prefix, sid) |
| occ-000381 待核实接收者 | slime/agent/adapters/common.py:293 BaseAdapter._check_turn_cap | prior = self._sid_turn_count.get(sid, 0) |
| occ-000382 待核实接收者 | slime/agent/adapters/common.py:316 BaseAdapter._run_debug_callback | self.logger.exception("debug_callback failed (sid=%s)", sid) |
| occ-000387 待核实接收者 | slime/agent/adapters/common.py:357 BaseAdapter._run_turn | stream = body.get("stream") is True or "text/event-stream" in request.headers.get("Accept", "") |
| occ-000388 待核实接收者 | slime/agent/adapters/common.py:357 BaseAdapter._run_turn | stream = body.get("stream") is True or "text/event-stream" in request.headers.get("Accept", "") |
| occ-000392 待核实接收者 | slime/agent/adapters/common.py:393 BaseAdapter._run_turn | self.inflight.get(sid, set()).discard(task) |
| occ-000393 待核实接收者 | slime/agent/adapters/common.py:398 sid_from_bearer | auth = request.headers.get("Authorization", "") |
| occ-000394 待核实接收者 | slime/agent/adapters/common.py:408 sid_from_body | metadata = body.get("metadata") |
| occ-000395 待核实接收者 | slime/agent/adapters/common.py:409 sid_from_body | if isinstance(metadata, dict) and metadata.get("session_id"): |
| occ-000396 待核实接收者 | slime/agent/adapters/common.py:411 sid_from_body | if body.get("user"): |
| occ-000397 待核实接收者 | slime/agent/adapters/common.py:426 _sampling_params | if body.get(key) is not None: |
| occ-000398 待核实接收者 | slime/agent/adapters/common.py:427 _sampling_params | sp["max_new_tokens"] = min(int(sp.get("max_new_tokens", body[key])), int(body[key])) |
| occ-000399 待核实接收者 | slime/agent/adapters/common.py:435 _sampling_params | if body.get(key): |
| occ-000401 待核实接收者 | slime/agent/adapters/common.py:468 call_sglang_generate | sp["max_new_tokens"] = min(int(sp.get("max_new_tokens", remaining_context)), remaining_context) |
| occ-000405 待核实接收者 | slime/agent/adapters/common.py:497 call_sglang_generate | meta = data.get("meta_info") or {} |
| occ-000406 待核实接收者 | slime/agent/adapters/common.py:498 call_sglang_generate | output_token_logprobs = meta.get("output_token_logprobs") or [] |
| occ-000407 待核实接收者 | slime/agent/adapters/common.py:501 call_sglang_generate | finish = (meta.get("finish_reason") or {}).get("type", "stop") or "stop" |
| occ-000408 待核实接收者 | slime/agent/adapters/common.py:501 call_sglang_generate | finish = (meta.get("finish_reason") or {}).get("type", "stop") or "stop" |
| occ-000417 待核实接收者 | slime/agent/adapters/common.py:530 _abort_sglang_request | async with session.get(f"{sglang_url}/workers") as response: |
| occ-000420 待核实接收者 | slime/agent/adapters/common.py:543 _abort_sglang_request | for worker in payload.get("workers", []) |
| occ-000421 待核实接收者 | slime/agent/adapters/common.py:544 _abort_sglang_request.<comprehension> | if isinstance(worker, dict) and isinstance(worker.get("url"), str) and worker["url"] |
| occ-000425 待核实接收者 | slime/agent/adapters/openai.py:54 OpenAIAdapter._translate | messages = body.get("messages") or [] |
| occ-000426 待核实接收者 | slime/agent/adapters/openai.py:58 OpenAIAdapter._translate | tools_schema = _tools_to_chat_tools(body.get("tools")) |
| occ-000429 待核实接收者 | slime/agent/adapters/openai.py:120 _translate_messages | role = msg.get("role") |
| occ-000430 待核实接收者 | slime/agent/adapters/openai.py:121 _translate_messages | content = msg.get("content") |
| occ-000431 待核实接收者 | slime/agent/adapters/openai.py:135 _translate_messages | reasoning = msg.get("reasoning_content") |
| occ-000432 待核实接收者 | slime/agent/adapters/openai.py:138 _translate_messages | tool_calls = msg.get("tool_calls") or [] |
| occ-000433 待核实接收者 | slime/agent/adapters/openai.py:143 _translate_messages | function = call.get("function") or {} |
| occ-000434 待核实接收者 | slime/agent/adapters/openai.py:144 _translate_messages | name = function.get("name") or call.get("name") or "tool" |
| occ-000435 待核实接收者 | slime/agent/adapters/openai.py:144 _translate_messages | name = function.get("name") or call.get("name") or "tool" |
| occ-000436 待核实接收者 | slime/agent/adapters/openai.py:145 _translate_messages | arguments = function.get("arguments") |
| occ-000437 待核实接收者 | slime/agent/adapters/openai.py:147 _translate_messages | arguments = call.get("arguments", {}) |
| occ-000438 待核实接收者 | slime/agent/adapters/openai.py:174 _tools_to_chat_tools | if tool.get("type") and tool.get("type") != "function": |
| occ-000439 待核实接收者 | slime/agent/adapters/openai.py:174 _tools_to_chat_tools | if tool.get("type") and tool.get("type") != "function": |
| occ-000440 待核实接收者 | slime/agent/adapters/openai.py:176 _tools_to_chat_tools | function = tool.get("function") if isinstance(tool.get("function"), dict) else None |
| occ-000441 待核实接收者 | slime/agent/adapters/openai.py:176 _tools_to_chat_tools | function = tool.get("function") if isinstance(tool.get("function"), dict) else None |
| occ-000442 待核实接收者 | slime/agent/adapters/openai.py:178 _tools_to_chat_tools | name = function.get("name") |
| occ-000443 待核实接收者 | slime/agent/adapters/openai.py:186 _tools_to_chat_tools | "description": function.get("description", ""), |
| occ-000444 待核实接收者 | slime/agent/adapters/openai.py:187 _tools_to_chat_tools | "parameters": function.get("parameters") or {"type": "object", "properties": {}}, |
| occ-000445 待核实接收者 | slime/agent/adapters/openai.py:192 _tools_to_chat_tools | name = tool.get("name") |
| occ-000446 待核实接收者 | slime/agent/adapters/openai.py:200 _tools_to_chat_tools | "description": tool.get("description", ""), |
| occ-000447 待核实接收者 | slime/agent/adapters/openai.py:201 _tools_to_chat_tools | "parameters": tool.get("parameters") or {"type": "object", "properties": {}}, |
| occ-000448 待核实接收者 | slime/agent/adapters/openai.py:225 _build_reply_parts | name = tu.get("name", "tool") |
| occ-000449 待核实接收者 | slime/agent/adapters/openai.py:226 _build_reply_parts | args_dict = tu.get("input") or {} |
| occ-000450 待核实接收者 | slime/agent/adapters/openai.py:312 _render_response | "model": body.get("model", "slime-actor"), |
| occ-000454 待核实接收者 | slime/agent/adapters/openai.py:356 _render_stream.emit | "model": body.get("model", "slime-actor"), |
| occ-000456 待核实接收者 | slime/agent/adapters/openai.py:361 _render_stream.emit | await out.write(f"data: {json.dumps(chunk, ensure_ascii=False)}\n\n".encode()) |
| occ-000458 待核实接收者 | slime/agent/adapters/openai.py:364 _render_stream | reasoning = wire_message.get("reasoning_content") |
| occ-000460 待核实接收者 | slime/agent/adapters/openai.py:367 _render_stream | content = wire_message.get("content") |
| occ-000462 待核实接收者 | slime/agent/adapters/openai.py:373 _render_stream | tool_calls = wire_message.get("tool_calls") or [] |
| occ-000466 待核实接收者 | slime/agent/adapters/openai.py:377 _render_stream | await out.write(b"data: [DONE]\n\n") |
| occ-000475 待核实接收者 | slime/agent/aiohttp_threaded.py:42 AppHandle.stop | self.loop.call_soon_threadsafe(self.loop.stop) |
| occ-000476 待核实接收者 | slime/agent/aiohttp_threaded.py:43 AppHandle.stop | self.thread.join(timeout=5) |
| occ-000482 待核实接收者 | slime/agent/aiohttp_threaded.py:72 run_app_in_thread._run | loop.run_until_complete(site.start()) |
| occ-000549 待核实接收者 | slime/agent/sandbox.py:305 E2BSandbox.__aexit__ | await self._sb.kill() |
| occ-000555 待核实接收者 | slime/agent/sandbox.py:348 E2BSandbox.write_file._do_path | await self._sb.files.write( |
| occ-000559 待核实接收者 | slime/agent/sandbox.py:363 E2BSandbox.write_file._do_bytes | await self._sb.files.write( |
| occ-000562 待核实接收者 | slime/agent/sandbox.py:377 E2BSandbox.write_file.<lambda> | lambda: self._sb.files.write(sandbox_path, content, user=user), |
| occ-000565 待核实接收者 | slime/agent/sandbox.py:384 E2BSandbox.read_file.<lambda> | lambda: self._sb.files.read(sandbox_path, user=user), |
| occ-000571 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:79 _get_update_timeout_s | return float(payload.get("timeout_s") or args.megatron_server_update_timeout_s) |
| occ-000572 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:181 SampleManager.cancel_request.<comprehension> | req for req in self._pending_requests if req.get("request_id") != request_id |
| occ-000573 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:187 SampleManager._pop_next_request | rid = req.get("request_id") |
| occ-000574 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:204 SampleManager.get_input_data | sample_n = req.get("sample_n", 0) |
| occ-000575 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:205 SampleManager.get_input_data | label_token_ids = req.get("label_token_ids") |
| occ-000576 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:263 SampleManager.save_log_probs | log_probs = output_item.get("log_probs") |
| occ-000577 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:264 SampleManager.save_log_probs | sampled_token_ids = output_item.get("sampled_token_ids") |
| occ-000578 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:265 SampleManager.save_log_probs | sampled_log_probs = output_item.get("sampled_log_probs") |
| occ-000579 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:266 SampleManager.save_log_probs | label_token_log_probs = output_item.get("label_token_log_probs") |
| occ-000580 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:287 _merge_log_probs.<lambda> | logp_parts.sort(key=lambda x: x.get("dp_rank")) |
| occ-000581 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:290 _merge_log_probs | has_log_prob = part.get("log_prob") is not None |
| occ-000582 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:291 _merge_log_probs | has_sampled = part.get("sampled_log_probs") is not None or part.get("sampled_token_ids") is not None |
| occ-000583 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:291 _merge_log_probs | has_sampled = part.get("sampled_log_probs") is not None or part.get("sampled_token_ids") is not None |
| occ-000584 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:292 _merge_log_probs | has_label = part.get("label_token_log_probs") is not None |
| occ-000585 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:297 _merge_log_probs | "log_probs": part.get("log_prob"), |
| occ-000586 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:298 _merge_log_probs | "sampled_log_probs": part.get("sampled_log_probs"), |
| occ-000587 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:299 _merge_log_probs | "sampled_token_ids": part.get("sampled_token_ids"), |
| occ-000588 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:300 _merge_log_probs | "label_token_log_probs": part.get("label_token_log_probs"), |
| occ-000595 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:382 _build_generate_response | "log_probs": _crop_sequence(result.get("log_probs"), expected_len), |
| occ-000596 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:385 _build_generate_response | value = result.get(key) |
| occ-000601 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:403 _get_update_model_path | model_path = payload.get("model_path") or payload.get("path") or payload.get("load") |
| occ-000602 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:403 _get_update_model_path | model_path = payload.get("model_path") or payload.get("path") or payload.get("load") |
| occ-000603 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:403 _get_update_model_path | model_path = payload.get("model_path") or payload.get("path") or payload.get("load") |
| occ-000617 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:472 _build_http_app.update_from_disk | if result.get("ok") is True: |
| occ-000618 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:476 _build_http_app.update_from_disk | return _json_error(result.get("error", "update_from_disk failed"), int(result.get("status", 500))) |
| occ-000619 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:476 _build_http_app.update_from_disk | return _json_error(result.get("error", "update_from_disk failed"), int(result.get("status", 500))) |
| occ-000629 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:541 _build_http_app.generate | sample_n = _parse_sample_n(payload.get("sample_n", 0)) |
| occ-000630 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:543 _build_http_app.generate | label_token_ids = _normalize_label_token_ids(payload.get("label_token_ids"), valid_response_length) |
| occ-000640 待核实接收者 | slime/backends/megatron_utils/server/megatron_server.py:667 _run_warmup_via_private_http | warmup_handle.stop() |
| occ-000644 待核实接收者 | slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py:124 UpdateWeightFromDiskDelta._publish_full | self._snapshot.clear() |
| occ-000645 待核实接收者 | slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py:132 UpdateWeightFromDiskDelta._publish_full | writer.write(tensors, chunk_index) |
| occ-000650 待核实接收者 | slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py:266 UpdateWeightFromDiskDelta._encode_delta.collect | name, new, compressed, digest, changed = fut.result() |
| occ-000655 待核实接收者 | slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py:320 _atomic_write | f.write(data) |
| occ-000657 待核实接收者 | slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py:237 UpdateWeightFromDistributed._ep_gather_and_convert | handle.wait() |
| occ-000658 待核实接收者 | slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py:239 UpdateWeightFromDistributed._ep_gather_and_convert | named_tensors.clear() |
| occ-000660 待核实接收者 | slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py:272 UpdateWeightFromDistributed._update_bucket_weights_from_distributed | converted_named_tensors.clear() |
| occ-000661 待核实接收者 | slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py:362 update_weights_from_distributed | handle.wait() |
| occ-000669 待核实接收者 | slime/backends/sglang_utils/server_control.py:21 unregister_worker | response = client.get(f"{router_url}/workers", timeout=timeout) |
| occ-000673 待核实接收者 | slime/backends/sglang_utils/server_control.py:39 get_live_router_workers | response = await client.get(f"{router_url}/workers") |
| occ-000676 待核实接收者 | slime/backends/sglang_utils/server_control.py:44 get_live_router_workers.check | response = await client.get(f"{worker['url']}/health_generate") |
| occ-000680 待核实接收者 | slime/backends/sglang_utils/server_control.py:72 num_requests_from_load | value = load.get(key) |
| occ-000681 待核实接收者 | slime/backends/sglang_utils/server_control.py:77 num_requests_from_load | running = load.get("num_running_reqs", load.get("total_running_reqs")) |
| occ-000682 待核实接收者 | slime/backends/sglang_utils/server_control.py:77 num_requests_from_load | running = load.get("num_running_reqs", load.get("total_running_reqs")) |
| occ-000683 待核实接收者 | slime/backends/sglang_utils/server_control.py:78 num_requests_from_load | waiting = load.get("num_waiting_reqs", load.get("total_waiting_reqs")) |
| occ-000684 待核实接收者 | slime/backends/sglang_utils/server_control.py:78 num_requests_from_load | waiting = load.get("num_waiting_reqs", load.get("total_waiting_reqs")) |
| occ-000685 待核实接收者 | slime/backends/sglang_utils/server_control.py:110 non_idle_request_details | loads = load.get("loads", [load]) |
| occ-000686 待核实接收者 | slime/backends/sglang_utils/server_control.py:118 non_idle_request_details | dp_rank = rank_load.get("dp_rank") |
| occ-000687 待核实接收者 | slime/backends/sglang_utils/server_control.py:120 non_idle_request_details | inflight = rank_load.get("inflight") |
| occ-000688 待核实接收者 | slime/backends/sglang_utils/server_control.py:125 non_idle_request_details | reqs = queue.get("reqs") if isinstance(queue.get("reqs"), list) else [] |
| occ-000689 待核实接收者 | slime/backends/sglang_utils/server_control.py:125 non_idle_request_details | reqs = queue.get("reqs") if isinstance(queue.get("reqs"), list) else [] |
| occ-000690 待核实接收者 | slime/backends/sglang_utils/server_control.py:126 non_idle_request_details | count = queue.get("num_reqs", len(reqs)) |
| occ-000691 待核实接收者 | slime/backends/sglang_utils/server_control.py:130 non_idle_request_details | {"dp_rank": dp_rank, "queue": queue.get("name", "unknown"), "num_reqs": count, "reqs": reqs} |
| occ-000692 待核实接收者 | slime/backends/sglang_utils/server_control.py:137 non_idle_request_details | section = rank_load.get(section_name) |
| occ-000693 待核实接收者 | slime/backends/sglang_utils/server_control.py:144 non_idle_request_details | value = rank_load.get(key) |
| occ-000709 待核实接收者 | slime/backends/sglang_utils/server_control.py:251 abort_servers_until_idle | detail = "; ".join(f"{url}: {error}" for url, error in failures) |
| occ-000720 待核实接收者 | slime/backends/sglang_utils/sglang_engine.py:86 _wait_server_healthy | response = session.get(f"{base_url}/health_generate", headers=headers, timeout=5) |
| occ-000722 待核实接收者 | slime/backends/sglang_utils/sglang_engine.py:173 SGLangEngine._init_external._sanity_check_server_args | expect_value = expect_server_args.get(name) |
| occ-000723 待核实接收者 | slime/backends/sglang_utils/sglang_engine.py:174 SGLangEngine._init_external._sanity_check_server_args | actual_value = actual_server_args.get(name) |
| occ-000724 待核实接收者 | slime/backends/sglang_utils/sglang_engine.py:199 SGLangEngine._register_to_router | bootstrap_port = server_args_dict.get("disaggregation_bootstrap_port") |
| occ-000727 待核实接收者 | slime/backends/sglang_utils/sglang_engine.py:529 SGLangEngine.simulate_crash | self.shutdown() |
| occ-000728 待核实接收者 | slime/backends/sglang_utils/sglang_engine.py:547 _compute_server_args | pp_size = int(normalized_overrides.get("pp_size", args.sglang_pp_size)) |
| occ-000729 待核实接收者 | slime/backends/sglang_utils/sglang_engine.py:548 _compute_server_args | tp_size = int(normalized_overrides.get("tp_size", _gpus_per_engine // pp_size)) |
| occ-000730 待核实接收者 | slime/backends/sglang_utils/sglang_engine.py:633 _compute_server_args | and kwargs.get("enable_memory_saver") |
| occ-000731 待核实接收者 | slime/backends/sglang_utils/sglang_engine.py:634 _compute_server_args | and kwargs.get("cuda_graph_backend_prefill") is None |
| occ-000732 待核实接收者 | slime/data/archive.py:26 RolloutArchive.__init__ | if self.index.get("format") != "slime.straw-debug" or self.index.get("version") != 1: |
| occ-000733 待核实接收者 | slime/data/archive.py:26 RolloutArchive.__init__ | if self.index.get("format") != "slime.straw-debug" or self.index.get("version") != 1: |
| occ-000736 待核实接收者 | slime/data/archive.py:133 RolloutArchive.save | store.close() |
| occ-000737 待核实接收者 | slime/data/archive.py:146 RolloutArchive.check_metadata | if index.get("format") != "slime.straw-debug" or index.get("version") != 1: |
| occ-000738 待核实接收者 | slime/data/archive.py:146 RolloutArchive.check_metadata | if index.get("format") != "slime.straw-debug" or index.get("version") != 1: |
| occ-000739 待核实接收者 | slime/data/archive.py:148 RolloutArchive.check_metadata | metadata = index.get("sample_metadata") |
| occ-000740 待核实接收者 | slime/data/archive.py:154 RolloutArchive.check_metadata | if metadata.get("version") != 1: |
| occ-000741 待核实接收者 | slime/data/archive.py:184 RolloutArchive.load_samples | chunk = entry.get("chunk", "raw") |
| occ-000742 待核实接收者 | slime/data/archive.py:222 RolloutArchive.release | self.store.release(self.index["storage_owner"]) |
| occ-000743 待核实接收者 | slime/data/archive.py:225 RolloutArchive.close | self.store.close() |
| occ-000744 待核实接收者 | slime/data/archive.py:231 RolloutArchive.__exit__ | self.close() |
| occ-000753 待核实接收者 | slime/data/queue_data_source.py:84 RolloutQueueController.__init__ | if parent := branch.get("parent"): |
| occ-000761 待核实接收者 | slime/data/queue_data_source.py:206 RolloutQueueController._gc_loop | logger.exception("straw online GC failed; retained storage must be inspected") |
| occ-000762 待核实接收者 | slime/data/queue_data_source.py:263 RolloutQueueController.configuration.<lambda> | for chunk in iter(lambda: stream.read(4 * 1024 * 1024), b""): |
| occ-000763 待核实接收者 | slime/data/queue_data_source.py:292 RolloutQueueController.pending_snapshot | inflight = self.queue.metrics()["tasks"].get("leased", 0) > 0 |
| occ-000764 待核实接收者 | slime/data/queue_data_source.py:324 RolloutQueueController.fork_source | if "producer_cursor" not in pending or pending.get("inflight", True): |
| occ-000765 待核实接收者 | slime/data/queue_data_source.py:356 RolloutQueueController.fork_source | receipt = self.result(Lease(**status["lease"])) |
| occ-000766 待核实接收者 | slime/data/queue_data_source.py:358 RolloutQueueController.fork_source | page = self.queue.acquire("fork-import", 1, task_ids=[task_id]) |
| occ-000767 待核实接收者 | slime/data/queue_data_source.py:403 RolloutQueueController.pending_count.<comprehension> | return sum(spec.metadata.get("returned", False) for spec in self.queue.pending_tasks(task_prefix="prompt:")) |
| occ-000768 待核实接收者 | slime/data/queue_data_source.py:438 RolloutQueueController.restore_pending.<comprehension> | key: saved.get(key, default) |
| occ-000769 待核实接收者 | slime/data/queue_data_source.py:447 RolloutQueueController.restore_pending | self.release([Lease(**status["lease"])]) |
| occ-000770 待核实接收者 | slime/data/queue_data_source.py:448 RolloutQueueController.restore_pending | page = self.queue.acquire("checkpoint-restore", 1, task_ids=[saved["task_id"]]) |
| occ-000771 待核实接收者 | slime/data/queue_data_source.py:459 RolloutQueueController.restore_pending | receipt = self.result(Lease(**status["lease"])) if status and status["state"] == "completed" else None |
| occ-000772 待核实接收者 | slime/data/queue_data_source.py:463 RolloutQueueController.restore_pending | set(metadata.get("source_positions", [])) | {receipt.position} |
| occ-000773 待核实接收者 | slime/data/queue_data_source.py:486 RolloutQueueController.reader_metadata | return self.codec.load(RecordSetRef.from_dict(state["state_ref"])).get("metadata", {}) if state else {} |
| occ-000774 待核实接收者 | slime/data/queue_data_source.py:501 RolloutQueueController.take | page = self.queue.acquire(reader_id, count, task_prefix="prompt:") |
| occ-000775 待核实接收者 | slime/data/queue_data_source.py:506 RolloutQueueController.take | page = self.queue.acquire(reader_id, count, task_prefix="prompt:") |
| occ-000776 待核实接收者 | slime/data/queue_data_source.py:558 RolloutQueueController.take | return self.queue.acquire(reader_id, requested, task_prefix="prompt:") |
| occ-000777 待核实接收者 | slime/data/queue_data_source.py:564 RolloutQueueController.complete | if lease.worker_id in self._retired_readers and self.result(lease) is None: |
| occ-000778 待核实接收者 | slime/data/queue_data_source.py:580 RolloutQueueController.reject | positions = self.queue.task_status(lease.task_id)["spec"]["metadata"].get("source_positions", []) |
| occ-000779 待核实接收者 | slime/data/queue_data_source.py:596 RolloutQueueController.results.<comprehension> | return [self.result(lease) if lease else None for lease in leases] |
| occ-000780 待核实接收者 | slime/data/queue_data_source.py:621 RolloutQueueController.recover_reader_results.<comprehension> | for position in task["spec"]["metadata"].get("source_positions", []) |
| occ-000781 待核实接收者 | slime/data/queue_data_source.py:657 RolloutQueueController.recover_pending_rollout | if state.get("conversion_started") or state["processed_cursor"] or state["processed_positions"]: |
| occ-000782 待核实接收者 | slime/data/queue_data_source.py:665 RolloutQueueController.recover_pending_rollout.<comprehension> | for position in task["spec"]["metadata"].get("source_positions", []) |
| occ-000783 待核实接收者 | slime/data/queue_data_source.py:685 RolloutQueueController.begin_collection | page = self.queue.acquire("manager", 1, task_ids=[task_id], control=True) |
| occ-000784 待核实接收者 | slime/data/queue_data_source.py:702 RolloutQueueController.batch | receipt = self.result(Lease(**task["lease"])) if task["state"] == "completed" else None |
| occ-000785 待核实接收者 | slime/data/queue_data_source.py:706 RolloutQueueController.batch | "lease": task.get("lease"), |
| occ-000786 待核实接收者 | slime/data/queue_data_source.py:723 RolloutQueueController.plan_batch | self.queue.acquire("manager", 1, task_ids=[batch_id], control=True) |
| occ-000787 待核实接收者 | slime/data/queue_data_source.py:725 RolloutQueueController.plan_batch | if not state.get("conversion_started"): |
| occ-000788 待核实接收者 | slime/data/queue_data_source.py:756 RolloutQueueController._advance | positions.update(task["spec"]["metadata"].get("source_positions", [])) |
| occ-000789 待核实接收者 | slime/data/queue_data_source.py:821 RolloutQueueController.ready_batch | page = self.queue.acquire("manager", 1, task_ids=[batch_id], control=True) |
| occ-000790 待核实接收者 | slime/data/queue_data_source.py:838 RolloutQueueController.finish_batch | receipt = self.result(Lease(**task["lease"])) |
| occ-000791 待核实接收者 | slime/data/queue_data_source.py:851 RolloutQueueController.record_dispositions | if not decision.get("reason") or any( |
| occ-000792 待核实接收者 | slime/data/queue_data_source.py:903 RolloutQueueController.restore_training_state.visit | receipt = self.result(Lease(**lease)) |
| occ-000793 待核实接收者 | slime/data/queue_data_source.py:907 RolloutQueueController.restore_training_state.visit | receipt = self.result(Lease(**task["lease"])) |
| occ-000794 待核实接收者 | slime/data/queue_data_source.py:911 RolloutQueueController.restore_training_state.visit | retained.update(value.get("source_positions", [])) |
| occ-000797 待核实接收者 | slime/data/queue_data_source.py:974 RolloutQueueController.close | self._queue.close() |
| occ-000798 待核实接收者 | slime/data/queue_data_source.py:983 RolloutQueueController.close | self._checkpoint_lock.close() |
| occ-000805 待核实接收者 | slime/data/queue_data_source.py:1058 QueueReader._heartbeat_loop | if self._leases.get(lease.task_id) != lease: |
| occ-000807 待核实接收者 | slime/data/queue_data_source.py:1107 QueueReader.get_samples | sample._queue_source_positions = assignment.task.metadata.get("source_positions", []) |
| occ-000812 待核实接收者 | slime/data/queue_data_source.py:1146 QueueReader.add_samples | if self._leases.get(lease.task_id) == lease: |
| occ-000813 待核实接收者 | slime/data/queue_data_source.py:1210 QueueReader.add_samples | if lease and self._leases.get(lease.task_id) == lease: |
| occ-000817 待核实接收者 | slime/data/queue_data_source.py:1417 QueueDataSource.load | if state["configuration"].get("dataset") != self.data_config.get("dataset"): |
| occ-000818 待核实接收者 | slime/data/queue_data_source.py:1417 QueueDataSource.load | if state["configuration"].get("dataset") != self.data_config.get("dataset"): |
| occ-000819 待核实接收者 | slime/data/queue_data_source.py:1424 QueueDataSource.load | if state["configuration"].get("queue_id", self.data_config["queue_id"]) != self.data_config["queue_id"]: |
| occ-000820 待核实接收者 | slime/data/queue_data_source.py:1438 QueueDataSource.close | consumer.close() |
| occ-000821 待核实接收者 | slime/data/queue_data_source.py:1439 QueueDataSource.close | super().close() |
| occ-000826 待核实接收者 | slime/data/transport.py:49 resolve_rollout_data_dir | pattern = "".join( |
| occ-000827 待核实接收者 | slime/data/transport.py:59 resolve_rollout_data_dir | if index.get("format") != "slime.straw-debug" or index.get("version") != 1: |
| occ-000828 待核实接收者 | slime/data/transport.py:59 resolve_rollout_data_dir | if index.get("format") != "slime.straw-debug" or index.get("version") != 1: |
| occ-000854 待核实接收者 | slime/data/transport.py:483 check_rollout_storage.<comprehension> | if node["Alive"] and (node["Resources"].get("CPU", 0) or node["Resources"].get("GPU", 0)) |
| occ-000855 待核实接收者 | slime/data/transport.py:483 check_rollout_storage.<comprehension> | if node["Alive"] and (node["Resources"].get("CPU", 0) or node["Resources"].get("GPU", 0)) |
| occ-000857 | slime/observability/trace_utils.py:5 <module> | import inspect |
| occ-000862 待核实接收者 | slime/observability/trace_utils.py:144 build_sglang_meta_trace_attrs | finish_reason = meta.get("finish_reason") |
| occ-000863 待核实接收者 | slime/observability/trace_utils.py:145 build_sglang_meta_trace_attrs | if isinstance(finish_reason, dict) and finish_reason.get("type") is not None: |
| occ-000864 待核实接收者 | slime/observability/trace_utils.py:150 build_sglang_meta_trace_attrs | if meta.get("id") is not None: |
| occ-000865 待核实接收者 | slime/observability/trace_utils.py:234 _ensure_trace_carrier | carrier["attempt"] = int(carrier.get("attempt", attempt)) |
| occ-000866 待核实接收者 | slime/observability/trace_utils.py:248 bind_trace | sample_id=sample.trace.get("sample_id"), |
| occ-000867 待核实接收者 | slime/observability/trace_utils.py:249 bind_trace | group_id=sample.trace.get("group_id"), |
| occ-000868 待核实接收者 | slime/observability/trace_utils.py:250 bind_trace | attempt=int(sample.trace.get("attempt", 0)), |
| occ-000869 待核实接收者 | slime/observability/trace_utils.py:277 bind_trace_carrier | sample_id=trace.get("sample_id"), |
| occ-000870 待核实接收者 | slime/observability/trace_utils.py:278 bind_trace_carrier | group_id=trace.get("group_id"), |
| occ-000871 待核实接收者 | slime/observability/trace_utils.py:279 bind_trace_carrier | attempt=int(trace.get("attempt", 0)), |
| occ-000872 待核实接收者 | slime/observability/trace_utils.py:315 import_trace | trace_id=payload.get("trace_id"), |
| occ-000873 待核实接收者 | slime/observability/trace_utils.py:316 import_trace | sample_id=payload.get("sample_id"), |
| occ-000874 待核实接收者 | slime/observability/trace_utils.py:317 import_trace | group_id=payload.get("group_id"), |
| occ-000875 待核实接收者 | slime/observability/trace_utils.py:318 import_trace | attempt=int(payload.get("attempt", 0)), |
| occ-000876 待核实接收者 | slime/observability/trace_utils.py:319 import_trace | parent_span_id=payload.get("parent_span_id"), |
| occ-000883 待核实接收者 | slime/observability/trace_utils.py:436 trace_next_attempt | next_attempt = int(handle.carrier.get("attempt", 0)) + 1 |
| occ-000884 | slime/observability/trace_utils.py:460 trace_function.decorator | if inspect.iscoroutinefunction(fn): |
| occ-000888 待核实接收者 | slime/observability/trace_utils.py:535 _append_trace_children | child_type = child.get("type") |
| occ-000889 待核实接收者 | slime/observability/trace_utils.py:536 _append_trace_children | child_name = child.get("name") |
| occ-000890 待核实接收者 | slime/observability/trace_utils.py:541 _append_trace_children | attrs = child.get("attrs") if isinstance(child.get("attrs"), dict) else None |
| occ-000891 待核实接收者 | slime/observability/trace_utils.py:541 _append_trace_children | attrs = child.get("attrs") if isinstance(child.get("attrs"), dict) else None |
| occ-000892 待核实接收者 | slime/observability/trace_utils.py:573 _append_trace_children | child.get("children"), |
| occ-000893 待核实接收者 | slime/observability/trace_utils.py:604 _append_event | "attempt": int(handle.carrier.get("attempt", handle.attempt)), |
| occ-000895 待核实接收者 | slime/observability/trace_utils.py:664 _resolve_trace_function_target | resolved = _normalize_trace_target(bound.arguments.get(target)) |
| occ-000898 待核实接收者 | slime/ray/actor_group.py:189 RayTrainGroup.update_weights | self.release() |
| occ-000900 待核实接收者 | slime/ray/actor_group.py:291 RayTrainGroup._reload_rollout_weights_from_disk | f"Expected: {weight_version}; " + ", ".join(mismatches) |
| occ-000904 待核实接收者 | slime/ray/serving.py:76 ServingCluster.__init__ | logging.getLogger(__name__).exception("Failed to dispose partial serving deployment") |
| occ-000905 待核实接收者 | slime/ray/serving.py:115 ServingCluster.validate_attachment | raise ValueError("Retained serving requires unchanged rollout/model configuration: " + ", ".join(changed)) |
| occ-000906 待核实接收者 | slime/ray/serving.py:168 ServingCluster.attach_training | monitor.stop() |
| occ-000907 待核实接收者 | slime/ray/serving.py:173 ServingCluster.attach_training | monitor.start() |
| occ-000908 待核实接收者 | slime/ray/serving.py:318 ServingCluster.dispose | if router.is_alive(): |
| occ-000909 待核实接收者 | slime/ray/serving.py:321 ServingCluster.dispose | if router.is_alive(): |
| occ-000914 待核实接收者 | slime/rollout/fully_async_distributed.py:108 RolloutScheduler._run | if not self.capacities[i] or i in configuring or configurations.get(i) == desired: |
| occ-000919 待核实接收者 | slime/rollout/fully_async_distributed.py:156 RolloutScheduler._run | self.controls.clear() |
| occ-000920 待核实接收者 | slime/rollout/fully_async_distributed.py:157 RolloutScheduler._run | self.pending.clear() |
| occ-000921 待核实接收者 | slime/rollout/fully_async_distributed.py:158 RolloutScheduler._run | self.running_workers.clear() |
| occ-000923 待核实接收者 | slime/rollout/fully_async_distributed.py:171 RolloutScheduler.generate | self.collecting.clear() |
| occ-000930 待核实接收者 | slime/rollout/fully_async_distributed.py:214 RolloutScheduler.pause.<comprehension> | self.configurations.get(worker) != (True, self.rollout_id) for worker in self.running_workers |
| occ-000940 待核实接收者 | slime/rollout/fully_async_distributed.py:286 _GenerationActor._start | if self.producer is None or self.producer.done(): |
| occ-000941 待核实接收者 | slime/rollout/fully_async_distributed.py:288 _GenerationActor._start | self.producer.result() |
| occ-000978 待核实接收者 | slime/rollout/fully_async_distributed.py:341 _GenerationActor._produce | task.cancel() |
| occ-001003 待核实接收者 | slime/rollout/fully_async_distributed.py:416 _GenerationActor._flush_rebuffers | future.set_exception(error) |
| occ-001004 待核实接收者 | slime/rollout/fully_async_distributed.py:417 _GenerationActor._flush_rebuffers | self._pending_rebuffers.clear() |
| occ-001005 待核实接收者 | slime/rollout/fully_async_distributed.py:420 _GenerationActor._flush_rebuffers | future.set_result(None) |
| occ-001006 待核实接收者 | slime/rollout/fully_async_distributed.py:429 _GenerationActor.load_state_dict | if isinstance(state, dict) and state.get("worker_state") == 1: |
| occ-001019 待核实接收者 | slime/rollout/fully_async_distributed.py:448 _GenerationActor._close | self.data_source.close() |
| occ-001020 待核实接收者 | slime/rollout/fully_async_distributed.py:502 DistributedRollout.__init__.<comprehension> | (node for node in ray.nodes() if node["Alive"] and node["Resources"].get("CPU", 0) >= 1), |
| occ-001021 待核实接收者 | slime/rollout/fully_async_distributed.py:576 DistributedRollout.close | super().close() |
| occ-001025 待核实接收者 | slime/rollout/fully_async_rollout.py:59 _get_worker | worker = data_buffer.consumers.get("fully_async") |
| occ-001026 待核实接收者 | slime/rollout/fully_async_rollout.py:74 _get_worker | worker.start() |
| occ-001031 待核实接收者 | slime/rollout/fully_async_rollout.py:105 AsyncRolloutWorker.start | if self.worker_thread is None or not self.worker_thread.is_alive(): |
| occ-001045 待核实接收者 | slime/rollout/fully_async_rollout.py:182 AsyncRolloutWorker._loop.<comprehension> | done = {t for t in active_tasks if t.done()} |
| occ-001046 待核实接收者 | slime/rollout/fully_async_rollout.py:185 AsyncRolloutWorker._loop | t.result() # results already handled in callback |
| occ-001058 待核实接收者 | slime/rollout/fully_async_rollout.py:244 AsyncRolloutWorker._make_done_cb._cb | result = done_task.result() |
| occ-001060 待核实接收者 | slime/rollout/fully_async_rollout.py:261 AsyncRolloutWorker._make_done_cb._cb | logger.exception("fully-async: failed to requeue aborted group") |
| occ-001066 待核实接收者 | slime/rollout/fully_async_rollout.py:321 _generate_rollout_async | drop_reasons[reason] = drop_reasons.get(reason, 0) + 1 |
| occ-001072 待核实接收者 | slime/rollout/on_policy_distillation.py:21 reward_func | if sample.multimodal_inputs and sample.multimodal_inputs.get("images"): |
| occ-001085 待核实接收者 | slime/rollout/rm_hub/__init__.py:66 async_rm | rm_type = (metadata.get("rm_type") or args.rm_type or "").strip() |
| occ-001094 待核实接收者 | slime/rollout/rm_hub/ifbench.py:132 _build_input_example | instruction_ids = _normalize_instruction_ids(metadata.get("instruction_id_list") or []) |
| occ-001095 待核实接收者 | slime/rollout/rm_hub/ifbench.py:137 _build_input_example | prompt_text = metadata.get("prompt_text") |
| occ-001096 待核实接收者 | slime/rollout/rm_hub/ifbench.py:143 _build_input_example | raw_kwargs = metadata.get("kwargs") |
| occ-001097 待核实接收者 | slime/rollout/rm_hub/ifbench.py:147 _build_input_example | key=int(metadata.get("record_id") or 0), |
| occ-001103 | slime/rollout/sample_hooks.py:3 <module> | import inspect |
| occ-001109 | slime/rollout/sample_hooks.py:41 _apply_to_sample | if inspect.isawaitable(result): |
| occ-001116 | slime/rollout/sglang_rollout.py:8 <module> | from collections.abc import Awaitable, Callable |
| occ-001118 待核实接收者 | slime/rollout/sglang_rollout.py:121 GenerateState.__init__ | self.reset() |
| occ-001121 待核实接收者 | slime/rollout/sglang_rollout.py:201 generate | images = sample.multimodal_inputs.get("images") if sample.multimodal_inputs else None |
| occ-001124 | slime/rollout/sglang_rollout.py:261 <module> | generate_call: Awaitable[Sample | list[Sample]], |
| occ-001129 | slime/rollout/sglang_rollout.py:279 <module> | generate_call: Awaitable[Sample | list[Sample]], |
| occ-001134 待核实接收者 | slime/rollout/sglang_rollout.py:330 generate_and_rm | await state.generation_pacer.wait() |
| occ-001146 待核实接收者 | slime/rollout/sglang_rollout.py:436 abort | task.cancel() |
| occ-001155 待核实接收者 | slime/rollout/sglang_rollout.py:461 abort | group = task.result() |
| occ-001161 待核实接收者 | slime/rollout/sglang_rollout.py:525 generate_rollout_async | group: list[Sample] = task.result() |
| occ-001165 待核实接收者 | slime/rollout/sglang_rollout.py:565 generate_rollout_async | pbar.close() |
| occ-001167 待核实接收者 | slime/rollout/sglang_rollout.py:575 generate_rollout_async | state.reset() |
| occ-001179 待核实接收者 | slime/rollout/sglang_rollout.py:740 eval_rollout_single_dataset | pbar.close() |
| occ-001181 待核实接收者 | slime/rollout/sglang_streaming_rollout.py:87 generate_streaming | images = sample.multimodal_inputs.get("images") if sample.multimodal_inputs else None |
| occ-001184 待核实接收者 | slime/rollout/sglang_streaming_rollout.py:159 generate_streaming | update_terminal_info=bool(last_meta_info.get("finish_reason")), |
| occ-001185 待核实接收者 | slime/rollout/sglang_streaming_rollout.py:165 generate_streaming | if last_meta_info.get("finish_reason"): |
| occ-001186 待核实接收者 | slime/rollout/sglang_streaming_rollout.py:171 generate_streaming.<lambda> | skip_special_tokens=sampling_params.get("skip_special_tokens", True), |
| occ-001187 待核实接收者 | slime/rollout/sglang_streaming_rollout.py:175 generate_streaming | if state.aborted and not last_meta_info.get("finish_reason"): |
| occ-001188 待核实接收者 | slime/rollout/sglang_streaming_rollout.py:177 generate_streaming | elif not last_meta_info.get("finish_reason"): |
| occ-001193 待核实接收者 | slime/utils/accelerator/__init__.py:276 _make_selected | entry = _REGISTRY.get(name) |
| occ-001194 待核实接收者 | slime/utils/accelerator/__init__.py:278 _make_selected | available = ", ".join(sorted(_REGISTRY)) |
| occ-001195 待核实接收者 | slime/utils/accelerator/__init__.py:332 get_accelerator | registered = ", ".join(sorted(_REGISTRY)) |
| occ-001203 待核实接收者 | slime/utils/async_utils.py:36 AsyncPacer._release | if not future.done(): |
| occ-001204 待核实接收者 | slime/utils/async_utils.py:37 AsyncPacer._release | future.set_result(None) |
| occ-001243 待核实接收者 | slime/utils/health_monitor.py:120 RolloutHealthMonitor._health_monitor_loop | logger.exception("Failed to unregister an unhealthy worker; retaining it for the next check") |
| occ-001261 待核实接收者 | slime/utils/http_utils.py:282 _init_ray_distributed_post.<comprehension> | nodes = [n for n in ray.nodes() if n.get("Alive")] |
| occ-001269 待核实接收者 | slime/utils/http_utils.py:368 get | response = await _http_client.get(url, timeout=timeout) |
| occ-001277 待核实接收者 | slime/utils/reloadable_process_group.py:79 _destroy_default_accelerator_process_group | state = default_process_group_states.get(os.getpid()) |
| occ-001279 待核实接收者 | slime/utils/reloadable_process_group.py:109 _reload_default_process_group | state = default_process_group_states.get(os.getpid()) |
| occ-001282 待核实接收者 | slime/utils/reloadable_process_group.py:158 monkey_patch_torch_dist.new_group | explicit_backend = args[2] if len(args) >= 3 else kwargs.get("backend") |
| occ-001285 待核实接收者 | slime/utils/reloadable_process_group.py:311 ReloadableProcessGroup.destroy_process_groups | for reloadable_group in ReloadableProcessGroup.GROUPS.get(pid, []): |
| occ-001287 待核实接收者 | slime/utils/reloadable_process_group.py:329 ReloadableProcessGroup.invalidate_process_groups | for reloadable_group in ReloadableProcessGroup.GROUPS.get(pid, []): |
| occ-001289 待核实接收者 | slime/utils/reloadable_process_group.py:335 ReloadableProcessGroup.reload_process_groups | reloadable_groups = ReloadableProcessGroup.GROUPS.get(pid, []) |
| occ-001290 待核实接收者 | slime/utils/reloadable_process_group.py:339 ReloadableProcessGroup.reload_process_groups | backend_counts[backend] = backend_counts.get(backend, 0) + 1 |
| occ-001291 待核实接收者 | slime/utils/reloadable_process_group.py:346 ReloadableProcessGroup.reload_process_groups | old_new_group = old_new_group_dict.get(pid) |
| occ-001292 待核实接收者 | slime/utils/reloadable_process_group.py:367 ReloadableProcessGroup.shutdown | self.group.shutdown() |
| occ-001293 待核实接收者 | slime/utils/reloadable_process_group.py:371 ReloadableProcessGroup.abort | self.group.abort() |
| occ-001294 待核实接收者 | slime/utils/reloadable_process_group.py:470 destroy_process_groups | state = default_process_group_states.get(os.getpid()) |
| occ-001300 待核实接收者 | slime/utils/routed_experts.py:174 RoutedExpertsMicrobatchPrefetcher.begin_pass | self.start() |
| occ-001302 待核实接收者 | slime/utils/routed_experts.py:189 RoutedExpertsMicrobatchPrefetcher.close | self._executor.shutdown(wait=True, cancel_futures=True) |
| occ-001303 待核实接收者 | slime/utils/routed_experts.py:191 RoutedExpertsMicrobatchPrefetcher.close | source.release() |
| occ-001306 待核实接收者 | slime/utils/routed_experts.py:235 RoutedExpertsMicrobatch.prefetch | self._future = executor.submit(self._load_and_prepare) |
| occ-001307 待核实接收者 | slime/utils/routed_experts.py:242 RoutedExpertsMicrobatch._get_cpu_tensor | tensor = future.result() if future is not None else self._load_and_prepare() |
| occ-001308 待核实接收者 | slime/utils/routed_experts.py:262 RoutedExpertsMicrobatch.layer_to_cuda | self.release() |
| occ-001309 待核实接收者 | slime/utils/routed_experts.py:270 RoutedExpertsMicrobatch.release | if future is not None and not future.done(): |
| occ-001310 待核实接收者 | slime/utils/routed_experts.py:271 RoutedExpertsMicrobatch.release | future.cancel() |
| occ-001317 待核实接收者 | slime_plugins/rollout_buffer/buffer.py:251 RolloutBuffer.read | result = self.buffer.get() |
| occ-001320 待核实接收者 | slime_plugins/rollout_buffer/buffer.py:263 write_to_buffer | item = buffer.write(data) |
| occ-001322 待核实接收者 | slime_plugins/rollout_buffer/buffer.py:279 get_rollout_data | items = buffer.read() |
| occ-001323 待核实接收者 | slime_plugins/rollout_buffer/buffer.py:315 run_rollout | transform_group_func=generator_info.get("transform_group", None), |
| occ-001324 待核实接收者 | slime_plugins/rollout_buffer/buffer.py:316 run_rollout | is_valid_group_func=generator_info.get("is_valid_group"), |
| occ-001325 待核实接收者 | slime_plugins/rollout_buffer/buffer.py:317 run_rollout | get_group_data_meta_info_func=generator_info.get("get_group_data_meta_info"), |
| occ-001333 待核实接收者 | slime_plugins/rollout_buffer/generator/base_generator.py:138 worker_process | done_queue.put(output_item) |
| occ-001334 待核实接收者 | slime_plugins/rollout_buffer/generator/base_generator.py:140 worker_process | done_queue.put("COMPLETE") |
| occ-001337 待核实接收者 | slime_plugins/rollout_buffer/generator/base_generator.py:224 BaseGenerator.run.read_data_into_queue | task_queue.put(item_repeat) |
| occ-001339 待核实接收者 | slime_plugins/rollout_buffer/generator/base_generator.py:235 BaseGenerator.run.read_data_into_queue | task_queue.put("STOP") |
| occ-001344 待核实接收者 | slime_plugins/rollout_buffer/generator/base_generator.py:254 BaseGenerator.run | item = done_queue.get() |
| occ-001345 待核实接收者 | slime_plugins/rollout_buffer/generator/base_generator.py:263 BaseGenerator.run | progress_bar.close() |
| occ-001347 待核实接收者 | slime_plugins/rollout_buffer/generator/base_generator.py:292 run_rollout | num_process=int(data.get("num_process", 100)), |
| occ-001348 待核实接收者 | slime_plugins/rollout_buffer/generator/base_generator.py:294 run_rollout | skip_instance_ids=data.get("skip_instance_ids", None), |
| occ-001349 待核实接收者 | slime_plugins/rollout_buffer/generator/base_generator.py:297 run_rollout | generator.entry(data["input_file"], rollout_func, reward_func, int(data.get("num_epoch", 1))) |
| occ-001366 待核实接收者 | tests/ci/gpu_lock_exec.py:26 main | dev_list = ",".join(str(x.gpu_id) for x in fd_locks) |
| occ-001367 待核实接收者 | tests/ci/gpu_lock_exec.py:34 main | fd_lock.close() |
| occ-001389 待核实接收者 | tests/ci/gpu_lock_exec.py:131 _execute_print_only | fd_lock.close() |
| occ-001390 待核实接收者 | tests/ci/gpu_lock_exec.py:135 _execute_print_only | print("Free GPUs:", ",".join(str(x) for x in free), flush=True) |
| occ-001392 待核实接收者 | tests/ci/gpu_lock_exec.py:167 _try_acquire_specific | fd_lock.close() |
| occ-001393 待核实接收者 | tests/ci/gpu_lock_exec.py:182 _try_acquire_count | fd_lock.close() |
| occ-001394 待核实接收者 | tests/ci/gpu_lock_exec.py:191 _try_acquire_count | fd_lock.close() |
| occ-001399 待核实接收者 | tests/ci/gpu_lock_exec.py:218 FdLock.close | self.fd.close() |
| occ-001400 待核实接收者 | tests/ci/gpu_lock_exec.py:231 _ensure_lock_files | open(p, "a").close() |
| occ-001402 待核实接收者 | tests/fanout_test_helpers.py:52 compact_generate | f.write(f"{sample.index}\n") |
| occ-001409 待核实接收者 | tests/pipeline_rl_test_helpers.py:76 GenerationProbe.run | "finish_reason": meta.get("finish_reason"), |
| occ-001413 待核实接收者 | tests/pipeline_rl_test_helpers.py:97 GenerationProbe.verify | self.wait( |
| occ-001416 待核实接收者 | tests/pipeline_rl_test_helpers.py:115 GenerationProbe.verify_flush | self.wait(lambda events: bool(events) and events[-1]["finish_reason"] is not None) |
| occ-001419 待核实接收者 | tests/pipeline_rl_test_helpers.py:132 start_probes | _probes.clear() |
| occ-001420 待核实接收者 | tests/pipeline_rl_test_helpers.py:136 start_probes | probe.thread.start() |
| occ-001421 待核实接收者 | tests/pipeline_rl_test_helpers.py:138 start_probes | probe.wait(lambda events: bool(events) and events[-1]["tokens"] >= 16) |
| occ-001438 待核实接收者 | tests/plugin_contracts/test_plugin_path_loading_contracts.py:123 reference_dynamic_filter.<comprehension> | keep = not any(sample.metadata.get("drop") for sample in samples) |
| occ-001448 | tests/test_agent/_fakes.py:29 <module> | from collections.abc import Awaitable, Callable |
| occ-001449 待核实接收者 | tests/test_agent/_fakes.py:82 FakeTokenizer.decode | return " ".join(self._inv[i] for i in ids if i in self._inv and i not in _SPECIAL_IDS) |
| occ-001450 待核实接收者 | tests/test_agent/_fakes.py:86 FakeTokenizer._content_text | c = message.get("content") |
| occ-001451 待核实接收者 | tests/test_agent/_fakes.py:88 FakeTokenizer._content_text | reasoning = message.get("reasoning_content") |
| occ-001452 待核实接收者 | tests/test_agent/_fakes.py:95 FakeTokenizer._content_text | if isinstance(b, dict) and b.get("type") == "text": |
| occ-001453 待核实接收者 | tests/test_agent/_fakes.py:96 FakeTokenizer._content_text | parts.append(str(b.get("text", ""))) |
| occ-001454 待核实接收者 | tests/test_agent/_fakes.py:97 FakeTokenizer._content_text | for call in message.get("tool_calls") or []: |
| occ-001455 待核实接收者 | tests/test_agent/_fakes.py:98 FakeTokenizer._content_text | fn = call.get("function") or {} |
| occ-001456 待核实接收者 | tests/test_agent/_fakes.py:99 FakeTokenizer._content_text | parts.append(f"toolcall:{fn.get('name', '')}") |
| occ-001457 待核实接收者 | tests/test_agent/_fakes.py:100 FakeTokenizer._content_text | return " ".join(p for p in parts if p) |
| occ-001458 待核实接收者 | tests/test_agent/_fakes.py:106 FakeTokenizer.apply_chat_template | role = m.get("role", "user") |
| occ-001459 待核实接收者 | tests/test_agent/_fakes.py:107 FakeTokenizer.apply_chat_template | out.append(_ROLE_BEGIN.get(role, _ROLE_BEGIN["user"])) |
| occ-001460 待核实接收者 | tests/test_agent/_fakes.py:132 ScriptedTokenizer.decode | return self.outputs.get(tuple(ids), "") |
| occ-001462 待核实接收者 | tests/test_agent/_fakes.py:158 FakeSGLangServer._handle | self.routing_keys.append(request.headers.get("X-SMG-Routing-Key")) |
| occ-001468 待核实接收者 | tests/test_agent/_fakes.py:183 FakeSGLangServer.__aexit__ | await self._server.close() |
| occ-001470 | tests/test_agent/_fakes.py:240 FakeSandbox | on_launch: Callable[[dict], Awaitable[int]] | None = None, |
| occ-001477 待核实接收者 | tests/test_agent/_fakes.py:294 FakeSandbox.read_file | return _as_str(self.files.get(sandbox_path, "")) |
| occ-001479 待核实接收者 | tests/test_agent/test_adapters.py:57 _parse_sse.flush | data = "\n".join(data_lines) |
| occ-001488 待核实接收者 | tests/test_agent/test_adapters.py:184 test_anthropic_messages_nonstream_records_token_segments.run_case | await client.close() |
| occ-001497 待核实接收者 | tests/test_agent/test_adapters.py:220 test_openai_chat_completions_nonstream_records_token_segments.run_case | await client.close() |
| occ-001506 待核实接收者 | tests/test_agent/test_adapters.py:259 test_anthropic_messages_streams_blocks.run_case | await client.close() |
| occ-001508 待核实接收者 | tests/test_agent/test_adapters.py:267 test_anthropic_messages_streams_blocks.run_case.<comprehension> | assert any(d["delta"].get("text") == "streamed" for d in deltas) |
| occ-001516 待核实接收者 | tests/test_agent/test_adapters.py:288 test_openai_chat_completions_streams_chunks_until_done.run_case | await client.close() |
| occ-001527 待核实接收者 | tests/test_agent/test_adapters.py:358 test_anthropic_multiturn_wire_roundtrip_and_token_capture.run_case | await client.close() |
| occ-001536 待核实接收者 | tests/test_agent/test_adapters.py:397 test_max_turns_per_sid_returns_429.run_case | await client.close() |
| occ-001539 待核实接收者 | tests/test_agent/test_adapters.py:418 test_mid_list_system_folds_into_user.<comprehension> | assert any(b.get("text", "").startswith("<system-reminder>") for b in folded) |
| occ-001557 待核实接收者 | tests/test_agent/test_agent_rollout_cpu.py:188 test_generate_produces_trained_samples.run_case | assert s.metadata.get("agent_exit_code") == 0 |
| occ-001562 待核实接收者 | tests/test_agent/test_agent_rollout_cpu.py:213 test_generate_aborts_on_empty_trajectory.run_case | assert samples[0].metadata.get("abort_reason") == "adapter_session_empty" |
| occ-001566 待核实接收者 | tests/test_agent/test_agent_rollout_cpu.py:227 test_generate_aborts_on_missing_image.run_case | assert samples[0].metadata.get("abort_reason") == "missing_image_or_workdir" |
| occ-001572 待核实接收者 | tests/test_agent/test_agent_rollout_cpu.py:251 _codex_agent | history.append({"role": "assistant", "content": msg.get("content") or ""}) |
| occ-001576 待核实接收者 | tests/test_agent/test_agent_rollout_cpu.py:284 test_codex_openai_rollout_closes_loop.run_case | handle.stop() |
| occ-001595 待核实接收者 | tests/test_agent/test_harness.py:110 test_claude_code_write_config_preacks_bypass_permissions.run_case | joined = " ".join(cmd for cmd, _ in sb.exec_log) |
| occ-001614 待核实接收者 | tests/test_agent/test_harness.py:227 test_base_harness_run_calls_steps_in_order.run_case | joined = " ".join(c for c, _ in sb.exec_log) |
| occ-001621 待核实接收者 | tests/test_agent/test_sandbox_exec_and_wait.py:69 ShellFakeSandbox.read_file | return self.files.get(path, "") |
| occ-001623 待核实接收者 | tests/test_agent/test_sandbox_exec_and_wait.py:83 ShellFakeSandbox.exec | return 0, self.files.get(tail.group(1), "")[-512:], "" |
| occ-001638 待核实接收者 | tests/test_distributed_rollout.py:88 source_factory | source.close() |
| occ-001639 待核实接收者 | tests/test_distributed_rollout.py:89 source_factory | controller.close() |
| occ-001640 待核实接收者 | tests/test_distributed_rollout.py:115 test_task_claims_and_producer_cursor_survive_recovery | controller.close() |
| occ-001641 待核实接收者 | tests/test_distributed_rollout.py:127 test_task_claims_and_producer_cursor_survive_recovery | restored.close() |
| occ-001642 待核实接收者 | tests/test_distributed_rollout.py:148 test_whole_job_recovery_replays_accepted_results_and_durable_continuations | reader.close() |
| occ-001643 待核实接收者 | tests/test_distributed_rollout.py:150 test_whole_job_recovery_replays_accepted_results_and_durable_continuations | controller.close() |
| occ-001644 待核实接收者 | tests/test_distributed_rollout.py:157 test_whole_job_recovery_replays_accepted_results_and_durable_continuations | assignment = restored.queue.acquire("new-reader", 1, task_ids=[task_id]).assignments[0] |
| occ-001645 待核实接收者 | tests/test_distributed_rollout.py:170 test_whole_job_recovery_replays_accepted_results_and_durable_continuations | restored.close() |
| occ-001646 待核实接收者 | tests/test_distributed_rollout.py:235 test_generation_workers_cannot_claim_manager_collection_tasks | collection = controller.queue.acquire("manager", 1, task_ids=[task_id]) |
| occ-001647 待核实接收者 | tests/test_distributed_rollout.py:264 test_manager_replacement_fences_readers_and_recovers_only_unused_results | reader.close() |
| occ-001648 待核实接收者 | tests/test_distributed_rollout.py:265 test_manager_replacement_fences_readers_and_recovers_only_unused_results | old.close() |
| occ-001649 待核实接收者 | tests/test_distributed_rollout.py:266 test_manager_replacement_fences_readers_and_recovers_only_unused_results | rebuilt.close() |
| occ-001650 待核实接收者 | tests/test_distributed_rollout.py:404 test_lost_return_reply_preserves_one_pending_task | reader.close() |
| occ-001651 待核实接收者 | tests/test_distributed_rollout.py:505 test_legacy_rollout_return_completes_borrowed_inputs | reader.close() |
| occ-001652 待核实接收者 | tests/test_distributed_rollout.py:523 test_checkpoint_buffer_and_latest_continuation_survive_reader_release | source.close() |
| occ-001653 待核实接收者 | tests/test_distributed_rollout.py:558 test_buffer_checkpoint_reuses_durable_groups_and_protects_them_from_gc.<comprehension> | tasks = [task for task in checkpoint["pending"].load()["tasks"] if task["metadata"].get("returned")] |
| occ-001654 待核实接收者 | tests/test_distributed_rollout.py:566 test_buffer_checkpoint_reuses_durable_groups_and_protects_them_from_gc | reader.close() |
| occ-001655 待核实接收者 | tests/test_distributed_rollout.py:580 test_pending_checkpoint_reuses_inputs_without_reserving_leases | reader.close() |
| occ-001658 待核实接收者 | tests/test_distributed_rollout.py:605 test_slow_task_acquire_does_not_block_async_generation.take | entered.set() |
| occ-001659 待核实接收者 | tests/test_distributed_rollout.py:606 test_slow_task_acquire_does_not_block_async_generation.take | if not release.wait(10): |
| occ-001662 待核实接收者 | tests/test_distributed_rollout.py:616 test_slow_task_acquire_does_not_block_async_generation.exercise | if entered.is_set(): |
| occ-001665 待核实接收者 | tests/test_distributed_rollout.py:619 test_slow_task_acquire_does_not_block_async_generation.exercise | assert entered.is_set() |
| occ-001667 待核实接收者 | tests/test_distributed_rollout.py:622 test_slow_task_acquire_does_not_block_async_generation.exercise | release.set() |
| occ-001673 待核实接收者 | tests/test_distributed_rollout.py:655 scheduler_factory.kill | loop.call_soon_threadsafe(worker.actor.producer.cancel) |
| occ-001674 待核实接收者 | tests/test_distributed_rollout.py:658 scheduler_factory.<lambda> | monkeypatch.setattr(ray, "get", lambda ref: ref.result()) |
| occ-001675 待核实接收者 | tests/test_distributed_rollout.py:659 scheduler_factory.<lambda> | monkeypatch.setattr(ray, "cancel", lambda ref: ref.cancel()) |
| occ-001682 待核实接收者 | tests/test_distributed_rollout.py:727 scheduler_factory | release.set() |
| occ-001683 待核实接收者 | tests/test_distributed_rollout.py:729 scheduler_factory | scheduler.close() |
| occ-001685 待核实接收者 | tests/test_distributed_rollout.py:734 scheduler_factory.cleanup | producer.cancel() |
| occ-001695 待核实接收者 | tests/test_distributed_rollout.py:804 test_async_scheduler_fast_worker_fills_batch_without_waiting_for_slow_worker | release.set() |
| occ-001703 待核实接收者 | tests/test_distributed_rollout.py:831 test_slow_worker_control_does_not_block_collection_or_close | result = request.result(timeout=2) |
| occ-001706 待核实接收者 | tests/test_distributed_rollout.py:837 test_slow_worker_control_does_not_block_collection_or_close | request.result(timeout=2) |
| occ-001709 待核实接收者 | tests/test_distributed_rollout.py:843 test_slow_worker_control_does_not_block_collection_or_close | scheduler.close() |
| occ-001712 待核实接收者 | tests/test_distributed_rollout.py:891 test_scheduler_close_unblocks_waiting_consumer | scheduler.condition.wait(timeout=0.01) |
| occ-001713 待核实接收者 | tests/test_distributed_rollout.py:892 test_scheduler_close_unblocks_waiting_consumer | scheduler.close() |
| occ-001715 待核实接收者 | tests/test_distributed_rollout.py:898 test_scheduler_close_unblocks_waiting_consumer | release.set() |
| occ-001744 待核实接收者 | tests/test_distributed_rollout.py:1032 test_worker_refills_locally_and_slow_group_does_not_block_results.exercise | assert worker.producer.done() |
| occ-001745 待核实接收者 | tests/test_distributed_rollout.py:1036 test_worker_refills_locally_and_slow_group_does_not_block_results.exercise | worker.producer.cancel() |
| occ-001756 待核实接收者 | tests/test_distributed_rollout.py:1154 _rollout_args | dataset.write_text("\n".join(json.dumps({"text": f"hello {i}"}) for i in range(7))) |
| occ-001757 待核实接收者 | tests/test_distributed_rollout.py:1438 test_two_ray_nodes_generate_transfer_and_restore | source.close() |
| occ-001758 待核实接收者 | tests/test_distributed_rollout.py:1467 test_two_ray_nodes_generate_transfer_and_restore | runtime.ready.clear() |
| occ-001761 待核实接收者 | tests/test_distributed_rollout.py:1478 test_two_ray_nodes_generate_transfer_and_restore | runtime.condition.wait(timeout=0.01) |
| occ-001762 待核实接收者 | tests/test_distributed_rollout.py:1494 test_two_ray_nodes_generate_transfer_and_restore | runtime.condition.wait(timeout=0.01) |
| occ-001764 待核实接收者 | tests/test_distributed_rollout.py:1511 test_two_ray_nodes_generate_transfer_and_restore | source.close() |
| occ-001765 待核实接收者 | tests/test_distributed_rollout.py:1521 test_two_ray_nodes_generate_transfer_and_restore | runtime.ready.clear() |
| occ-001766 待核实接收者 | tests/test_distributed_rollout.py:1532 test_two_ray_nodes_generate_transfer_and_restore | runtime.condition.wait(timeout=0.1) |
| occ-001767 待核实接收者 | tests/test_distributed_rollout.py:1538 test_two_ray_nodes_generate_transfer_and_restore | source.close() |
| occ-001768 待核实接收者 | tests/test_distributed_rollout.py:1540 test_two_ray_nodes_generate_transfer_and_restore | cluster.shutdown() |
| occ-001769 待核实接收者 | tests/test_distributed_rollout.py:1659 test_restore_source_handoff_releases_obsolete_snapshot_graphs | store.release("checkpoint:old") |
| occ-001770 待核实接收者 | tests/test_distributed_rollout.py:1720 test_restore_source_handoff_preserves_lazy_consumers_and_failed_save | store.release("checkpoint:old") |
| occ-001771 待核实接收者 | tests/test_distributed_rollout.py:1730 test_restore_source_handoff_preserves_lazy_consumers_and_failed_save | store.release(saved["storage_owner"]) |
| occ-001772 待核实接收者 | tests/test_distributed_rollout.py:1776 test_restore_source_handoff_preserves_prefix_before_later_accepted_result | controller.store.release("checkpoint:old") |
| occ-001777 待核实接收者 | tests/test_distributed_rollout.py:1833 test_cancelled_rebuffer_waiter_does_not_drop_its_continuation.exercise | waiters[0].cancel() |
| occ-001781 待核实接收者 | tests/test_distributed_rollout.py:1891 test_shutdown_allows_large_buffers_and_propagates_deadline_failure | scheduler.close() |
| occ-001782 待核实接收者 | tests/test_distributed_rollout.py:1893 test_shutdown_allows_large_buffers_and_propagates_deadline_failure | scheduler.close() |
| occ-001783 待核实接收者 | tests/test_distributed_rollout.py:1934 test_online_gc_waits_for_training_completion_and_checkpoint_release | controller.store.release("checkpoint:test") |
| occ-001784 待核实接收者 | tests/test_distributed_rollout.py:1981 test_joint_restore_starts_gc_only_after_consumer_state_is_durable | assert controller._gc_thread.is_alive() |
| occ-001785 待核实接收者 | tests/test_distributed_rollout.py:1986 test_joint_restore_starts_gc_only_after_consumer_state_is_durable | controller.close() |
| occ-001786 待核实接收者 | tests/test_distributed_rollout.py:1998 test_background_gc_failure_stops_queue_work_and_fails_close | lease = queue.acquire("reader").assignments[0].lease |
| occ-001791 待核实接收者 | tests/test_distributed_rollout.py:2014 test_background_gc_failure_stops_queue_work_and_fails_close | assert controller._gc_stop.is_set() and calls == ["collect"] |
| occ-001792 待核实接收者 | tests/test_distributed_rollout.py:2039 test_background_gc_failure_stops_queue_work_and_fails_close | controller.close() |
| occ-001793 待核实接收者 | tests/test_distributed_rollout.py:2041 test_background_gc_failure_stops_queue_work_and_fails_close | assert next(controller.store.read(ref)).payload == b"still protected" |
| occ-001797 待核实接收者 | tests/test_distributed_rollout.py:2053 test_admission_pause_acknowledges_workers_without_waiting_for_responses | assert not release.is_set() |
| occ-001798 待核实接收者 | tests/test_distributed_rollout.py:2057 test_admission_pause_acknowledges_workers_without_waiting_for_responses | release.set() |
| occ-001803 待核实接收者 | tests/test_distributed_rollout.py:2079 test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run.fetch | entered.set() |
| occ-001805 待核实接收者 | tests/test_distributed_rollout.py:2080 test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run.fetch | await release.wait() |
| occ-001810 待核实接收者 | tests/test_distributed_rollout.py:2095 test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run | await entered.wait() |
| occ-001812 待核实接收者 | tests/test_distributed_rollout.py:2097 test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run | release.set() |
| occ-001815 待核实接收者 | tests/test_distributed_rollout.py:2180 test_checkpoint_fork_restores_partial_ready_and_producer_without_parent_mutation | fork.close() |
| occ-001816 待核实接收者 | tests/test_distributed_rollout.py:2203 test_checkpoint_fork_restores_partial_ready_and_producer_without_parent_mutation | fork.release([assignment.lease]) |
| occ-001817 待核实接收者 | tests/test_distributed_rollout.py:2205 test_checkpoint_fork_restores_partial_ready_and_producer_without_parent_mutation | fork.close() |
| occ-001818 待核实接收者 | tests/test_distributed_rollout.py:2236 test_checkpoint_fork_restores_partial_ready_and_producer_without_parent_mutation | resumed.close() |
| occ-001819 待核实接收者 | tests/test_distributed_rollout.py:2274 test_automatic_empty_restore_reads_the_saved_dataset_offset | controller.close() |
| occ-001820 待核实接收者 | tests/test_distributed_rollout.py:2308 test_automatic_restart_before_first_checkpoint_recovers_the_same_queue | reader.close() |
| occ-001821 待核实接收者 | tests/test_distributed_rollout.py:2309 test_automatic_restart_before_first_checkpoint_recovers_the_same_queue | controller.close() |
| occ-001822 待核实接收者 | tests/test_distributed_rollout.py:2323 test_automatic_restart_before_first_checkpoint_recovers_the_same_queue | controller.close() |
| occ-001828 待核实接收者 | tests/test_fully_async_rollout.py:112 test_rollout_takes_target_groups_and_leaves_surplus_queued | worker.output_queue.put((gid, _make_group(gid))) |
| occ-001830 待核实接收者 | tests/test_fully_async_rollout.py:132 test_get_completed_groups_limit | worker.output_queue.put((gid, _make_group(gid))) |
| occ-001831 待核实接收者 | tests/test_fully_async_rollout.py:153 test_dynamic_filter_drops_groups_and_refills | worker.output_queue.put((gid, group)) |
| occ-001838 待核实接收者 | tests/test_fully_async_rollout.py:241 test_loop_backpressure_stops_topping_up_when_queue_is_full | worker.start() |
| occ-001840 待核实接收者 | tests/test_fully_async_rollout.py:252 test_loop_backpressure_stops_topping_up_when_queue_is_full | worker.close() |
| occ-001846 待核实接收者 | tests/test_fully_async_rollout.py:292 test_local_worker_lifecycle_is_scoped_to_source.<comprehension> | assert all(not worker.worker_thread.is_alive() for worker in workers) |
| occ-001852 待核实接收者 | tests/test_glm52_6layer_deterministic_e2e.py:264 _train_args | return " ".join(groups) |
| occ-001858 待核实接收者 | tests/test_glm52_6layer_deterministic_e2e.py:409 _run | return proc.returncode, "".join(lines) |
| occ-001864 待核实接收者 | tests/test_published_payload_retry.py:23 test_result_and_shelve_payloads_recover_at_the_storage_layer | header = f.read(12) |
| occ-001865 待核实接收者 | tests/test_published_payload_retry.py:25 test_result_and_shelve_payloads_recover_at_the_storage_layer | f.write(bytes(12)) |
| occ-001866 待核实接收者 | tests/test_published_payload_retry.py:32 test_result_and_shelve_payloads_recover_at_the_storage_layer.restore | f.write(header) |
| occ-001874 待核实接收者 | tests/test_qwen2.5_0.5B_opd_sglang.py:25 _get_gpu_split | all_gpus = os.environ.get("CUDA_VISIBLE_DEVICES", ",".join(str(i) for i in range(NUM_GPUS))).split(",") |
| occ-001880 待核实接收者 | tests/test_qwen2.5_0.5B_opd_sglang.py:84 execute | os.environ["CUDA_VISIBLE_DEVICES"] = ",".join(train_gpus) |
| occ-001881 待核实接收者 | tests/test_qwen2.5_0.5B_opd_sglang.py:197 execute | teacher_process.kill() |
| occ-001882 待核实接收者 | tests/test_qwen2.5_0.5B_opd_sglang.py:198 execute | teacher_process.wait() |
| occ-001893 待核实接收者 | tests/test_qwen2.5_0.5B_training_recovery.py:352 execute | http.get(engine["url"] + "/health", timeout=2) |
| occ-001900 待核实接收者 | tests/test_qwen3_4B_external_pd.py:120 _get_disaggregation_ib_device | return ",".join(devices) if devices else None |
| occ-001901 待核实接收者 | tests/test_qwen3_4B_external_pd.py:137 _get_gpu_split | all_gpus = os.environ.get("CUDA_VISIBLE_DEVICES", ",".join(str(i) for i in range(NUM_GPUS))).split(",") |
| occ-001903 待核实接收者 | tests/test_qwen3_4B_external_pd.py:159 _launch_sglang_server | env["CUDA_VISIBLE_DEVICES"] = ",".join(gpus) |
| occ-001910 待核实接收者 | tests/test_qwen3_4B_external_pd.py:226 execute | os.environ["CUDA_VISIBLE_DEVICES"] = ",".join(train_gpus) |
| occ-001911 待核实接收者 | tests/test_qwen3_4B_external_pd.py:319 execute | external_args = "--rollout-external-engine-addrs " + " ".join(all_addrs) + " " |
| occ-001912 待核实接收者 | tests/test_qwen3_4B_external_pd.py:374 execute | if p.poll() is None: |
| occ-001913 待核实接收者 | tests/test_qwen3_4B_external_pd.py:375 execute | p.kill() |
| occ-001914 待核实接收者 | tests/test_qwen3_4B_external_pd.py:376 execute | p.wait() |
| occ-001922 待核实接收者 | tests/test_rollout_manager_recovery.py:162 cluster | cluster.shutdown() |
| occ-001934 待核实接收者 | tests/test_rollout_manager_recovery.py:387 test_driver_detach_releases_real_trainer_when_manager_cannot_pause | startup.close(failed=True) |
| occ-001966 待核实接收者 | tests/test_rollout_straw_transport.py:465 test_manager_adapts_legacy_samples_and_validates_accepted_refs | controller.close() |
| occ-001967 待核实接收者 | tests/test_rollout_straw_transport.py:597 test_durable_batch_replays_one_plan_and_rejects_mixed_ranks | controller.close() |
| occ-001968 待核实接收者 | tests/test_rollout_straw_transport.py:709 test_straw_debug_archive_keys_lazy_tensors_gc_and_legacy_export | archive.release() |
| occ-001969 待核实接收者 | tests/test_rollout_straw_transport.py:1058 test_disk_weight_updates_do_not_require_actor_return_values.<lambda> | monkeypatch.setattr(group, "release", lambda: group._actor_handlers.clear()) |
| occ-001970 待核实接收者 | tests/test_rollout_straw_transport.py:1405 test_checkpoint_lock_covers_cleanup_and_releases_on_seal_failure | controller.close() |
| occ-001977 待核实接收者 | tests/test_rollout_straw_transport.py:1440 test_checkpoint_lock_released_when_controller_process_is_killed | assert process.stdout.readline() == b"ready\n" |
| occ-001980 待核实接收者 | tests/test_rollout_straw_transport.py:1448 test_checkpoint_lock_released_when_controller_process_is_killed | process.stdin.close() |
| occ-001981 待核实接收者 | tests/test_rollout_straw_transport.py:1449 test_checkpoint_lock_released_when_controller_process_is_killed | process.stdout.close() |
| occ-001982 待核实接收者 | tests/test_rollout_straw_transport.py:1450 test_checkpoint_lock_released_when_controller_process_is_killed | process.stderr.close() |
| occ-002010 待核实接收者 | tests/test_server_control.py:94 test_boundary_health_check_bypasses_grace_and_cleans_dead_actor | monitor.start() |
| occ-002011 待核实接收者 | tests/test_server_control.py:100 test_boundary_health_check_bypasses_grace_and_cleans_dead_actor | monitor.stop() |
| occ-002028 待核实接收者 | tests/test_server_control.py:239 test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve | headers = await reader.readuntil(b"\r\n\r\n") |
| occ-002030 待核实接收者 | tests/test_server_control.py:248 test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve | body = await reader.readexactly(length) |
| occ-002033 待核实接收者 | tests/test_server_control.py:251 test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve | writer.write(b"HTTP/1.1 200 OK\r\nContent-Length: " + str(len(body)).encode() + b"\r\n\r\n" + body) |
| occ-002035 待核实接收者 | tests/test_server_control.py:252 test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve | await writer.drain() |
| occ-002037 待核实接收者 | tests/test_server_control.py:257 test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve | writer.close() |
| occ-002039 待核实接收者 | tests/test_server_control.py:258 test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve | await writer.wait_closed() |
| occ-002050 待核实接收者 | tests/test_server_control.py:279 test_http_transport_preserves_streams_timeouts_and_connection_budget.check | server.close() |
| occ-002052 待核实接收者 | tests/test_server_control.py:280 test_http_transport_preserves_streams_timeouts_and_connection_budget.check | await server.wait_closed() |
| occ-002072 待核实接收者 | tests/test_straw_fully_async_recovery.py:87 _reward_once | assert sample.metadata.get("reward_calls", 0) == 0, "A completed sample was scored twice" |
| occ-002078 待核实接收者 | tests/test_straw_fully_async_recovery.py:197 _run_job | source.close() |
| occ-002079 待核实接收者 | tests/test_straw_fully_async_recovery.py:199 _run_job | cluster.shutdown() |
| occ-002080 待核实接收者 | tests/test_straw_fully_async_recovery.py:204 _kill_job | if process.poll() is not None: |
| occ-002081 待核实接收者 | tests/test_straw_fully_async_recovery.py:225 _kill_job | child.kill() |
| occ-002082 待核实接收者 | tests/test_straw_fully_async_recovery.py:228 _kill_job | process.wait(timeout=20) |
| occ-002083 待核实接收者 | tests/test_straw_fully_async_recovery.py:234 _kill_job | if child.is_running() and child.status() != psutil.STATUS_ZOMBIE: |
| occ-002097 待核实接收者 | tests/test_straw_r3.py:150 test_cancelled_straw_publication_drains_before_releasing_capacity.delayed_write | entered.set() |
| occ-002098 待核实接收者 | tests/test_straw_r3.py:151 test_cancelled_straw_publication_drains_before_releasing_capacity.delayed_write | if not release.wait(5): |
| occ-002111 待核实接收者 | tests/test_straw_r3.py:173 test_cancelled_straw_publication_drains_before_releasing_capacity.run | release.set() |
| occ-002116 待核实接收者 | tests/test_straw_r3.py:216 test_lazy_prefetch_reloads_between_forward_and_backward | prefetcher.close() |
| occ-002119 待核实接收者 | tests/test_streaming_rollout.py:100 test_merge_stream_chunks.decode | return "".join(f"<{token_id}>" for token_id in token_ids) |
| occ-002120 待核实接收者 | tests/test_streaming_rollout.py:122 _generation_state.<lambda> | decode=lambda token_ids, skip_special_tokens=False: "".join(f"<{token_id}>" for token_id in token_ids) |
| occ-002127 待核实接收者 | tests/test_streaming_rollout.py:242 test_generate_streaming_preserves_metadata_across_stream_intervals | "".join(f"<{token_id}>" for token_id in token_slice), |
| occ-002194 待核实接收者 | tests/test_streaming_rollout.py:555 test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise.generate | first_batch.set() |
| occ-002195 待核实接收者 | tests/test_streaming_rollout.py:557 test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise.generate | all_started.set() |
| occ-002197 待核实接收者 | tests/test_streaming_rollout.py:558 test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise.generate | await finish.wait() |
| occ-002201 待核实接收者 | tests/test_streaming_rollout.py:573 test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise | await asyncio.wait_for(first_batch.wait(), 1) |
| occ-002202 待核实接收者 | tests/test_streaming_rollout.py:576 test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise.<comprehension> | assert not any(task.done() for task in tasks) |
| occ-002203 待核实接收者 | tests/test_streaming_rollout.py:577 test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise | tasks[70].cancel() |
| occ-002208 待核实接收者 | tests/test_streaming_rollout.py:581 test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise | await asyncio.wait_for(all_started.wait(), 1) |
| occ-002209 待核实接收者 | tests/test_streaming_rollout.py:584 test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise | finish.set() |
| occ-002218 待核实接收者 | tests/test_streaming_rollout.py:601 test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise.wait_for_release | queued.set() |
| occ-002220 待核实接收者 | tests/test_streaming_rollout.py:602 test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise.wait_for_release | await release.wait() |
| occ-002225 待核实接收者 | tests/test_streaming_rollout.py:612 test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise | await queued.wait() |
| occ-002226 待核实接收者 | tests/test_streaming_rollout.py:614 test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise | release.set() |
| occ-002231 待核实接收者 | tests/test_training_recovery.py:310 test_recovery_e2e_contacts_dashboard_without_proxy.Dashboard.do_GET | self.wfile.write(body) |
| occ-002235 待核实接收者 | tests/test_training_recovery.py:345 test_recovery_e2e_contacts_dashboard_without_proxy | server.shutdown() |
| occ-002237 待核实接收者 | tests/test_training_recovery.py:349 test_recovery_e2e_contacts_dashboard_without_proxy.<comprehension> | assert all(not env.get(name) for env in started for name in proxies) |
| occ-002238 待核实接收者 | tests/test_training_recovery.py:513 test_source_snapshot_restores_cursor_and_buffer | source.buffer.clear() |
| occ-002239 待核实接收者 | tests/test_training_recovery.py:648 test_failed_attempt_releases_trainers_despite_manager_failure | startup.close(failed=True) |
| occ-002240 待核实接收者 | tests/test_training_recovery.py:673 test_successful_attempt_cleans_both_owners_after_dispose_error | startup.close(failed=False) |
| occ-002241 待核实接收者 | tests/test_training_recovery.py:715 test_training_resume_keeps_checkpoint_and_attempt_configuration_separate | resolved = resume.apply(args) |
| occ-002246 待核实接收者 | tests/training_recovery_test_helpers.py:38 _session_snapshot | for routes in data.get("rollout_routed_experts", []): |
| occ-002266 待核实接收者 | tools/convert_torch_dist_to_hf_parallel.py:137 WrappedStorageReader._parallel_preload_files.read_file | data = stream.read() |
| occ-002267 待核实接收者 | tools/convert_torch_dist_to_hf_parallel.py:140 WrappedStorageReader._parallel_preload_files.read_file | data = stream.read() |
| occ-002271 待核实接收者 | tools/convert_torch_dist_to_hf_parallel.py:155 WrappedStorageReader._parallel_preload_files | result = future.result() |
| occ-002276 待核实接收者 | tools/convert_torch_dist_to_hf_parallel.py:299 save_tensors | converted = future.result() |
| occ-002280 待核实接收者 | tools/convert_torch_dist_to_hf_parallel.py:339 save_tensors | filename, elapsed = future.result() |