新刊『部下としてのAI 世界一流エンジニアの進化術』が話題を呼ぶ、米マイクロソフト現役エンジニアの牛尾剛さん。AI開発の最前線で働く現場の知見から、最新の研究成果も踏まえ、もっとも効率のよいAIの動かし方を伝える。
(※本稿は、前掲書から一部抜粋したものです)
◆◆◆
最新の手法「ハーネスエンジニアリング」
本書のLLM(大規模言語モデル)アプリケーション安定化のマニフェストは、最新の状況を踏まえてアップデートしてあるが、この分野の進化形とも言える考え方を示しておきたい。
実は最近、OpenAIが「ハーネスエンジニアリング」という概念を提言して話題になった。この記事にはOpenAIのチームが自分で一切コードを書かず、codexを使って本番のプロジェクトを実施し、その自動化を進めている学びが書かれている。
まさに、AIマネージャを目指す読者のみなさんにも参考になる内容だが、ここで触発されて、私が新たに仕事に取り入れたノウハウを紹介しよう。
コーディングエージェント後のソフトウェアエンジニアリングとして重要なのが、「環境をつくりこむ」という概念だ。エージェント定義やSkillsの整備もAIに快適に働いてもらう職場環境づくりのようなものだ。ここで面白いのが、「ハーネス(制約)をつけるほうがエージェントはうまく動く」ということ。
つまり、細かな指示をあれこれ重ねて伝えるよりも、「やってはいけないこと」「最低限守るルール」というハーネスを設定するほうがAIの性能が上がるのだ。
誰しも身に覚えがあるだろう。会社でいろいろな指示やルールでがんじがらめにされると嫌な気分になるものだが、AIエージェントもまた期待するクオリティで動かなくなる。それを回避するには、「最初から馬鹿なことができないようにだけする」のがコツだ。
例えば、linterというプログラムの書き方を強制的にチェックするものを実行してもらったり、コーディングでは必ずアーキテクチャ設計をチェックしてもらったりする。あるいは、Architecture.md等にアーキテクチャを整理していくのも重要なポイントだし、他にも、脆弱性を持ったライブラリをはじくように検査すると良い。
そうした「ハーネス」を事前にはめておくと、エージェントのタスクに対する「人間の介入」も少なくできる。私も自分のプロジェクトに適用しているが、素晴らしいパフォーマンスを発揮してくれる。
また、エージェントをフル活用していると、人間のPR(プルリクエスト)がボトルネックになる問題が発生する。AIで生産性は爆上がりするが、レビューする側の速度がついていけないのだ。でもレビューしないとエージェントは駄目なコードを書くこともあるので、パススルーは危険だ。
OpenAIの提言では、エージェント自体にレビューは任せ、その代わりに駄目なコードはハーネスエンジニアリングをやった上で許容する―― CI(継続的インテグレーション)を使って定期的にリファクタリングをし、小さなPRをつくるボットのようなGitHub Actionsなどで改善していくという作戦だ。

