マルチパースペクティブ — ファイルごとに5つのレンズ
オフィスライブラリで最も重要な考え方は、同じソースが異なるレンズから複数のポスト・イットを得ることです。同じsource_url、異なるperspective値。各ポスト・イットは独立してリコール可能です。
例 — 1つのAIインシデント、5つのレンズ
AI安全インシデントがインボックスに届きます。
~/incidents/raw/2026-05-19_INC-2026-0142.jsonlINC-2026-0142 · LLM chatbot · misinformation + financial · severity 4/5単一のソース。5つのアナライザーエージェントが読み、5つのポスト・イットが書かれます。 同じsource_url、同じcasefile_anchor(chatbot-hallucinated-policy)、異なるレンズ。
| レンズ | 何を見るか |
|---|---|
| Root Cause | 「技術的:学習不足のポリシードメインにおけるLLMハルシネーション。リトリーバル層が不在。グラウンディング引用の強制なし。」 |
| Threat Modeling | 「悪用ベクトル:プロンプトインジェクションでボットに高コストな捏造を約束させることが可能。レピュテーション・サービス拒否のリスク。」 |
| Guardrail Designer | 「必要な統制:リトリーバルグラウンディング · 確信度しきい値 · 出力フィルタ · 払戻には人間を介在 · ディスクレーマー。」 |
| Dev Process | 「挿入箇所:デプロイ前のポリシーテストスイート(95%以上の精度) · CIカナリアでのハルシネーション率 · リリース前のレッドチームシミュレーション。」 |
| Critic | 「先の4つが見落としたもの:法務レイヤー、契約ToSレイヤー、組織のオーナーシップギャップ、監査証跡要件。」 |
同じインシデント。5つの読解。それぞれが有効。いずれも矛盾しません。
ファンアウト
📄 1つの受信AI安全インシデント │ Stage 1 Incident Collector ▼ 📄 可読な.mdサイドカー │ Stage 3 — 5つのアナライザーが並列実行 ┌──────────┬──────────┬───────────┬──────────┬──────────┐ ▼ ▼ ▼ ▼ ▼┌─────────┐ ┌─────────┐ ┌──────────┐ ┌────────┐ ┌─────────┐│ ROOT │ │ THREAT │ │ GUARDRAIL│ │ DEV │ │ CRITIC ││ CAUSE │ │ MODEL │ │ DESIGNER │ │ PROCESS│ │ │└────┬────┘ └────┬────┘ └────┬─────┘ └───┬────┘ └────┬────┘ ▼ ▼ ▼ ▼ ▼ 5つのポスト・イット。同じsource_urlとcasefile_anchor、 しかし異なるperspective値。なぜこれがタグに勝るか
タグはファイルが何についてかに答えます。視点は誰が読んで何を見ているかに答えます。
| 問い | タグの答え | 視点の答え |
|---|---|---|
| 「ハルシネーションインシデントを見せて」 | ハルシネーションタグが付いた全ファイル | ハルシネーションに言及するRoot Causeパースペクティブの全ポスト・イット |
| 「チャットボットのプロンプトインジェクションリスクを見せて」 | chatbotタグ + injectionタグが付いた全ファイル | チャットボットインシデントに関するThreat Modelパースペクティブの全ポスト・イット |
| 「SDLC統制が欠けていた箇所を見せて」 | (きれいな答えなし) | CI/テストゲートの欠如を指摘するDev Processパースペクティブの全ポスト・イット |
| 「チームは何を見落としたか?」 | (きれいな答えなし) | インシデントコーパス横断のCriticパースペクティブの全ポスト・イット |
タグはフラット。視点は型付きです。
ドメイン固有のレンズセット
オフィスごとに異なるレンズセットを使用します。上記の5つはAI Guardrail Lab向けに調整されたものです。他のオフィスは異なるセットを使います。
| オフィス | 典型的なレンズ |
|---|---|
| AI Guardrail Lab | Root Cause · Threat Modeling · Guardrail Designer · Dev Process · Critic |
| Maritime operations | Engineer · Class Surveyor · Operations · Charterer · Owner |
| Editorial workflows | Reader · Editor · Fact-checker · Audience · Publisher |
| Finance / audit | Accountant · Auditor · Compliance · Operations · Risk |
パターンは同じ。ドメインによってレンズのアイデンティティが変わります。
どのように強制されるか
パイプラインのStage 3。Converterが可読な.mdを書き、ケースファイルでタグ付けすると、Story-builderがN個のアナライザーエージェントを並列起動します(N = そのケースファイル種別に設定されたレンズ数)。各アナライザーは:
- 同じ
.mdを読む - 自分のレンズを知る(
agents/03-analyzer-{lens}.mdから読み込み) perspectiveカラムにレンズを記録したポスト・イットを書く- ソース行を引用する
パイプラインは、同一ソース → N個のポスト・イットをO(N)の並列呼び出しで保証します。
リコール
recall.py --perspective root-cause --topic chatbot-hallucinationは、チャットボットのハルシネーションパターンに関するRoot Causeレンズの全ポスト・イットを返します。cluster.py --topic chatbot-hallucinationはレンズ横断のナラティブを返します。