Paul Everitt による Agentic Engineering への移行について
Paul Everitt による Agentic Engineering への移行について
コアとなるテーゼ:Vibe Coding から Agentic Engineering へ
ソフトウェアエンジニアリングは現在、生産性のパラドックスに直面しています。AI はコード出力を大幅に増加させますが、これがまだ持続的な組織的価値に結びついていません。業界は現在、「vibe coding」(本質的には AI が生成したコードが動作することを期待するだけ)のフェーズにあり、これはしばしば品質の低下を招き、長期的なイノベーションよりもレイオフを通じた短期的な利益率の向上に焦点を当てることにつながります。
これを解決するために、業界は agentic engineering へと移行しなければなりません。これは「ものを作るものを作る」という実践です。AI を人間のコーダーに取って代わるものとして使うのではなく、agentic engineering は、人間を拡張し、AI エージェントが厳格なエンジニアリング規律の中で動作することを保証するシステム、スキャフォールディング(足場)、およびガードレールを構築することに焦点を当てます。
生産性のパラドックスと組織的な失敗
強力な AI ツール(「god box」)が利用可能であるにもかかわらず、多くの組織はシステム的な価値を実現できていません。Paul Everitt は、いくつかの決定的な失敗のポイントを強調しています。
- コーディングのボトルネックという誤謬: ノーベル賞受賞者の Daron Acemoglu と Grady Booch を引用し、Everitt は、コーディング自体はソフトウェアエンジニアリングにおける主要なボトルネックではなかったと指摘しています。コード生成を加速させることは、エンジニアリング・プロセスのほんの一部しか解決しません。
- 品質と信頼の問題: 信頼には大きな隔たりがあり、生成された結果の正確さに高い自信を持っている開発者はわずか 3% にすぎません。これは、エージェントが人間の監視なしに誤ったコードを本番環境に直接プッシュしてしまう「Challenger-style」の惨事をもたらすリスクを生み出します。
- 「Token Maxing」の問題: 従業員はトークン使用量や出力メトリクスを増やすためにシステムを悪用する可能性があり、これが経営陣の AI 成功への認識と、エンジニアの実際の経験との間の乖離を生み出します。
- 不一致なインセンティブ: 多くの企業は、以前は構築不可能だった製品を作るためにテクノロジーを利用するのではなく、株価を上げるための「mega layoffs」の正当化として AI を使用しています。
Agentic Engineering を実践における定義
Agentic engineering は、コードを書く行為そのものではなく、AI エージェントを管理するシステムの設計に関するものです。エンジニアの役割を、手動のビルダーからシステムのアーキテクトへと移行させます。主な実践的な構成要素は以下の通りです。
評価とテスト
- 「Clicky Buttons」よりも Evals: エンジニアリングには客観的な測定が必要です。開発者は、エージェントが特定の予算とターン数内で高品質なコードを生成しているかどうかを判断するために、厳格な評価(evaluations)を実装しなければなりません。
- エージェントのための Red-Green テスト: 最初に壊れたテストを書くことで、エンジニアは「成功」がどのようなものかを正確に定義できます。その後、エージェントはエンジニアのテストスタイルを模倣し、定義された green state に向かって作業を進めることで、コードベースを「彷徨う」時間を短縮できます。
ツールとインフラストラクチャ
- セキュアなサンドボックス: エージェントは単にコードベースを grep するだけではなく、問題を解決するために、セキュアで低レイテンシのサンドボックス(例:Python の Rust-based subsets のような Monty)で特定のツールコードを生成・実行する必要があります。
- Harness Engineering: Everitt は、「harness を所有していないなら、memory を所有していないことになる」と強調しています。オーケストレーションと実行環境を所有することは、エージェントの挙動を動作させるための制御を維持するために極めて重要です。
システム設計とモジュール性
- Agent-Centric Architecture: 大規模なレガシー・コードベースは、再編成が必要になるかもしれません。エージェント中心の世界におけるモジュール性は、以前とは異なり、並列の sub-agents と高度に専門化された context engineering をサポートする構造を要求します。
QA エージェント
- 品質保証のボトルネックが人間である代わりに、 エンジニアは、人間のレビューに向けた準備として、ブラウザや dev tools プロトコルを介して独自の instrumentation を収集する QA エージェントを構築すべきです。
エンジニアリング規律の奪還:行動への呼びかけ
Everitt は、ソフトウェア・コミュニティは「エンジニアリング」の定義を、厳格な科学および実践として奪還しなければならないと主張しています。彼は、開発者に現在のハイプ・サイクルを超え、agentic design patterns(AI 駆動型システムの構築のための、標準化され再利用可能なアーキテクチャ・パターンの一式)を確立することを求めています。
目標は、リーダーシップのナラティブを「より多くのコード、より少ない人々」から「拡張によるイノベーション」へとシフトさせることです。システム設計とエンジニアリングの規律に焦点を当てることで、開発者は、AI を単に利益率を絞り出すためではなく、壮大な新ソリューションを構築するために使用することを保証できます。