关于 run-deep-swe
一项使用 Pier、mini-swe-agent 和 OpenRouter 上可用模型运行 DeepSWE 编码 Agent 基准测试的技能,涵盖环境配置、测试运行、抽样、全量执行和结果检查。
主要功能
- 01配置 Pier 和 mini-swe-agent
- 02通过 OpenRouter 连接模型
- 03运行冒烟测试和任务子集
- 04执行完整基准任务集
- 05检查基准测试结果
适用场景
- 01用单个任务验证 OpenRouter 模型连接
- 02对确定性抽样任务进行评分
- 03运行完整 DeepSWE 基准测试
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ davidondrej/ skills --skill run-deep-swe安装后在 Claude Code 中输入/run-deep-swe确认已加载。
附带文件agents/openai.yaml
详细介绍
通过 OpenRouter 运行 DeepSWE
DeepSWE(deepswe.datacurve.ai)是一个兼容 Harbor 的 113 项任务编码 Agent 基准测试。它通过 Pier(Harbor 分支)驱动 mini-swe-agent(与模型无关)运行。任何可通过 OpenRouter 访问的模型都可以参与评分。
前置条件 — 首先检查状态
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 密钥,并已在 ~/.zshrc 中全局导出(设置了每周硬性消费上限作为安全保障)。新的 shell 已经可以使用 OPENROUTER_API_KEY。如果该变量意外未设置,请重新加载 shell 配置:
source ~/.zshrc && echo "key loaded? ${OPENROUTER_API_KEY:+YES}"
如果仍未设置,请询问用户 — 切勿编造密钥。
设置
git clone https://github.com/datacurve-ai/deep-swe && cd deep-swe
uv tool install datacurve-pier # PyPI (preferred)
# or: uv tool install git+https://github.com/datacurve-ai/pier
# pier bundles mini-swe-agent as the --agent driver
所有 pier 命令都要在 deep-swe/ 目录内运行,并使用相对路径 -p tasks/...。
配置 OpenRouter(文档中未说明的部分)
mini-swe-agent 原生支持 OpenRouter 模型类。以下两种方式都会使用 OPENROUTER_API_KEY 和 OpenRouter slug(vendor/model,例如 minimax/minimax-m3):
方式 A — 原生 OpenRouter 类(首选,直接访问 openrouter.ai/api/v1):
pier run -p deep-swe/tasks --agent mini-swe-agent \
--model minimax/minimax-m3 --model-class openrouter
方式 B — LiteLLM 提供商前缀(备用;使用相同的密钥):
pier run -p deep-swe/tasks --agent mini-swe-agent \
--model openrouter/minimax/minimax-m3
注意:
- Slug = 完整准确的 OpenRouter slug。运行前请在 openrouter.ai/models 上确认。
- 免费/零成本模型:OpenRouter 的费用跟踪可能会报错。请设置
export MSWEA_COST_TRACKING=ignore_errors。 - 标志的拼写可能因版本而异 — 请通过
pier run --help和mini --help确认。
首先进行冒烟测试(1 项任务 — 在完整运行前执行)
在消耗语料库的 token 前,务必先在单项任务上验证端到端配置:
pier run -p deep-swe/tasks/<task-id> --agent mini-swe-agent \
--model minimax/minimax-m3 --model-class openrouter
# list available task ids:
ls deep-swe/tasks
通过标准:运行完成、模型返回操作(而非身份验证/格式错误),并生成分数/轨迹。如果返回 401 → 密钥错误。如果提示“未提供提供商”/“模型未映射” → 修正 slug 或切换方式。
子集运行(确定性抽样)
pier run -p deep-swe/tasks --agent mini-swe-agent \
--model minimax/minimax-m3 --model-class openrouter \
--n-tasks 10 --sample-seed 0
完整的 113 项任务语料库(会消耗 token 和时间 — 请先与用户确认)
pier run -p deep-swe/tasks --agent mini-swe-agent \
--model minimax/minimax-m3 --model-class openrouter
# add `--env modal` to run in parallel Modal sandboxes (needs Modal configured)
输出与排行榜
- 试验结果位于
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 |