相反(Forks)— 二者択一カタログ¶
原則:排他的な仕組みの選択は、駆動変数 が決めてくれます。 各フォークにはデフォルト(迷ったらどちらを選ぶか)とハイブリッド(折衷の定石)を付けています。ここで最も大切な教訓は 「相反は先に切る」 ことです。キャッシュ可否・承認要否・同期/非同期のような二択は領域ごとに先に分類し、その内側ではじめて 程度 を調整してください。
各フォークの ID(F-1〜F-18)はパターン frontmatter の forks で参照されます。
| ID | フォーク | 選定基準 [駆動変数] |
デフォルト | ハイブリッド | 関連 |
|---|---|---|---|---|---|
| F-1 | 同期 vs 非同期 | 処理時間が待機耐性(体感5–10秒/API連携30秒)を超えるか・途中再開が要るか [latency_budget, reversibility] |
数秒の読取/分類=同期、多段=非同期 | A3 同期ファサード | A1, A2 |
| F-2 | シングル vs マルチエージェント | 専門性/権限に分解できる・並列で時短・単一窓が溢れる・調整コストに見合う [task_variability, cost_sensitivity] |
まずシングル | Supervisor+専門役(文脈分離) | B5 |
| F-3 | オーケストレーション vs コレオグラフィ | 制御・監査・一貫性=中央/高スケール・疎結合=イベント [accountability] |
業務系=中央集権 | 中核は中央、周辺探索はイベント | B5 |
| F-4 | ワークフロー(決定論) vs エージェント(自律) | 手順が定型か変動か。規制下・高リスクは固定 [task_variability, accountability] |
できる限りワークフロー | 決定論骨格+確率論ノード | B1, B2 |
| F-5 | Plan-then-Execute vs ReAct | 環境が静的=計画先行/動的=ReAct [task_variability] |
計画先行(編集可能プラン) | 計画先行+逸脱時のみ再計画 | B4 |
| F-6 | プロンプト制御 vs コード/ポリシー制御 | 境界・法的制約・不可逆操作はコード [failure_cost, accountability] |
境界はコード | ポリシー強制+プロンプト誘導 | E2 |
| F-7 | RAG vs FT vs ロングコンテキスト | 知識が変わる/出典要=RAG/様式固定=FT/文書が小さい=ロング [accountability, cost_sensitivity] |
知識はRAG | 様式はFT、事実はRAG | D2 |
| F-8 | 単一プロバイダ vs マルチプロバイダ | 可用性SLA厳しい/コスト最適化=マルチ/一貫性・キャッシュ=単一 [provider_trust, cost_sensitivity] |
単一で開始 | 抽象化層越しにマルチ | G5 |
| F-9 | インライン検証(block) vs 事後・標本検証 | 悪い出力が届くコストが高い=インライン [failure_cost, latency_budget] |
高リスク経路=インライン | 高=インライン、低=標本監査 | E3 |
| F-10 | 生成と検証を同一 vs 別系統 | 事実性・安全性が重要なら独立・できれば決定論的検証を別に [failure_cost] |
高リスクは別系統 | 同一で一次反省+別系統で最終 | B6 |
| F-11 | LLMに推論 vs ツール/コードに委譲 | 決定論的に解ける処理はコードへ、LLMは曖昧な解釈・生成 [failure_cost, cost_sensitivity] |
決定可能はコード | LLMが計画、コードが計算 | B1 |
| F-12 | Fail-fast vs 縮退継続 | 部分結果が有用か危険か [failure_cost, latency_budget] |
危険なら fail-fast | 段階的縮退ラダー | G5 |
| F-13 | プッシュ(SSE/WS/Webhook) vs プル(ポーリング) | リアルタイム進捗要=プッシュ [latency_budget] |
進捗表示=プッシュ | 進捗SSE+確定Webhook | A3 |
| F-14 | インコンテキスト状態 vs 外部ステートストア | 耐久性・再開・複数共有が要れば外部化 [reversibility] |
長時間/承認/複数=外部 | 作業中は窓、節目で永続 | A2, F1 |
| F-15 | 読取専用 vs 書込可能エージェント | 書込は境界明確・dry-run・冪等・監査・補償・高リスク承認が揃って初めて許可 [reversibility, failure_cost] |
まず読取専用 | Read自由・Writeはゲート | C2 |
| F-16 | 自動メモリ vs 承認型メモリ | 低リスク嗜好=自動/重要・機微=承認 [input_trust, failure_cost] |
推測属性は保存しない | 候補抽出→隔離→承認 | D3 |
| F-17 | 構造化出力強制 vs 自由出力+抽出 | 下流が厳格な型=強制/自由さが価値=自由 [accountability, task_variability] |
下流連携=強制 | 自由生成後に抽出パス | E4 |
| F-18 | ビルド vs バイ | 制御・データ主権=ビルド/速度・運用負荷=バイ [cost_sensitivity, accountability] |
抽象化層越しでバイ開始 | ランタイム抽象化で差替可能に | G5 |