Prhub

#2379 docs: point the TB2 agent-server eval at the public harbor branch

原始 PR 作者 nblintao 合并时间 2026-08-12 02:14 文件变更 2 提交数 1 评论 0 代码增减 +14 / -14

执行摘要

TB2 eval 示例改指公共 harbor 分支

示例放在公共仓库却要求读者从私有仓库 radixark/harbor-private 的 shi/rebase-on-upstream-v0.7.0 分支拉取 agent server,组织外用户无法克隆,文档与示例的可复现性矛盾直接阻碍外部用户使用。与此同时,Miles 的 agent server 集成已存在于公共仓库 harbor-framework/harbor 的 harbor-miles-v0.20.0 分支,且 examples/swe-agent-harbor-docker 与 swe-agent-harbor-daytona 已经指向该分支,因此本 PR 将示例指针统一到同一公共分支,既修复可访问性问题,也保持示例之间的一致性。作者在 PR 描述中逐项核对了目标分支上示例依赖的 miles_agent_server.py 参数、poll-steps 包装器、/api/sessions、89 任务的 registry.json 以及 harbor datasets download --export,确保命令可直接生效。

值得快速浏览:它是一个典型的『文档可访问性』修复,展示了在公共示例中移除私有仓库依赖的规范化做法,并与既有的 swe-agent-harbor 示例形成统一体系。若你的团队需要维护对外公开的实验示例,可借鉴作者『切换指针前逐项核对目标分支能力』的自证流程。

讨论亮点

本 PR 没有产生实质 review 讨论;唯一的审核意见是 Shi-Dong 的批准『LGTM, thanks!』,未提出任何问题或改动请求。作者在 PR 描述中自证的目标分支逐项核验(miles_agent_server.py 参数、poll-steps 包装器、/api/sessions、registry.json 的 89 个任务、harbor datasets download --export)为无 review 评论的顺利合入提供了依据。

实现拆解

  1. 更新 eval_tb_deepseek_v4_pro.py 的头部文档与参数帮助:模块 docstring 中『harbor-private 的 shi/rebase-on-upstream-v0.7.0 分支』改为『harbor 的 harbor-miles-v0.20.0 分支』;--registry-path 的用法示例由 /path/to/harbor-private/registry.json 改为 /path/to/harbor/registry.json;argparse 中该参数的 help 文本同步改为 Path to harbor's registry.json。
  2. 更新 README.md 四处内容:Prerequisites 第 1 步的分支链接改为 harbor-framework/harbor 的 harbor-miles-v0.20.0 分支;第 4 步 registry.json 来源由 harbor-private checkout 改为 that harbor checkout;Run 章节的 --registry-path 命令参数示例同步替换;Tuning 章节中 --max-seq-len 65536 的描述由 harbor-private branch's poll-steps wrapper 改为 harbor branch's poll-steps wrapper,并更新文末链接脚注。
  3. 验证与配套说明:作者在目标分支上核对了示例依赖的全部能力,但本 PR 仅变更文档与 docstring,无测试文件增减;README 中的 DeepSeek-V4-Pro 评测数据仍来自旧私有分支,未在新分支上复测,这一点已在 PR 描述中如实声明。
文件 模块 状态 重要度
examples/experimental/eval/terminal_bench_via_agent_server/eval_tb_deepseek_v4_pro.py 评测示例 modified 4.98
examples/experimental/eval/terminal_bench_via_agent_server/README.md 评测示例 modified 2.28

关键符号

parse_args

关键源码片段

examples/experimental/eval/terminal_bench_via_agent_server/eval_tb_deepseek_v4_pro.py documentation

示例的核心客户端脚本;模块 docstring 与 --registry-path 参数帮助文本从私有 harbor-private 分支改为公共 harbor-framework/harbor 的 harbor-miles-v0.20.0 分支,虽然无逻辑变更,但这是外部读者最先看到且必须准确的入口。

"""Evaluate DeepSeek-V4-Pro on Terminal-Bench 2.0 via a running ``miles_agent_server``.纯客户端脚本:不涉及训练、Ray 或 Megatron,只负责向已运行的 agent server
并发 POST ``/run`` 请求,并聚合每次 trial 的结果。# 本次指针变更:原文档要求使用私有仓库 radixark/harbor-private 的
# shi/rebase-on-upstream-v0.7.0 分支,组织外用户无法克隆;现改为公共仓库
# harbor-framework/harbor 的 ``harbor-miles-v0.20.0`` 分支,与既有
# swe-agent-harbor-docker / swe-agent-harbor-daytona 示例保持一致。
The agent server is expected to be the one shipped in harbor's
``harbor-miles-v0.20.0`` branch (see that repo's README for setup), running
with ``$HARBOR_TASKS_DIR`` populated with the 89 Terminal-Bench 2.0 tasks.
The server is dataset-agnostic; this script just resolves the 89 task names
from ``registry.json`` and dispatches one ``/run`` request per (task, trial) pair.Usage::    export DEEPSEEK_API_KEY=<your-key>
    python eval_tb_deepseek_v4_pro.py \\
        --server-url http://localhost:8080 \\
        --registry-path /path/to/harbor/registry.json \\
        --n-trials-per-task 4 \\
        --max-concurrent 16"""
import argparse
import asyncio
import json
import os
from collections.abc import Awaitable
from pathlib import Path
from time import monotonic
from typing import Anyimport httpx
import polars as pl
​
​
def parse_args() -> argparse.Namespace:
    parser = argparse.ArgumentParser(
        description="Evaluate DeepSeek-V4-Pro on Terminal-Bench 2.0 via miles_agent_server.",
        formatter_class=argparse.ArgumentDefaultsHelpFormatter,
    )
    # --registry-path 的路径示例与帮助文本同步从 harbor-private 改为公共 harbor,
    # 用户可直接从公共 checkout 的 registry.json 读取 89 个 TB2 任务名。
    parser.add_argument(
        "--registry-path",
        type=Path,
        default=Path("registry.json"),
        help="Path to harbor's registry.json (used to read the 89 TB2 task names).",
    )
    # ... 其余参数(--dataset-name、--n-trials-per-task、--max-concurrent 等)保持原样
    return parser.parse_args()

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

  1. 评测成绩与分支不一致:README 中的 DeepSeek-V4-Pro 数据是在旧私有分支上测得的,作者明确说明未在新分支复跑,外部用户在新分支上复现时结果可能与文档数字有差异。
  2. 外部依赖稳定性:文档链接依赖 harbor-framework/harbor 的 harbor-miles-v0.20.0 分支长期存在且内容不变,若上游调整分支名或代码,示例将失效。
  3. 未端到端实跑:虽然作者逐项核对了文件与参数,但示例整体未在新分支上实际运行过,命令细节可能与真实运行存在偏差。
  4. 影响面有限:不涉及训练、rollout、模型或核心库代码,回归风险主要停留在文档层。

影响范围限定在 examples/experimental/eval/terminal_bench_via_agent_server 目录,不涉及核心库。对用户:组织外部用户现在可以克隆公共 harbor 分支并按示例复现 TB2 评测,解决了『公开但不可复现』的矛盾。对团队:统一了多个示例对 harbor agent server 分支的指向,降低文档维护分散度。对系统:无运行时行为变化,纯文档与注释改动。

评测数据未在新分支复验 依赖外部仓库分支稳定性 文档示例未端到端实跑

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论