世界を動かす技術を、日本語で。

AIエージェントの代わりに何を構築するか

概要

Hugo はNetflixやMeta、米空軍などのエンジニアに LLMシステム構築 を指導。 多くのチームが AIエージェント に過剰依存し、複雑化・デバッグ困難に直面。 5つの シンプルなLLMワークフロー パターンを推奨。 エージェント は「人間が監督する不安定な業務」でのみ有効。 安定・信頼性重視 ならエージェントではなく明示的なワークフロー設計が重要。

AIエージェント構築の落とし穴と現実解

  • AIエージェント は、最先端のLLM活用として人気だが、実運用では 複雑化トラブル が頻発。
  • 多くの開発者が最初からエージェントに飛びつき、 記憶システムルーティングツール連携キャラクター設計 を盛り込む傾向。
  • 実際には、 システム全体の調整・デバッグ が困難となり、 原因不明のエラー脆弱性 が多発。
  • Hugo自身の失敗例 :CrewAIで理想的なエージェント連携を設計したが、実運用では各エージェントが役割を果たさず、計画が崩壊。
  • 本質的な問題 は「LLMに過度な自由度を与えたことによる 制御不能」。
  • ほとんどのケースで、 シンプルなワークフロー の方が安定・高効率。

LLMシステムの4つの特徴と「エージェント」の定義

  • Memory (記憶):LLMが過去のやりとりを覚える
  • Information Retrieval (情報検索):RAGなどで文脈情報を追加
  • Tool Usage (ツール利用):APIや関数へのアクセス
  • Workflow Control (ワークフロー制御):LLMがどのツールをいつ使うかを決定
  • 「エージェント」とは、この「ワークフロー制御」までLLMに委ねる形態

よくある失敗パターン

  • 複数タスク自動化 を目指し、エージェントで一気に解決しようとする
  • 役割分担や記憶システムを盛り込むが、 協調が破綻
  • 結果、 単純なチェーンやルーティング の方が遥かに安定

推奨される5つのLLMワークフローパターン

  • チェーン(連鎖処理)
    • 例:LinkedInプロフィールからデータ抽出→会社情報追加→メール生成
    • 順次処理 に向く。失敗時はチェーン全体が止まるが、 デバッグ容易
  • パラレル(並列処理)
    • 例:プロフィールの職歴・スキル・学歴を同時抽出
    • 独立タスク の高速処理に最適。 競合・タイムアウト に注意
  • ルーティング(分類分岐)
    • 例:問い合わせ内容ごとに専門ワークフローへ振り分け
    • 入力ごとに異なる処理 が必要な場合。 例外処理 を忘れずに
  • オーケストレータ-ワーカー(制御・実行分離)
    • 例:業界分類→専門ワーカーへ委譲→結果を統合
    • 意思決定と実行の分離明示的な制御 で安定性向上
  • ループ評価(評価フィードバック)
    • 例:メール生成→評価→基準未達なら再生成(最大回数で停止)
    • 品質重視 の場面に有効。 無限ループ防止 が必須

エージェントが有効な場面とその構築法

  • 人間が監督する不安定なワークフロー で真価を発揮
    • 例:SQLクエリ生成→結果評価→人間が論理エラー修正
    • 例:ヘッドライン案出し→人間が選択・修正
    • 例:設計パターン提案→開発者がレビュー
  • 本番環境や安定性重視の業務 には不向き
    • 金融・医療・法務など 決定論的ロジック が求められる場面では 明示的ワークフロー を選択
  • エージェント構築時の注意点
    • 明示的なメモリ管理選択肢制約明確なハンドオフ設計 が必須
    • オブザーバビリティ (可観測性)を確保し、ブラックボックス化を避ける

まとめ・推奨事項

  • エージェントは過大評価・過剰利用 されがち
  • 大半の業務はシンプルなワークフローパターン で十分
  • 人間の監督下での創造的作業 にのみエージェントを活用
  • 安定性・信頼性が最優先 ならエージェントは避ける
  • 構築時は観測性と明示的な制御 を徹底

エージェントに頼りすぎず、課題に合った最適なワークフロー設計が成功の鍵。

Hackerたちの意見

テクノロジーの専門家が、実際にはせいぜい1〜2年の経験しかないっていうのが面白いよね。まるで「2年しか経ってない言語で10年の経験があるコーダーを探してます」っていう逆のミームみたい。

GPT-3が出てから「AIエージェント」を作ってきたよ。同じことをやってる人はたくさんいるし、もう5年経つね。5年経っても専門家になれないなら、専門家なんて存在しないってことだよ。もちろん、今や「エージェント」って言葉は流行語になってしまって、あんまり意味がないけどね。

まさにその反応だわ。「何十チームも一緒に働いたことがある…」って。本当に?

エージェントを作るのは楽しいけど、「コンテキストエンジニアリング」には克服すべき深刻な問題があるのが明らかだね。特に、コンテキストウィンドウのサイズをどれだけ大きくしても、エージェントが見るものをキュレーションしなきゃいけない。エージェントはタスクを強化するために関連性のある情報をフィルタリングするのがあまり得意じゃないから、(a) .mdファイルを散らかしておいてガイドにする必要があるし、(b) 役割を与えなきゃいけない。.mdシステムは基本的なメモリシステムみたいなもので、もっと頑丈にできるし、ユーザーとのインタラクションに基づいてプログラムやモデルをその場で自然言語で構築することもできる。Claude Codeから学んだのは、テストスイートを使ってエージェントを操るのが非常に強力な強化メカニズムだってこと。フィードバックループが成功につながることが多いからね。新しい考え方が、エージェントがより効果的なコラボレーターになるために必要な「ソフトスキル」にも広がることを期待してるよ。

コンテキストの管理が一番の課題だと感じてる:- 並行して再帰的なタスクのための正しいコンテキストを作ること;- 修正された出力だけを見せるためにいくつかのステップを省くこと(例えば、前の応答を編集する);- 反応が欲しいときに、自分のコメントとしてその出力を見せること;などなど。

こういうシステムのために.mdファイルを構築する推奨方法ってある?例えば、人間向けに作るときは可読性のためにたくさんのマークアップが必要だけど、それがLLMにとっては消費できるかどうかは分からない。人間向けに作ったのと同じように、LLMを妨げない.mdを作れる?

エージェントをテストスイートで操作するのは、非常に強力な強化メカニズムです。もう少し詳しく説明してもらえますか?どう進めるんですか?あなたのプロセスはどんな感じですか?

自分のツールと戦ってる時間の方が、実際の仕事をしてる時間より長いんじゃない?

LinkedInで言われてるように、AIエージェントが広く採用されるパターンになるかはまだ確信が持てないけど、考え方にはオープンだよ。今のところ、Claude CodeやCursorみたいに、AIをかなり厳しく管理して使ってる。モデルが十分じゃないからじゃなくて、頻繁に自分の意見を入れて方向性を示したいからなんだ。AIにもっと自由を与えるのが必ずしも望ましいわけじゃない。自分の好みを提供したいからね。もっと使って新しいエルゴノミクスが見えてくるかもしれないけど、今はあまりエージェント的すぎるAIはあんまり欲しくないな。そうなると、ちょっと距離を感じちゃうから。

時間が経つにつれて、モデルの動作を理解して、もっと良いコンテキストや指示を提供することで、モデルの出力や行動に対して自分の好みや方向性を与えるギャップを埋められると思う?自分の経験では、多くのワークフローにおいて、うまくできた「プロンプトエンジニアリング」があれば、AIモデルがこちらの望むように振る舞うのに十分だと思うよ。常にこちらが介入する必要はないんだ。

俺の考えでは、時間が経つにつれて、これらの個々の「テイスト」要素をプロンプトとして少しずつ体系化できると思ってる。それぞれが変更をレビューして提案をするんだ。例えば、あるプロンプトは、コード変更が不変の表現で同じ機能を実現できるのに可変性を導入しないように指示できる。別のプロンプトは無駄なログ文を避けるためのもので(それが何を意味するかの具体的な説明付き)。コード変更を評価したいときは、これらのプロンプトを別々に実行して、構造化された出力を集めるんだ。もちろん、これをコードエージェントに組み込んで、自動レビューの反復を提供してる。もし何かが逃げてしまって、「手動」でコンテキストを提供する必要があると感じたら、新しいプロンプトを追加するか、失敗したプロンプトをどう拡張するか考える。

その通り。別のところでも似たようなコメントをしたけど、古いことわざは今でも当てはまるよね:タダ飯はない。LLMが人間を完全にループから外すことはないって考えるのは理にかなってる。もしそうなったらどうなるか考えてみてよ:人が数個の簡単なプロンプトを基にエージェントを解放して、さらなる入力なしに洗練されたシステムを作れるなら、そのシステムを区別するものがなくなって、意味や価値を失うことになる。もしプロンプティングが新しい抽象レベルだとしたら、Claudeに「ノート取りアプリを作って」って頼むことで何の価値が加わるの?他の100万人も同じような低労力のプロンプトを出せるわけだから、プロンプターにとっての価値は何なの?

なんでこんなに多くの例が「より良いスパムを早く送る」ってことに行き着くんだろう?

笑、あれはまさに彼らの例だったよね?LinkedInで人を探して、「パーソナライズされた」メールをスパムするって。

グリースなしのホイールって、どうなるんだろうね?

これっていつも見かけるよね。従来のワークフローオーケストレーションツールを使って、LLMをその一部として組み込む感じ。モデルの複雑さがフロンティアラボによって簡単になってきて、ワークフローを生産化するのもオーケストレーションツールのおかげで簡単になってるから、こういうのを作るのがすごく楽になる。これらのワークフローは既存の仕事に基づいていることが多いから、価値を認識するのも簡単だし、測定もしやすい。こういうパターンがすごく多いから、Airflow(人気のあるワークフローツールの一つ)用にパッケージ化したよ! https://github.com/astronomer/airflow-ai-sdk

エージェントを信頼性高く動かすために3週間かけた後、もっとシンプルなパターンにしたよ。エージェントはちょうど手の6本目の指の段階にいる感じ。

簡単に言うと、事前に実装できる明確な解決策があればエージェントは必要ないってこと(この記事の「パターン」みたいに)。プログラマーはプログラム的な解決策がある問題に取り組むことが多いから、アドバイスは完全に正しいよ:もっとシンプルで信頼できる解決策を探すべき。将来的にはAIがどんな問題でも強引に解決できるくらい賢くなるかもしれないけど、今は余計な複雑さを加えてるだけだと思う。多くの人がエージェントに興奮してる理由は、彼らがLLMの主な目的として「チャットアシスタント」に慣れてるからだと思うし、これはエージェントの理想的な使い方でもある。チャットアシスタントの解決空間は事前に定義されていないし、より複雑なやり取りはエージェントから価値を得ることができる。例えば、「次の空いてる金曜の夜を見つけて、ボブに遊びに行けるか聞くテキストを送って」って、理論的にはプログラム的に解決できるけど、アシスタントとのすべての可能なやり取りを解決する必要がある。アシスタントとのインターフェースの方法はほぼ無限にあるから、エージェントは素晴らしい解決策だよ。

自分でやるよりも早く応答を確認できるときはうまくいくよ。個人的には、確認せずには信頼するのが難しい。

「コーディネーターはタスクが明確に定義されていないと手を挙げた」みたいなことを見ると、結論が命令型ロジックのためにコーディネーターを使わない方がいいってのは、本当に具体的なプロンプトやツールの説明を使えば解決できる部分がどれだけあるのか分からない。前のツール出力からのコンテキストがツール自体やその推奨使用ケースを説明する部分を圧倒しないように、途中で要約やトランクションを使うことも大事だし。記事が実際に使われる長文のツール説明やプロンプトの例を一つも提供していないと、正しいオーケストレーションを使うことには真実があると思うけど、記事が言うほどエージェント的なオーケストレーションが必要な仕事はもっとたくさんあると思う。

2023年の終わりか2024年の初めにはそうだったと思うけど、2025年の中頃には大体のタスクに対して必ずしもそうとは限らないよ(AIが必要で、単なる自動化じゃない限り)。最新のLLMを使うならね。彼の例の大半は、LLMを呼び出す関数を作る感じだったけど、ツールの選択が悪いからほぼ必須だったんだ。でも、Gemini 2.5 ProやClaude 4みたいな先端のLLMは、指示に従うのもツール選択もかなり上手だから、ワークフローを作る方が必ずしも良いとは限らないと思う。チェックリストツールを持ってて、コマンドを委任したり、タスクを別のエージェントに分けたりすることはあるけど、指示を作ってツールコマンドを割り当てることの利点は、特にUIのある環境でエージェントにツールコマンドを簡単に割り当てたり定義したりできるから、柔軟性があってワークフローよりも一段上の抽象度があるってことだよね。視覚的なワークフローでも、結局はプログラミングだから、壊れやすくて調整が難しいんだ。6~12ヶ月前はそうじゃなかったし、劣った言語モデルを使うなら当てはまらないよ(ほとんどがそうだから)。指示に従ったりツールを使ったりするのが本当に得意なのはほんの一握りだけだと思う。でも、そういうのを使ってエージェントに任せるのは大体のケースで価値があると思う。今後1、2年の間に起こるのは、ブラウザやコンピュータを使ったエージェントの大規模な展開だと思う。それもまた別の抽象レベルだよね。彼らは本当に優れたメモリシステムを取り入れるかもしれないし、UIを使って人間から手順を抽出するデモや観察モードも持つだろうね。探索中に口頭や書面の指示から手順の詳細を学んで(記録して)最適化することもできるだろう。

彼が投稿で紹介しているテクニックは、ほとんどが「問題をデータフローグラフとしてモデル化して、それに従う」って感じだよね。モデル化の部分を飛ばして、コントロールできない何かが十分に良いと信じるのは、信仰であってエンジニアリングじゃないよ。

最強のエージェントモデル(特にClaude Opus 4)は、計算を変えると思う。良いコンテキストが必要だけど、適切なツールを選ぶのが本当に上手いんだよね。

100%同意!エージェントは面白くて遊ぶのが楽しいけど、実際に仕事を進めて生産性を向上させるには、特定のワークフローやプロセスを調整して、AIにしかできないことをやらせるのが正しいアプローチだよね。詳細はここも見てみてね:https://ai.intellectronica.net/the-case-for-ai-workflows