从一个 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_sample
slime/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 sample

iscoroutinefunction 在调用前决定 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_function
slime/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 decorator

Awaitable 与 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_generate
slime/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 signature
examples/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 = None

boot_agent_sandbox resource cleanup
examples/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 共用解释,具体输入与清理由所在函数决定。

先辨认对象类型,再查同名接口的具体讲解

这些只是可能相关的原生接口;必须先核对接收者类型。没有匹配的名字仍可能属于普通对象或第三方接口。

候选方法名位置数辨认类型后的阅读入口
__aenter__1上下文与迭代的异步协议入口
__aexit__2上下文与迭代的异步协议入口
abort1
acquire11许可区域、限流与归还
线程启动、互斥、通知与退出
asyncio.Lock 保护任务共享状态
同一线程重入 RLock
apply1
call_soon_threadsafe2事件循环停止、executor 排空与关闭
cancel9Timer 启动、取消与退出
Future 取消边界与完成回调
Future 完成、取消与分批回调
Task 身份、归属与完成读取
clear13线程启动、互斥、通知与退出
Event 的等待、通知、状态与清零
close74等待、终止、回收与队列关闭
进程池分派与退出
事件循环停止、executor 排空与关闭
写入流量控制与连接关闭
监听器与连接任务的独立收尾
done8同步 Future 的结果、异常与完成状态
Future 完成、取消与分批回调
Task 身份、归属与完成读取
drain1写入流量控制与连接关闭
exception6同步 Future 的结果、异常与完成状态
Task 身份、归属与完成读取
get342异步队列的生产消费与背压
同步队列与立刻尝试取结果
任务上下文与 token 恢复
跨进程生产消费与结束协议
get_loop1Task 身份、归属与完成读取
is_alive5线程启动、互斥、通知与退出
创建进程、启动上下文与所有权
is_running1事件循环停止、executor 排空与关闭
is_set4线程启动、互斥、通知与退出
Event 的等待、通知、状态与清零
join40线程启动、互斥、通知与退出
Timer 启动、取消与退出
等待、终止、回收与队列关闭
进程池分派与退出
kill4等待、终止、回收与队列关闭
子进程通信、超时与回收
poll2子进程通信、超时与回收
put7异步队列的生产消费与背压
同步队列与立刻尝试取结果
跨进程生产消费与结束协议
read10流式读取与协议分帧
readexactly1流式读取与协议分帧
readline1流式读取与协议分帧
readuntil1流式读取与协议分帧
release12许可区域、限流与归还
线程启动、互斥、通知与退出
asyncio.Lock 保护任务共享状态
同一线程重入 RLock
reset6任务上下文与 token 恢复
result21同步 Future 的结果、异常与完成状态
Future:待完成结果与所属 loop
创建、登记、运行与跨线程提交
Task 身份、归属与完成读取
set15线程启动、互斥、通知与退出
任务上下文与 token 恢复
Event 的等待、通知、状态与清零
set_exception1测试替身直接构造 Future 并设置结果
Future 完成、取消与分批回调
set_result2测试替身直接构造 Future 并设置结果
Future 完成、取消与分批回调
shutdown7线程池关闭与在途工作清理
start7线程启动、互斥、通知与退出
Timer 启动、取消与退出
创建进程、启动上下文与所有权
stop4事件循环停止、executor 排空与关闭
submit1线程池 submit 与 map 的结果组织
wait22线程启动、互斥、通知与退出
Event 的等待、通知、状态与清零
Condition 谓词循环、锁交接与通知
子进程通信、超时与回收
wait_closed2写入流量控制与连接关闭
监听器与连接任务的独立收尾
write22写入流量控制与连接关闭
展开本节 681 条源码记录
记录 / 讲解源码位置原代码
occ-000002examples/coding_agent_rl/generate.py:27
<module>
from collections.abc import AsyncIterator
occ-000007examples/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-000857slime/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-000884slime/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-001103slime/rollout/sample_hooks.py:3
<module>
import inspect
occ-001109slime/rollout/sample_hooks.py:41
_apply_to_sample
if inspect.isawaitable(result):
occ-001116slime/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-001124slime/rollout/sglang_rollout.py:261
<module>
generate_call: Awaitable[Sample | list[Sample]],
occ-001129slime/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-001448tests/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-001470tests/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()

专题首页 · 上一节 · 源码与教程对照 · 全部用法