VisionHub Intelligence Hub

実践ガイド / エージェント設計

AIエージェント
文脈で動く。

単発のプロンプトから一歩進み、自律的に観察・判断・行動するエージェントを設計する。 コンテキストの組み立て方、ツール設計、失敗モードと対策、評価設計まで—— 信頼できるエージェントを安定運用するための実務の勘所をまとめました。

Category 実践ガイド / 設計
Audience 開発者 / AI設計者
Reading time 約 22 min
Issue No. 09 / Agents

— TL;DR

エージェントの成否は、文脈の設計で決まる。 必要な情報を、必要なときに、必要な分だけ渡す。ツールは少数精鋭で明快に。 不可逆操作の前に人間の承認点を置き、全行動をログ化して評価する—— これが自律エージェントを安定運用するための土台です。

エージェントとプロンプトの違い

「1回の指示」と「自律的に動き続けるループ」は別物。どちらを使うかの判断が、設計の出発点になります。

単発のプロンプトは、入力に対して1往復で答えを返す仕組みです。これに対してエージェントは、観察→判断→行動→観察を繰り返す自律ループとして動きます。外部の検索・ファイル操作・APIといったツールを呼び出し、自ら世界の状態を変えながら目標に近づいていく点が決定的な違いです。

自律性が上がるほど便利になりますが、同時に誤った行動が連鎖して暴走するリスクも上がります。だからこそ、どこまでを自律に任せるかの設計が要になります。

観点単発プロンプトエージェント
動き方入力に対し1往復で完結観察→判断→行動を繰り返す自律ループ
外部作用テキストを返すのみツールで状態を変えられる(検索・ファイル・API)
主なリスク出力の品質・誤り誤った行動の連鎖(暴走)
向く作業手順が固定で結果が予測できる状況依存で判断が要る

どちらを使うかの判断

手順が固定なら自動化スクリプトやテンプレ化したプロンプトで十分。状況に応じた判断やツール操作の連鎖が要るときにエージェントが活きます。

  • 手順が常に同じ → 自動化スクリプト / 定型プロンプト
  • 状況によって次の一手が変わる → エージェント
  • 判断材料が動的で、途中で取捨選択が要る → エージェント

— 導入の鉄則

まず最小の自律範囲から始める。 信頼が確認できた領域だけ、段階的に権限を広げる。いきなり広い裁量を与えないことが、暴走を防ぐ最初の一歩です。

コンテキストエンジニアリングの原則

コンテキストは無限ではない。何を、いつ、どれだけ渡すかを設計することが、判断の質を左右します。

コンテキストは有限の資源です。詰め込みすぎると、かえって精度が落ち、判断がぶれます。多く渡すほど賢くなるわけではない、というのが出発点の認識です。

原則はシンプルで、そのターンの判断に必要な情報だけを、必要なタイミングで渡すこと。恒久的な前提(役割・方針・制約)と、一時的な作業状態は明確に分離します。長い履歴はそのまま積み上げず、要約して圧縮し、原文が要るときだけ取り出す参照方式にします。

原則チェックリスト

原則具体的にやること
有限資源として扱う詰め込みすぎず、不要な情報は削ぎ落とす
必要十分に絞るそのターンの判断に要る情報だけを、要るときに渡す
前提と作業状態を分離役割・方針・制約と、一時的な作業メモを別管理にする
履歴は圧縮して参照長い履歴は要約し、原文は必要時のみ取り出す
鮮度・出典を添える情報の信頼度をメタ情報化し、古い前提の混入を防ぐ

— 覚えておくこと

コンテキストは「足し算」ではなく「編集」。良いエージェント設計とは、何を入れるかと同じくらい、何を入れないかを決める作業です。

信頼できるエージェントの
設計パターン

いきなり全部を任せない。計画と実行を分け、役割を割り、承認点を置く——再現性の高い構成パターンを使います。

Plan / Execute
計画と実行の分離

先に手順を立てさせ、各ステップを検証しながら進めます。計画と実行を一気に走らせず、節目で照合することで、誤りが連鎖する前に気づけます。

Multi-Role
役割分割

調査役・実行役・検証役に分け、相互チェックさせる多段構成。単一のエージェントに全責任を負わせるより、誤りを捕まえやすくなります。

Human-in-the-loop
人間の承認点

不可逆な操作の前には、必ず人間の承認点を挟みます。削除・送信・課金など影響の大きい行動を、自動で完結させないためのガードレールです。

Incremental
小さく試して観察

小さく実行して結果を観察し、それに応じて次手を決めるインクリメンタルな進行。一度に大きく動かさないことで、軌道修正の余地を残します。

State Externalization
状態の外部化

重要な進捗や決定は、メモリやファイルに残します。文脈が途切れても再開できるよう、エージェントの「記憶」を外部に持たせておきます。

Verify Step
検証段の挿入

各ステップの結果を次に進む前に検証する段を入れます。「進んだか」ではなく「正しく進んだか」を毎回確認するのが、信頼の土台です。

— パターンの使い分け

単純な作業なら計画と実行の分離だけで十分。複雑で誤りが許されない作業ほど、役割分割承認点を厚くする——タスクの重さに応じてガードレールの強さを調整します。

ツール設計のベストプラクティス

エージェントの行動の質は、与えるツールの質で決まる。多ければ良いわけではありません。

ツールは少数精鋭が基本です。似た機能のツールが乱立すると、エージェントはどれを使うべきか迷い、選択ミスを起こします。重複するものは統合・整理し、それぞれの役割を明確にします。

名前と説明は曖昧さなく書きます。いつ使うか・引数の意味・返り値の形がひと目で分かることが、正しい選択につながります。返り値はエージェントが扱いやすい構造化形式にし、不要な情報は削ります。

設計チェックリスト

項目あるべき姿
少数精鋭。似た機能は統合・整理する
名前と説明いつ使うか・引数・返り値を曖昧さなく明記
返り値構造化形式。不要な情報は削って渡す
失敗時無言で落とさず、原因と次の一手が分かるエラーを返す
破壊的操作確認フラグやドライランを備え、誤実行の被害を限定

ツール定義のテンプレート

説明文は人間ではなくエージェントが読む前提で書きます。次の枠を埋める形で定義すると、曖昧さが減ります。

  • name: 動詞+対象で機能が分かる名前(例: search_orders
  • description: 「いつ使うか」を1文で。使ってはいけない場面も書く
  • arguments: 各引数の意味・型・必須/任意・例を明記
  • returns: 返る構造とフィールドの意味。空・該当なしの表現も定義
  • errors: 想定エラーと、その時にエージェントが取るべき次手
  • destructive: 破壊的なら dry_run / confirm を用意

⚠ よくある失敗

失敗時に無言でエラーを握りつぶすと、エージェントは何が起きたか分からず同じ行動を繰り返します。失敗は必ず「原因」と「次にどうすべきか」を含めて返してください。

メモリと状態管理

エージェントは放っておくと文脈を失う。短期と長期の記憶を役割で分け、状態の置き場所を決めます。

記憶は用途で分けます。短期記憶は現在の作業文脈、長期記憶は恒久的な知識。両者を混ぜると、一時的なメモが永続知識を汚し、判断がぶれます。

会話が伸びてきたら、定期的に要約して圧縮し、決定事項とToDoを構造化して保持します。知識そのものは外部ストアに置き、必要なときに検索して取り込む方式にすると、コンテキストを節約できます。

記憶の種類役割置き場所の例
短期記憶現在の作業文脈・直近のやり取りコンテキストウィンドウ / 作業メモ
長期記憶恒久的な知識・方針・過去の決定外部ストア / ドキュメント
要約メモ圧縮した履歴・決定事項・ToDoセッション内の構造化メモ
現在地メモ再開時に最初に読む進捗の地図ファイル(例: STATE.md

— 単一情報源の原則

同じ情報を複数箇所に散らさないこと。状態の単一情報源(single source of truth)を決め、セッションをまたぐ作業には、再開時に必ず読む「現在地メモ」を残します。

失敗モードと対策

エージェントは決まった壊れ方をする。典型的な失敗を先に知っておけば、対策は設計に組み込めます。

自律エージェントの失敗には反復するパターンがあります。あらかじめ典型を把握しておけば、検知の仕組みとガードレールを設計段階で仕込めます。次の表が代表的な失敗モードと、その対策です。

失敗モード症状対策
ループ・スタック同じ行動を繰り返して進まない反復を検知し、試行上限と打ち切り条件を設ける
目標逸脱途中で当初の目的を見失う各ステップで元のゴールを再確認させる
誤ったツール選択場面に合わないツールを呼ぶ選定理由を明示させ、不適切なら差し戻す検証段
文脈汚染古い・誤った情報が混入する行動前に出典と鮮度を検証する
過剰な自律影響の大きい操作を勝手に実行必ず人間の承認を経るガードレールを敷く

⚠ 最も危険なのは「過剰な自律」

多くのインシデントは、エージェントが影響の大きい操作を自分で完結させたときに起きます。削除・送信・公開・課金などの不可逆操作は、例外なく人間の承認点を経由させてください。

評価とモニタリング

「動いた気がする」では運用できない。代表タスクで測り、過程も含めて評価します。

改善の前に、まず測れる状態を作ります。代表的なタスクを集めた評価セットを用意し、変更の前後で成功率を比較します。これがないと、変更が改善なのか改悪なのか判断できません。

評価は最終成果だけでなく、途中の判断やツール呼び出しの妥当性も見ます。たまたま正解にたどり着いただけ、を見抜くためです。全行動ログ(思考・行動・観察)を残し、失敗時に原因を追跡できるようにします。

計測すべき指標

指標重要度見るポイント
成功率評価セットでの達成割合。変更前後で比較する
過程の妥当性判断・ツール選択が筋の通ったものか
所要ステップ数無駄な行き来が増えていないか
人間介入回数どれだけ自律で完結できているか
コスト1タスクあたりの消費が見合っているか

— 本番投入前のルール

本番に出す前に、ステージング環境で危険操作のシナリオを必ずテストする。 削除・送信・課金などを含むケースを意図的に流し、ガードレールが働くことを確認してから本番に上げます。

モデルの使い分けと最適化

すべてを最上位モデルで回す必要はない。役割ごとに最適なモデルを当てるのが、コストと速度の両立点です。

エージェントの各役割——計画・実行・検証——には、それぞれ適したモデルがあります。難しい判断には強いモデルを、定型処理には軽量なモデルを当てるオーケストレーション設計が、品質とコストの両立につながります。

モデル得意な役割
Opus 4.8claude-opus-4-8高難度な計画立案・難しい判断。標準フラッグシップとして要所に割り当てる
Sonnet 4.6claude-sonnet-4-6標準的な実行・要約・抽出。バランス良く処理する中核
Haiku 4.5claude-haiku-4-5大量・単純な定型処理。コストとスピードを最適化する
Fable 5claude-fable-5用途に応じて選べるClaudeモデルの一つ

役割別の割り当て例

役割割り当て理由
計画Opus 4.8分解と段取りの質が全体を左右する
実行Sonnet 4.6速度と品質のバランスが取りやすい
検証Opus 4.8 / Sonnet 4.6重い判断は上位、定型確認は中核に
定型処理Haiku 4.5抽出・分類など量の出る作業を安価に

— 反復を加速する

Claude Code の Fast Mode(/fastは、Opus 4.8 / 4.7 / 4.6 で出力を高速化します(小型モデルへの切り替えではありません)。設計と検証の反復サイクルを速く回したい場面で有効です。

よくある質問

エージェント設計とコンテキストエンジニアリングについて、現場で繰り返し聞かれる疑問への回答。

AIエージェントと普通のプロンプトの使い分けは?

手順が固定で結果が予測できる作業は、通常のプロンプトや自動化で十分です。状況に応じた判断やツール操作の連鎖が必要な場合にエージェントが有効です。まず小さな自律範囲から始め、信頼を確認しながら広げるのが安全です。

コンテキストエンジニアリングとプロンプトエンジニアリングの違いは?

プロンプトは「1回の指示の書き方」、コンテキストエンジニアリングは「エージェントの各判断に、どの情報をいつどれだけ渡すかを設計する」ことです。履歴の圧縮、状態の分離、鮮度管理など、有限なコンテキストを資源として運用する視点が中心になります。

エージェントの暴走や誤操作はどう防げばよいですか?

不可逆・影響の大きい操作の前に人間の承認点を挟み、試行回数の上限と打ち切り条件を設けます。破壊的ツールにはドライランや確認フラグを備え、全行動をログ化して追跡可能にすることで被害を限定できます。

ツールはたくさん用意したほうが良いですか?

いいえ。似た機能のツールが乱立すると選択ミスを招きます。少数精鋭で統合し、名前・説明・引数・返り値を曖昧さなく定義することが信頼性につながります。返り値は構造化し、失敗時は次の一手が分かるエラーを返すのが理想です。

エージェントの良し悪しはどう評価しますか?

代表タスクの評価セットを用意し、変更の前後で成功率・所要ステップ数・人間介入回数・コストを比較します。最終成果だけでなく途中の判断やツール呼び出しの妥当性も見て、本番前にステージングで危険シナリオを検証してください。

エージェントは"賢さ"ではなく
"設計"で信頼される

— 最終結論

信頼できるエージェントは、文脈の設計から生まれる。
必要な情報を、必要なときに、必要な分だけ渡す。ツールは少数精鋭で明快に定義する。
計画と実行を分け、不可逆操作の前には人間の承認点を置く。
そして全行動をログ化し、代表タスクで継続的に評価する—— 賢いモデルを選ぶことではなく、安全に動き続ける仕組みを設計することが、自律エージェント運用の本質です。

関連ガイド