この記事の音声は準備中です。
音声の一覧・再生リストへコーディングエージェントへの依頼設計
この記事の目的
コーディングエージェントコードベースを読み、ファイルを編集し、コマンドを実行して検証するループで開発タスクを遂行する Agent。コード補完と異なり「タスク単位の委任」を受けられる。へのタスクの依頼文を設計できるようになります。タスクの切り方・コンテキストの与え方・完了条件の指定を通じて、手戻りとレビュー不能な大量変更を減らすことが目標です。
なお本記事は、エージェントを使う側の依頼設計を扱います。エージェントを作る側のシステムプロンプト設計は Agent 向けプロンプト設計 を参照してください。
対象読者
- コーディングエージェントを使い始めたが、期待と違う出力に手戻りが多い開発者
- チームに依頼の書き方のガイドラインを整備したい人
前提知識
本文
概要
コーディングエージェントの成果は「モデルの能力 × 依頼の質」で決まります。同じツール・同じモデルでも、依頼の設計次第で「一発でレビュー可能な PR が出る」と「3 往復しても使えない」の差が生まれます。
依頼設計の中心は次のループを意識することです。
図を元の大きさで表示
図の中をスクロールして読めます。キーボードでは図の領域へ Tab で移動し、矢印キーを使います。読み終わったら、この見出しをもう一度選ぶと閉じます。
このループの各段階で人がどう関与するかは Human-in-the-Loop 設計 の一般論が当てはまります。
依頼の基本構造
効果的な依頼は次の 4 要素を含みます。
- 目的(なぜ) — 変更の背景。エージェントが途中の設計判断で迷ったときの判断基準になります
- 現状と文脈 — 関連ファイルのパス、エラーメッセージの全文、再現手順
- 制約 — 触ってはいけない領域、維持すべき互換性、使ってよい/いけないライブラリ
- 完了条件 — 「何が通れば完了か」。実行可能なコマンド(テスト・リント)で書くのが最良です
悪い例: 「ログイン周りのバグをいい感じに直して」
良い例: 「ログイン失敗時に 500 が返るバグを修正してください。
目的: 認証失敗は 401 を返すべき(API 規約 docs/api.md)。
現状: POST /login に誤ったパスワードを送ると 500。エラーログは以下(貼付)。
制約: 認証ミドルウェア(src/middleware/auth.ts)の公開インターフェースは変えない。
完了条件: tests/auth/login.test.ts に失敗ケースのテストを追加し、npm test が通ること」タスク分割と粒度
粒度の基準は「1 依頼 = 人が 1 回でレビューできる変更量」です。エージェントは大きなタスクも最後まで走り切ってしまうため、分割しないと数千行の差分が届き、レビューがボトルネックになります。
- 大きなタスクは「計画を出させて人が承認 → 段階ごとに実装」に分けます。多くのツールが計画(プラン)モードや実行前の方針提示をサポートしています
- 探索と実装を分けるのも有効です。「まず現状の実装と影響範囲を調査して報告」→ 報告を確認 → 「この方針で実装」とすると、誤った前提での大量変更を防げます
- 互いに独立したタスクは並列に依頼できます(クラウド実行型の得意領域)。依存があるタスクを並列にすると競合します
コンテキストの与え方
エージェントはリポジトリを探索できますが、探索には時間とトークンがかかり、誤ったファイルに辿り着くこともあります。依頼者が知っている具体情報は最初から渡すのが原則です。
- ファイルパス・関数名・エラーメッセージ全文・再現手順を貼る(「関連コードを探して」より速く正確)
- ただし、当たりが付いていないときは無理に指定しない。誤った指定はエージェントを誤導します。「〜の可能性があるが未確認」と確度を添えます
- 恒常的な情報(実行コマンド・規約)は毎回書かず ルールファイル に置きます
検証と完了条件の設計
エージェントの出力品質を最も安定させるのは「自己検証の手段を渡すこと」です。
- 完了条件を実行可能なコマンドで指定します(「
npm testとnpm run lintが通ること」)。エージェントは失敗すれば自分で修正を繰り返せます - テストがない領域の変更では「まず現状の挙動を固定するテストを書く → その後変更する」という依頼順にすると、退行を検知できます
- 「テストが通ること」だけを完了条件にすると、テスト自体を書き換えて「通す」ことがあります。テストの変更を制約で禁止するか、テスト変更をレビューの重点にします
うまくいかないときの立て直し
- 会話が長くなって精度が落ちたら、直すより新しいセッションで仕切り直す方が速いことが多いです。長い失敗の履歴はコンテキストを汚染し、同じ間違いを繰り返す原因になります(メモリと状態管理 の文脈圧縮の議論と同根です)
- 仕切り直す際は、失敗から得た学び(「この方法は動かない」「正しいのは〜」)を次の依頼文かルールファイルコーディングエージェントがセッション開始時に読み込む、プロジェクト固有の指示書(AGENTS.md・CLAUDE.md など)。恒常的な規約を毎回の依頼文から分離する。に反映してから始めます
- 出力の一部だけが正しい場合は、全部やり直させるより人が差分を編集して部分採用する判断も有効です
- 同じ種類の失敗が続く場合は、依頼ではなくタスクの大きさ・前提の誤り・ルールファイルの不足を疑います
実務での注意点
アンチパターン
- 「いい感じに」型の曖昧依頼 — 期待と異なる方針で大量の変更が返ってきます。→ 完了条件と制約を先に書きます。書けないなら、まず探索タスク(調査依頼)に分けます
- 巨大タスクの丸投げ — 数千行の差分はレビュー不能で、事実上マージできません。→ 計画承認と段階分割で「レビュー可能な単位」を維持します
- エラーの要約だけを渡す — 依頼者の要約が誤診を招きます。→ エラーメッセージ・スタックトレースは全文を貼ります
- 失敗した会話の上で延々と修正指示 — 汚染されたコンテキストが誤りを再生産します。→ 学びを抽出して新セッションでやり直します
チェックリスト
- 完了条件を実行可能なコマンド(テスト・リント)で指定したか
- 1 回のレビューで見きれる変更量になる依頼か(大きければ分割したか)
- 制約(触らない領域・互換性・テスト変更の可否)を明示したか
- 知っている具体情報(パス・エラー全文・再現手順)を渡したか
- 恒常的な規約が依頼文ではなくルールファイルにあるか
関連トピック
- ルールファイルと設定の設計 — 依頼文と恒常ルールの分担
- Agent 向けプロンプト設計 — エージェントを「作る」側のプロンプト設計
- プロンプトエンジニアリングの基礎技法 — 依頼設計の土台になる汎用技法
- Human-in-the-Loop 設計 — 計画承認・レビューの一般論
- コンテキストエンジニアリング — コンテキスト汚染と仕切り直しの背景理論
参考資料
- Claude Code Best Practices(公式ドキュメント) — 依頼の具体化・検証手段の提供に関する公式プラクティス(旧エンジニアリングブログの統合先)(アクセス日: 2026-07-06)
TODO・未確認事項
なし