Coding Agents
Coding Agents は、自然言語の指示から コードを書く、修正する、テストする、リポジトリ全体を編集する ことを自動化する LLM agent です。SWE-Bench の急速な進化により、近年もっとも実用化が進んでいる agent 分野の一つです。
解く task の幅
| Task | 例 |
|---|---|
| Completion | IDE 内補完 (Copilot 系) |
| Function generation | 関数仕様からの自動実装 |
| Multi-file edit | プロジェクト全体の修正 |
| Issue resolution | GitHub issue から PR 作成 (SWE-Bench) |
| App building | 仕様から full-stack app |
中核 component
Coding agent の典型構成:
- Navigator: file tree、grep、AST 検索でコード理解
- Editor: patch / diff / 全文書き換え
- Runner: test、build、type-check、lint
- Planner: 上記を順序立てて呼び出す
代表的 system
| System | 特徴 |
|---|---|
| GitHub Copilot | IDE 内 completion + chat |
| Cursor | Repository-aware IDE chat、agent モード |
| Aider | CLI ベースの pair programming |
| SWE-agent | SWE-Bench で先駆けとなった OSS agent |
| OpenHands (旧 OpenDevin) | OSS の汎用 coding agent |
| Devin | 自律 coding worker |
| Codex CLI | OpenAI の CLI coding agent |
| Claude Code | Anthropic 製 CLI coding agent |
SWE-Bench
SWE-Bench は、GitHub 上の実 issue を agent が解いて PR にする benchmark です。SWE-Bench Verified では人手で品質を確認した subset を使います。Coding agent の実用性能を測る現在の de facto standard です。
何が難しいか
- Repo scale: 数十万行を扱うため context や retrieval が重要
- Long horizon: 数十ステップにわたる修正が必要
- Verification cost: build と test に時間がかかる
- 環境差分: dependency、OS、CI 設定
- Side effects: 既存テストを壊さない
- Diff hygiene: 不要な変更を入れない
評価のポイント
- Pass@1 (1 回試行で test 通過)
- Pass@k (k 回試行のいずれか通過)
- Diff サイズ / レビューしやすさ
- 実行コスト (token / API call / time)
- Human review burden
数式で見る coding agent の閉ループ
Coding agent は、repository state を観測し、patch action を適用し、test result を得る閉ループとして書けます。
Agent の目的は、最終的な test success と code quality を最大化することです。
ここで、 は最終状態の成功指標、 は変更量、実行時間、リスクなどの cost です。この式の気持ちは、「ただテストを通すだけではなく、少ない変更で、保守しやすく、安全に修正する」ことを目標にするというものです。
関連ページ
主なソース
- SWE-Bench: https://arxiv.org/abs/2310.06770
- SWE-agent: https://arxiv.org/abs/2405.15793
- OpenHands: https://arxiv.org/abs/2407.16741
- Cursor: https://www.cursor.com/
- Aider: https://aider.chat/