🤖
フレームワーク #AI #エージェント #エンジニアリング #ソフトウェア開発 #経営 📚 フリーエージェントAI ·

エンジニアエージェント:コードを書く前に、変更責任を設計する

要件整理、設計、実装、テスト、レビュー、運用までをAIエージェントで支援するための濃い設計図。

エンジニアリングを分解する

エンジニアリングは「コードを書く仕事」ではない。要求を理解し、変更範囲を決め、設計し、実装し、テストし、レビューし、運用に乗せる仕事である。

O*NETのSoftware Developersでは、ユーザー要求の分析、ソフトウェア設計、性能改善、テスト手順の開発、プロジェクト情報の共有、データベース性能評価などが仕事として整理されている。AIエージェントに渡すべきなのは、単独で好きにコードを書かせることではなく、変更責任を小さく分けて扱わせることである。

分解した能力AIの役割成果物
要件整理曖昧な依頼を入力、出力、制約へ分ける要件メモ
影響調査関連コード、API、DB、テストを探す影響範囲メモ
設計既存パターンに沿った変更案を作る実装方針
実装小さな差分を作るパッチ
テスト既存テストと追加テストを選ぶテスト計画と実行結果
レビューバグ、回帰、セキュリティ、保守性を見るレビューコメント
運用ログ、監視、ロールバック、移行を整理するリリースメモ

Role

エンジニアエージェントの基本ロールは「変更実装・レビュー補助エージェント」である。

  • 既存コードを読み、設計意図を推定する
  • 要求を実装可能な単位へ分ける
  • 変更範囲を最小化する
  • テストで確認できる形へ落とす
  • コードレビュー観点でリスクを出す
  • リリース時の確認事項を整理する

本番障害時の最終判断、DB破壊を伴う移行、秘密情報の扱い、課金や権限に関わる変更は人間に戻す。

Tools

Tool用途
リポジトリ検索関連コード、型、テスト、設定、既存パターンの確認
Git差分、履歴、責務境界、レビュー対象の確認
Issue/PR要件、議論、受け入れ条件、レビューコメントの確認
テストランナー単体、統合、E2E、型チェック、lintの実行
パッケージ管理依存関係、脆弱性、lockfile変更の確認
DB/スキーマ参照migration、テーブル、API契約の確認
CI失敗ログ、flake、環境差分の確認
Observabilityエラー、ログ、メトリクス、トレースの確認
セキュリティスキャナsecret、依存脆弱性、入力検証の確認

エンジニアエージェントに必要なのは、生成能力よりも観察能力である。コードベースを読めないAIは、変更責任を持てない。

Thinking

エンジニアエージェントには、次の思考法を固定する。

思考法チェックする問い
変更最小化要求を満たす最小差分は何か
既存尊重既存の設計、命名、エラーハンドリング、テスト方針に沿っているか
契約意識API、型、DB、イベント、UIの外部契約を壊していないか
回帰仮説どの既存動作が壊れうるか
テスト可能性何を実行すれば成功と言えるか
セキュリティ入力、権限、秘密情報、ログ、依存関係に問題はないか
運用デプロイ、ロールバック、監視、移行に注意点はあるか

AIには「実装して」と言う前に、「関連箇所を列挙し、変更方針とリスクを出して」と指示する。設計なしに生成されたコードは、動いても負債になる。

Output

実装前には、次を出す。

項目内容
要件何を満たすか
非要件今回やらないこと
影響範囲触るモジュール、API、DB、UI、テスト
既存パターン参照した実装
実装方針変更手順
リスク回帰、性能、セキュリティ、運用
テスト計画実行するテストと理由

実装後には、次を出す。

項目内容
変更内容何を変えたか
変更していないことスコープ外を明示
テスト結果実行コマンドと結果
残リスク未確認事項
レビュー観点人間に見てほしい点
リリース注意migration、環境変数、監視、ロールバック

ワークフロー

エンジニアエージェントは、次の順で動かす。

  1. 要求を受け取り、受け入れ条件に直す
  2. 関連コードと既存テストを検索する
  3. 変更案を複数ではなく1つに絞る
  4. 小さなパッチを作る
  5. テストを実行し、失敗を読む
  6. 失敗が自分の変更由来か既存由来か分ける
  7. レビュー用の説明を残す

重要なのは、AIに大きな設計判断を丸投げしないことだ。AIに渡すのは、変更単位と確認単位である。

KPI

  • 変更前の影響範囲メモ作成率
  • テスト実行率
  • PR差分の平均サイズ
  • レビュー指摘の再発率
  • CI失敗から原因特定までの時間
  • リリース後の回帰件数
  • 未確認事項の明示率

エンジニアエージェントの価値は、コード量を増やすことではない。変更の不確実性を下げることである。

エスカレーション

次の場合は必ず人間へ戻す。

  • 本番データを変更・削除する
  • 認証、認可、決済、個人情報、暗号化を触る
  • 依存ライブラリやランタイムを大きく変える
  • DB migrationの後方互換性が不明
  • 既存テストが広範囲に壊れる
  • 要求と既存仕様が矛盾する
  • ロールバック不能な変更を含む

AIはコードを書ける。しかし、システムの責任は持てない。エンジニアエージェントは、責任ある変更の補助者として設計する。

発生しうる業務

エンジニアエージェントの業務は、コード生成だけではない。むしろ、コードを書く前後の仕事が大きい。

頻度業務AIに任せる粒度
日次Issue調査、実装方針、テスト実行、レビュー対応影響範囲、パッチ案、失敗ログ要約
週次技術負債整理、CI失敗傾向、依存更新、バグ分類改善候補、優先順位、再発防止案
月次アーキテクチャ棚卸し、性能確認、セキュリティ確認リスクサマリ、移行計画、監視観点
随時障害調査、脆弱性対応、DB migration、仕様変更原因仮説、ロールバック案、人間確認事項

AIに「実装だけ」を任せると、コード量は増えるが変更責任が薄くなる。エンジニアエージェントは、調査、差分、検証、説明までを一つの仕事として扱う。

学習方法

エンジニアエージェントは、一般的なプログラミング知識より、対象リポジトリの癖を学ぶ必要がある。

学習材料学ぶこと
既存コード命名、責務分割、エラーハンドリング
テスト期待仕様、境界条件、モック方針
PR履歴レビューで重視される観点
障害報告壊れやすい箇所、運用上の注意
ADR/設計メモ採用技術と避けた選択肢
CIログよく落ちるテスト、環境差分
セキュリティルール認証、認可、秘密情報、ログ方針

学習は、ソース全体をベクター検索に入れるだけでは不十分である。「このプロジェクトではこう書く」というルールを、レビュー指摘から抽出する。

能力の磨き方

エンジニアエージェントの能力は、生成したコードが動いたかだけでは測れない。

  • PRごとに、レビュー指摘をカテゴリ化する
  • 変更前に出した影響範囲と、実際に壊れた範囲を比較する
  • テスト失敗の原因分類を記録する
  • セキュリティ、性能、後方互換性の見落としを再発防止ルールにする
  • 「既存パターンに沿っているか」を人間が評価する
  • ロールバックやmigrationの設計漏れをチェックリスト化する

強いエンジニアエージェントは、コードを速く書くAIではない。変更前に怖い場所を言えるAIである。

作り方

最小構成は、リポジトリ検索、テスト実行、Git差分、Issue/PR連携で作る。

  1. コード検索とファイル読み取りを許可する
  2. 書き込み権限は限定し、変更前に計画を出させる
  3. テストコマンドを明文化する
  4. PRテンプレートに「変更範囲、テスト、残リスク」を入れる
  5. レビュー指摘をナレッジ化する
  6. 本番影響のある操作は承認制にする

自律エージェントとして作れない場合は、「コード調査bot」「テスト失敗要約bot」「レビューbot」「小修正bot」に分ける。最初から一体型の自律開発者を作るより、変更責任ごとに分けた方が安定する。

最小実装

最初から自律実行させるのではなく、読み取り、下書き、承認付き更新の順に広げる。エンジニアエージェントの最小実装は、要件、実装、テスト、レビュー、変更リスクを一連で支援するための「入力を読む場所」「出力を残す場所」「人間が承認する場所」を固定することである。

最小構成
入力Git、GitHub、CI、テスト、ログ、仕様書、issue管理から読み取り専用で参照する
処理事実、推測、未確認、次アクションを分けて整理する
承認外部送信、重要判断、台帳更新、金銭・契約・人事に関わる操作は人間承認にする
記録出力、採否、修正理由、次回改善点を同じ場所に残す

入力データ

  • issue、要件、受け入れ条件
  • 関連コード、既存テスト、CI結果
  • エラーログ、再現手順、ユーザー影響
  • レビューコメント、リリース期限

入力データには、取得日、参照元、更新者を残す。古い情報や未確認情報を混ぜると、AIはもっともらしいが危ない判断を出す。

出力フォーマット

フィールド内容
change_plan変更方針と影響範囲
patch実装差分
tests追加・更新テスト
review_notesレビュー観点
rollback戻し方、注意点
unknowns未確認事項、追加で人間が見る点
human_review承認者、判断期限、エスカレーション条件

この形式で残すと、後から「AIが何を見て、何を出し、人間がどこを直したか」を追える。

サンプルプロンプト

あなたはエンジニアエージェントです。
目的は「要件、実装、テスト、レビュー、変更リスクを一連で支援する」ことです。

入力:
- 対象: [対象名]
- 参照データ: [参照元]
- 期限: [期限]
- 制約: [承認条件、禁止事項、守るべきルール]

指示:
1. 事実、推測、未確認事項を分けてください。
2. 出力フォーマットに沿って整理してください。
3. 判断できない点を無理に結論づけず、human_reviewに戻してください。
4. 外部送信、重要更新、金銭・契約・人事に関わる操作は実行せず、承認依頼にしてください。

出力:
- 要約
- 構造化データ
- 次アクション
- human_review

ワークフロー

  1. 要件と完了条件を確認する
  2. 影響範囲を検索し、既存パターンを読む
  3. 小さく実装し、テストを追加する
  4. CI、レビュー、リリースリスクを確認して人間承認へ渡す

この流れを固定すると、AIは単発の相談相手ではなく、業務の一部として改善できる。

失敗パターン

  • 既存設計を読まずに新抽象を作る
  • テストなしで広範囲を変更する
  • 本番影響を説明せずにデプロイ前提にする

失敗パターンは、禁止事項としてプロンプトに入れるだけでは足りない。出力レビュー時に「今回どの失敗に近かったか」を記録し、次の入力データや評価基準へ戻す。

評価ルーブリック

  • 変更理由と影響範囲が明確
  • 既存パターンに沿っている
  • テストまたは検証方法がある
  • 事実、推測、未確認が分離されている
  • 人間に戻すべき判断がhuman_reviewに出ている

5段階評価にする場合は、3を「人間が軽く直せば使える」、4を「そのまま業務で使える」、5を「次回のテンプレートに採用できる」と定義する。

関連

  1. 1. 🤖フリーエージェントとは:人ではなく、能力を呼び出す
  2. 2. 🤖フリーエージェントAI:採用前の会社に職能を置く
  3. 3. 🤖営業エージェント:売る人ではなく、商談を前に進める仕組み
  4. 4. 🤖法務エージェント:契約を判断する前に、論点を見える化する
  5. 5. 🤖広報エージェント:会社の言葉を、継続して外に出す
  6. 6. 🤖人事エージェント:人を評価する前に、組織の仕事を整える
  7. 7. 🤖会計エージェント:数字を作る前に、証跡と異常を整える
  8. 8. 🤖エンジニアエージェント:コードを書く前に、変更責任を設計する
  9. 9. 🤖マーケターエージェント:売れる理由を、仮説と検証に分ける
  10. 10. 🤖動画編集エージェント:素材を切る前に、視聴維持の設計を作る
  11. 11. 🤖Web広告エージェント:予算を燃やす前に、計測と仮説を固定する
  12. 12. 🤖経営企画エージェント:意思決定の前に、論点と数字をそろえる
  13. 13. 🤖事業開発エージェント:売る前に、誰と組むかを設計する
  14. 14. 🤖カスタマーサクセスエージェント:契約後に、顧客が成果へ進む状態を作る
  15. 15. 🤖リサーチエージェント:知らないことを、神格化せず調べる
  16. 16. 🤖プロジェクトマネージャーエージェント:人を動かす前に、仕事を動く形にする
  17. 17. 🤖オペレーションエージェント:会社の定型作業を、漏れない仕組みにする
  18. 18. 🤖採用実務エージェント:人を選ぶ前に、採用の型を整える
  19. 19. 🤖秘書・参謀エージェント:経営者の処理能力を、静かに増やす
  20. 20. 🤖購買・調達エージェント:買う前に、比較と条件を見える化する
  21. 21. 🤖リスク管理・コンプライアンスエージェント:会社を壊す前兆を見つける
  22. 22. 🤖プロダクトマネージャーエージェント:機能を作る前に、課題と優先度を決める
  23. 23. 🤖UXリサーチャーエージェント:顧客の声を、思い込みから切り離す
  24. 24. 🤖デザイナーエージェント:見た目を作る前に、情報と行動を設計する
  25. 25. 🤖ライター・編集者エージェント:書く前に、誰に何を残すかを決める
  26. 26. 🤖データアナリストエージェント:数字を見る前に、問いを固定する
  27. 27. 🤖情シスエージェント:アカウントと権限を、放置しない仕組みにする
  28. 28. 🤖品質保証・QAエージェント:リリース前に、壊れ方を想像する
  29. 29. 🤖ファイナンス・資金調達エージェント:お金を集める前に、説明責任を整える

出典: O*NET Software Developers / NIST Secure Software Development Framework / OWASP