# AIエージェントをソフトウェアに組み込むプラクティス
# Synchronous Edge Agent|同期エッジ
🎯 キャッチーなメッセージ
LLMエージェント、まず「同期で返せないか?」を考えていますか?
非同期キューやチェックポイントに飛びつく前に、シンプルな同期HTTPで完結できないか検討しましょう。実際のユースケースの大半は、それで十分です。
🔥 解決する課題
エージェントアーキテクチャの議論はすぐに非同期キュー・チェックポイント・オーケストレータへ進みがちです。しかし多くのタスクは「LLM1回+軽いツール」で済みます。軽量タスクに重い実行基盤を持ち込むと、運用コスト・デプロイ複雑性・デバッグ難度が不必要に跳ね上がります。
💡 提案パターン
Synchronous Edge Agent(同期エッジ)は、単発のLLM推論と軽量ツール0〜2回を1つの同期HTTPリクエスト内で完結させる、最もシンプルな実行方式です。状態はインコンテキストのみで、チェックポイントもキューも不要です。テキスト分類・情報抽出・単純Q&A・要約・構造化出力生成など「数秒で終わる確実な処理」に最適です。タイムアウトはLLM呼び出し単位でp99実測値に基づいて設定し、モデル選択もレイテンシ予算の関数として決定します。迷ったらまずここから始めてください。
✅ 選定条件
使うとき:
- 処理が概ね5〜10秒以内に終わる(対面)、またはAPI連携で30秒以内
- LLM呼び出しは1回、ツール呼び出しは0〜2回の軽量処理
- 途中再開や人間承認が不要
使わないとき:
- 処理が30秒を超えうる、または所要時間が読めない場合
- 複数ツールの多段呼び出しや計画・反省ループが必要な場合
- 不可逆な副作用(決済・データ削除等)を伴う場合
⚠️ 落とし穴
- タイムアウトはHTTPサーバ全体でなくLLM呼び出し単位で設定すること。全体タイムアウトだけではLLMがハングしてワーカースレッドを占有し続けます
- 同期枠内でのリトライは0〜1回に限ること。リトライを重ねるとクライアントが先にタイムアウトします
- サーバーレス環境ではコールドスタートがレイテンシ予算を食うため、Provisioned Concurrencyやウォームアップで対処が必要です
🔧 実装方針
- クライアントからのHTTPリクエストをAPI Gateway経由でハンドラが受け取り、1つのリクエスト-レスポンスサイクル内で処理を完結させます。外部キューやチェックポイントストアは登場しません
- タイムアウトはHTTPサーバ全体ではなくLLM呼び出し単位で設定し、その値はlatency_budgetから導出します。p95/p99の実測値に基づいて調整します
- モデル選択もレイテンシ予算の関数として決定します。分類・抽出には軽量モデル、生成にはミッド〜フラグシップを選びます
- 構造化出力(JSON Schema等)を使い、レスポンスの軽量検証を常にONにします。意味検証はレイテンシに余裕がある場合のみ追加します
- 対面UIで生成が長文になる場合はSSEストリーミングを併用し、体感レイテンシを短縮します
#
AIエージェント# #
ソフトウェアアーキテクチャ#