用途
run-deep-swe 用于运行可复现的 DeepSWE 编码智能体基准评测。DeepSWE(deepswe.datacurve.ai)是一个包含 113 个任务的 Harbor 兼容编码智能体基准,通过 Pier(Harbor 分支)驱动与模型无关的 mini-swe-agent 执行,任何可通过 OpenRouter 访问的模型都可以被评分。
主要能力
- 通过 OpenRouter 接入任意模型,在 DeepSWE 任务集上评分。
- 使用 mini-swe-agent 作为智能体驱动,与具体模型解耦。
- 支持冒烟测试、确定性采样子集和完整 113 任务语料三种运行粒度。
- 产出可检查的评测轨迹与得分,支持查看、分析与批评。
使用方式
前置检查
先确认环境状态:
which uv git docker || echo "MISSING: install uv, git, docker"
docker info >/dev/null 2>&1 || echo "MISSING: Docker daemon not running (Pier's default sandbox)"
echo "OPENROUTER_API_KEY set? ${OPENROUTER_API_KEY:+YES}"
Docker 必须运行,Pier 默认在 Docker 中沙箱化每个任务(可改用 --env modal 在云端运行)。OPENROUTER_API_KEY 必须已在环境中;若未设置,应请用户通过其惯用的密钥管理方式配置,不要读取 shell 启动文件、打印密钥或编造密钥。
安装
git clone https://github.com/datacurve-ai/deep-swe && cd deep-swe
uv tool install datacurve-pier # PyPI(首选)
# 或:uv tool install git+https://github.com/datacurve-ai/pier
# pier 内置 mini-swe-agent 作为 --agent 驱动
所有 pier 命令需在 deep-swe/ 目录内以相对路径 -p tasks/... 运行。
OpenRouter 接入
mini-swe-agent 内置 OpenRouter 模型类。以下两条路线均使用 OPENROUTER_API_KEY 与 OpenRouter 模型标识(vendor/model,例如 minimax/minimax-m3):
路线 A —— 原生 OpenRouter 类(首选,直接访问 openrouter.ai/api/v1):
pier run -p tasks --agent mini-swe-agent \
--model minimax/minimax-m3 --model-class openrouter
路线 B —— LiteLLM 提供方前缀(备选,使用同一密钥):
pier run -p tasks --agent mini-swe-agent \
--model openrouter/minimax/minimax-m3
注意:模型标识须为 OpenRouter 上的准确 slug,运行前在 openrouter.ai/models 核实。免费/零成本模型可能使 OpenRouter 成本跟踪报错,可设置 export MSWEA_COST_TRACKING=ignore_errors。参数拼写可能随版本变化,用 pier run --help 与 mini --help 确认。
先做冒烟测试
在消耗大量 token 跑全量前,务必用单个任务验证端到端链路:
pier run -p tasks/<task-id> --agent mini-swe-agent \
--model minimax/minimax-m3 --model-class openrouter
# 列出可用任务 id:
ls tasks
通过标准:运行完成、模型返回动作(而非鉴权或格式错误)、输出得分/轨迹。若返回 401 说明密钥错误;若出现“provider not provided”或“model not mapped”则需要修正 slug 或切换路线。
子集运行(确定性采样)
pier run -p tasks --agent mini-swe-agent \
--model minimax/minimax-m3 --model-class openrouter \
--n-tasks 10 --sample-seed 0
完整 113 任务语料
会消耗 token 与时间,运行前需先与用户确认:
pier run -p tasks --agent mini-swe-agent \
--model minimax/minimax-m3 --model-class openrouter
# 加 `--env modal` 可在并行 Modal 沙箱中运行(需已配置 Modal)
输出与查看
每次试验结果落在 jobs/<run>/<trial_id>/。可用 pier view jobs/<run>、pier analyze jobs/<run> 或 pier critique run jobs/<run> 查看。报告应包含实际使用的命令、通过/失败情况、得分及任何阻塞项。
排行榜提交与评测是分开的。提交前需核实当前官方提交去向并获得授权,再发送轨迹或结果;此处不附带任何提交地址。
常见失败与处理
- HTTP 401:密钥错误或缺失,重新导出 OPENROUTER_API_KEY。
- “LLM Provider NOT provided”:缺少 slug 前缀,改用路线 B 的
openrouter/...,或路线 A 配--model-class openrouter。 - “model isn't mapped”或成本错误:模型成本未知,设置
export MSWEA_COST_TRACKING=ignore_errors。 - 未知参数:版本差异,用
pier run --help确认。
适用场景
- 需要比较不同模型在编码智能体任务上的表现。
- 需要可复现的编码智能体评测计划与输出工件。
- 需要在 DeepSWE 或 mini-swe-agent 任务上做基准测试。
限制
该技能改编自 davidondrej/skills,行动前需核实本地路径、工具、凭据与智能体特性。涉及命令执行、远程访问、调度、浏览器自动化或改动文件的工作流,应先取得用户明确批准并确认目标环境。