コンテンツにスキップ

調査パイプライン

パイプライン概要

すべてのBWTSアラート調査は、固定されたフェーズ順序に従います。重要な設計原則は2つです — フェーズ1は4つのエージェントを並列実行して調査時間を最小化し、ゲートベースの依存追跡により各フェーズがポーリング遅延なく即時に遷移します。

sequenceDiagram
participant App as Dashboard App
participant AM as Alert Monitor
participant MGR as IOT Manager
participant DA as Data Agent
participant MA as Manual Agent
participant PMS as PMS Agent
participant CF as Casefile Agent
participant RPT as Report Agent
participant ENG as Engineering Team
App->>AM: Alert email + API record
activate AM
AM->>AM: Claim & deduplicate
AM->>MGR: Create alert task (alert_monitor_v1)
deactivate AM
activate MGR
Note over MGR: Parse alert, assess severity
MGR->>DA: Phase 1 — Sensor trends
MGR->>MA: Phase 1 — All possible causes
MGR->>PMS: Phase 1 — Maintenance history
MGR->>CF: Phase 1 — Past incidents
MGR->>MGR: Create Phase 1 Gate (blocked by all 4)
deactivate MGR
activate DA
activate MA
activate PMS
activate CF
Note over DA,CF: Running in parallel
DA-->>MGR: Trends, correlations, anomaly timeline
deactivate DA
MA-->>MGR: All causes with alarm codes
deactivate MA
PMS-->>MGR: Overdue status, service gaps
deactivate PMS
CF-->>MGR: Past incidents, fleet patterns
deactivate CF
Note over MGR: Gate resolves → auto-wake
activate MGR
Note over MGR: SYNTHESIS — Cross-reference all evidence — Confirm root causes — Assign confidence levels
MGR->>MA: Phase 2 — Targeted remediation
MGR->>MGR: Create Phase 2 Gate
deactivate MGR
activate MA
MA-->>MGR: Step-by-step procedures + safety warnings
deactivate MA
Note over MGR: Gate resolves → auto-wake
activate MGR
MGR->>RPT: Compile full context → Report
deactivate MGR
activate RPT
RPT->>RPT: Build HTML report
RPT->>ENG: Email report
RPT-->>MGR: Delivery confirmed
deactivate RPT
Note over MGR: Mark investigation complete ✓

フェーズ別の詳細

  1. アラート検出

    BWTSダッシュボード・アプリケーションが、センサーデータを継続的にモニタリングします。パラメータがしきい値を超える(例:UV強度がIMOコンプライアンス・レベル以下に下落)と、APIにアラートレコードを作成し、通知メールを送信します。

    Alert Monitor エージェントは、スケジュールされたルーチンを通じてこれを取得し、アラートを確保し、未解決アラートの全体像を取得します。

    graph LR
    A["Sensor Breach"] --> B["API Record"]
    A --> C["Email Notification"]
    B --> D["Alert Monitor"]
    C --> D
    D --> E["Claim + Deduplicate"]
    E --> F["Forward to Manager"]
    style A fill:#fef3c7,stroke:#f59e0b
    style D fill:#dbeafe,stroke:#3b82f6
    style F fill:#ede9fe,stroke:#8b5cf6
  2. フェーズ1 — 並列調査

    IOT Manager はアラートタスクを受領し、即座に4つの専門エージェントを並列で派遣します。

    エージェント調査の焦点データソース
    Data Analysisセンサートレンド、相関、異常タイムラインPostgreSQL (telemetry)
    Manual Agentこのアラーム種別のすべての考えられる原因PureBallast 3.1 manual (621 pages)
    PMS Agentメンテナンス履歴、超過コンポーネントPostgreSQL (maintenance log)
    Casefile Agent過去の類似事象、船隊パターンTask history + events DB

    派遣後、マネージャーはフェーズ1ゲート — 4つすべてのサブタスクIDによってブロックされるタスク — を作成します。最後の専門家が終了した時点で、ゲートは自動的にアンブロックされ、マネージャーを起動します。

  3. 統合

    マネージャーは自ら、フェーズ1のすべての出力を相互参照します。

    1. データ証拠の確認 — 低下は緩やか(劣化)か、突発(故障)か?
    2. メンテナンスの相互確認 — コンポーネントは整備超過か?
    3. マニュアル原因の妥当性確認 — アラームコードはデータの示すものと一致するか?
    4. 履歴の確認 — 以前に発生したことがあるか?前回有効だったのは何か?

    各根本原因には確信度が付与されます:

    レーティング意味基準
    HIGH高い確度3つ以上の独立ソースが一致
    MEDIUM可能性あり2ソースが一致
    LOW可能性のある単一ソースまたは矛盾する証拠

    これがマネージャーが決して委任しない唯一のステップです — すべての証拠ソースを同時に推論する必要があるためです。

  4. フェーズ2 — 標的型修復

    マネージャーは確定した根本原因を機器マニュアル・エージェントに送り、2回目の標的型検索を行います。

    • 各確定原因に対する正確な手順別修復プロセス
    • 安全警告(マニュアルから一字一句引用)
    • 必要な工具と予備部品
    • マニュアルのセクション・ページ参照
  5. レポート & 配信

    最終レポート & メール・エージェントは完全な調査パッケージを受領し、以下を行います。

    1. すべての必須入力が揃っているかを検証
    2. report_builder.py を使用して構造化HTMLレポートを生成
    3. 緊急度ベースの色分け(赤/オレンジ/青)を適用
    4. Gmail SMTP 経由でレポートをエンジニアリングチームに送信

    レポートには以下が含まれます:

    • アラート要約 — すべてのアクティブ・アラートを一覧表化
    • 診断 — 確信度付きの確定根本原因
    • 推奨アクション — 緊急度別にグループ化された手順別修復策

ゲートベースの起動パターン

ポーリング遅延を排除する、重要な設計特性です。

graph TD
subgraph "Phase 1"
T1["Data Agent Task"]
T2["Manual Agent Task"]
T3["PMS Agent Task"]
T4["Casefile Agent Task"]
end
G1["Phase 1 Gate\nstatus: blocked\nblockedBy: T1, T2, T3, T4"]
T1 -- "done ✓" --> G1
T2 -- "done ✓" --> G1
T3 -- "done ✓" --> G1
T4 -- "done ✓" --> G1
G1 -- "All resolved → auto-wake" --> SYN["Manager: Synthesis"]
SYN --> T5["Manual Agent Phase 2"]
T5 --> G2["Phase 2 Gate\nblockedBy: T5"]
G2 -- "Resolved → auto-wake" --> RPT["Manager: Dispatch Report"]
style G1 fill:#fef3c7,stroke:#f59e0b
style G2 fill:#fef3c7,stroke:#f59e0b
style SYN fill:#fce7f3,stroke:#ec4899
style RPT fill:#fef2f2,stroke:#ef4444