Skip to main content

Coding Agents

Coding Agents は、自然言語の指示から コードを書く、修正する、テストする、リポジトリ全体を編集する ことを自動化する LLM agent です。SWE-Bench の急速な進化により、近年もっとも実用化が進んでいる agent 分野の一つです。

解く task の幅

Task
CompletionIDE 内補完 (Copilot 系)
Function generation関数仕様からの自動実装
Multi-file editプロジェクト全体の修正
Issue resolutionGitHub 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 CopilotIDE 内 completion + chat
CursorRepository-aware IDE chat、agent モード
AiderCLI ベースの pair programming
SWE-agentSWE-Bench で先駆けとなった OSS agent
OpenHands (旧 OpenDevin)OSS の汎用 coding agent
Devin自律 coding worker
Codex CLIOpenAI の CLI coding agent
Claude CodeAnthropic 製 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 sts_t を観測し、patch action ata_t を適用し、test result ot+1o_{t+1} を得る閉ループとして書けます。

st+1=ApplyPatch(st,at),ot+1=Test(st+1)s_{t+1}=\mathrm{ApplyPatch}(s_t,a_t), \qquad o_{t+1}=\mathrm{Test}(s_{t+1})

Agent の目的は、最終的な test success と code quality を最大化することです。

maxπ  E[S(sT)λC(a1:T)]\max_\pi \;\mathbb{E}\left[S(s_T)-\lambda C(a_{1:T})\right]

ここで、S(sT)S(s_T) は最終状態の成功指標、CC は変更量、実行時間、リスクなどの cost です。この式の気持ちは、「ただテストを通すだけではなく、少ない変更で、保守しやすく、安全に修正する」ことを目標にするというものです。

関連ページ

主なソース