File size: 1,293 Bytes
6c641ec
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from __future__ import annotations

import argparse
import json
from pathlib import Path
import sys

ROOT = Path(__file__).resolve().parents[1]
if str(ROOT) not in sys.path:
    sys.path.insert(0, str(ROOT))

from incident_commander_env.orchestration import run_multi_agent_episode


def main() -> None:
    parser = argparse.ArgumentParser()
    parser.add_argument("--scenario", default="payment_provider_degradation")
    parser.add_argument("--seed", type=int, default=None)
    parser.add_argument("--json", action="store_true")
    args = parser.parse_args()

    result = run_multi_agent_episode(scenario_id=args.scenario, seed=args.seed)
    if args.json:
        print(json.dumps(result.to_dict(), indent=2))
        return

    print(result.incident)
    print("\nSpecialist findings:")
    for finding in result.findings:
        print(f"- {finding.agent} ({finding.focus}, confidence={finding.confidence:.2f})")
        print(f"  {finding.conclusion}")
    print("\nParent commander decision:")
    print(f"Root cause: {result.root_cause}")
    print(f"Mitigation: {result.mitigation}")
    print(f"Customer update: {result.customer_update}")
    print(f"Reward: {result.reward:.3f}")
    print(f"Score breakdown: {result.score_breakdown}")


if __name__ == "__main__":
    main()