run-deep-swe について
Pier、mini-swe-agent、OpenRouterで利用できるモデルを使い、DeepSWEコーディングエージェントのベンチマークを実行するスキルです。セットアップ、テスト、サンプリング、全タスク実行、結果確認を扱います。
主な機能
- 01Pierとmini-swe-agentのセットアップ
- 02OpenRouter経由のモデル接続
- 03スモークテストとタスクサブセットの実行
- 04ベンチマーク全タスクの実行
- 05ベンチマーク結果の確認
活用シーン
- 01単一タスクでのOpenRouter接続確認
- 02決定的サンプルのタスク評価
- 03DeepSWEベンチマーク全体の実行
インストール
コマンドをコピーしてターミナルで実行します。
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 タスクのコーディングエージェントベンチマークです。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 でグローバルにエクスポートしています(安全策として、週ごとのハード支出上限が設定されています)。新しいシェルでは OPENROUTER_API_KEY がすでに利用できます。設定されていない場合は、シェルの設定を再読み込みします。
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 用のネイティブなモデルクラスがあります。以下の 2 つの方法はいずれも OPENROUTER_API_KEY と OpenRouter のスラッグ(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
注:
- スラッグには OpenRouter の正確なスラッグを指定します。実行前に openrouter.ai/models で確認してください。
- 無料またはコストゼロのモデルでは、OpenRouter のコスト追跡でエラーが発生することがあります。その場合は
export MSWEA_COST_TRACKING=ignore_errorsを設定してください。 - フラグの表記はバージョンによって異なる場合があります。
pier run --helpとmini --helpで確認してください。
最初にスモークテストを実行する(1 タスク — 全件実行の前に行う)
コーパスにトークンを費やす前に、必ず単一タスクで接続全体を検証してください。
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 エラーが発生した場合は、キーが間違っています。「provider not provided」または「model not mapped」が表示された場合は、スラッグを修正するか、方法を切り替えてください。
サブセットの実行(決定論的なサンプル)
pier run -p deep-swe/tasks --agent mini-swe-agent \
--model minimax/minimax-m3 --model-class openrouter \
--n-tasks 10 --sample-seed 0
113 タスクのコーパス全体(トークンと時間が必要 — 事前にユーザーに確認する)
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" | スラッグのプレフィックスがない | 方法 B の openrouter/... を使うか、方法 A で --model-class openrouter を指定する |
| "model isn't mapped"/コストエラー | モデルのコストが不明 | export MSWEA_COST_TRACKING=ignore_errors を設定する |
| 不明なフラグ | バージョンの差異 | pier run --help を確認する |