PATOS v4.4 시스템 아키텍처

Predictive Agentic Triage OS — 지능형 재난 대응 데이터 흐름도

FIRE-2026-001 · 신고 접수 03:14
CRITICAL
발화 위치
소록마을 23-7
전라남도 고흥군 도양읍 · 심야 수면 중
샌드위치 패널 접근로 1.8m — 소방차 진입 불가
최우선 구조 대상
마순례 · 84세
난청 거동불편 독거
자력 대피 불가 · 화재 경보 인지 불가
생존 가능 시간 vs 대응 시간
1.5분
HCN 치사 농도
2.5분
플래시오버
12분
소방차 ETA
01.5분2.5분12분
소방차 도착까지 9.5분의 공백 — 표준 대응으로는 생존 불가
PATOS 자율 대응 시퀀스
~3초
신호 수신
STT 변환
~7초
지식 그래프
매핑
~15초
온톨로지
추론
15초~
도보 선발대
ARS 발령

온톨로지 3단계 발전 비교

FIRE-2026-001 기준 · 베테랑 소방관의 판단이 목표 기준선

1
현재 POC
if-else 규칙. 숫자를 비교하고 플래그를 세운다.
접근로 1.8m < 3m → 도보 진입 플래그
서울 자녀 연락이 의미없다는 판단 불가
2
TypeDB 온톨로지
관계 그래프. 마순례 → 건물 → 이웃 → 자원을 연결한다.
인접 건물과의 관계 자동 탐색
판단의 무게 결정은 여전히 규칙 의존
3
온톨로지 + LLM
TypeDB 팩트 + Claude 추론. 맥락과 우선순위를 스스로 판단.
"서울 자녀 연락 의미없음" 자동 판단
현장 감각(풍향·불 번짐)은 소방관 담당
시간대별 판단 비교 — FIRE-2026-001 ← 가로 스크롤
시간 상황 베테랑 소방관 1단계 POC 2단계 TypeDB 3단계 LLM
T+0 신고 접수 "마 씨 집이면 23-7번지. 샌드위치 패널이고 골목이 좁아." '마 노인네' 텍스트 매칭 시도. 주소 인식 실패 가능 '마 노인네' → 주민 DB 그래프 검색 → 자동 매핑 "귀가 어두우셔서"가 난청 플래그임을 문맥으로 인식
T+7초 건물 조회 "접근로 1.8m. 소방차 절대 못 들어가. 도보로 들어가야 해." 1.8m < 3m → 도보선발대 플래그 소방차 진입 불가 관계 자동 생성 "1.8m이면 들것도 힘들다" 추가 판단
T+10초 거주자 확인 "84세 귀 어두우시고 혼자. 서울 자녀 연락은 소용없어." 서울 비상연락처에도 자동 발송 서울(150km) 관계 인식, 판단은 불가 "이장 직접 연락으로 대체" 자동 판단
T+13초 화재 계산 "바람 세고 건조. 샌드위치 패널이면 2~3분이면 끝나." 플래시오버 2.5분 계산 인접 건물 거리 관계 포함 "지금 바로 발령 안 하면 늦는다" 긴박성 표현
T+15초 인접 위험 "바람이 BLDG-006 방향. 조만수 씨도 귀 어두우신데." 인접 건물 위험 계산 없음 이웃 관계 존재, 풍향 없으면 방향 판단 불가 조만수(81세, 난청) 동시 경보 발령
T+2분 이장 위치 "이장이 마을 안에 있나? 없으면 자율방재단 먼저." 위치 모름. 항상 이장 ARS 발송 실시간 위치 연동 없으면 판단 불가 "응답 없으면 3분 후 자율방재단으로 전환"
T+2분30초 플래시오버 "이 시간이면 비닐 다 탔어. 진입 강행하면 선발대 위험." 경고 메시지만 출력 이벤트 → 노드 상태 업데이트 "진입 전 구조물 안전 확인 필요" 경고
T+5분 이장 도착 "어두워서 손전등 없으면 못 들어가." 현장 이후 추적 없음 GPS 연동 시 도착 확인 가능 손전등 지참 여부, 진입 동선 안내
T+12분 소방차 도착 "이미 이장이 할머니 데리고 나왔으면 진압만 하면 돼." 도착 시각 계산만 함 자원 노드 → 도착 이벤트 업데이트 구조 성공 시 진압 모드, 실패 시 구조 우선
결론
베테랑 소방관의 판단은 기억 · 관계 · 경험 3가지로 구성된다. 이 3가지는 온톨로지 + LLM으로 대체 가능하다. 현장 기반 판단(바람 방향, 불 번짐)은 실시간 센서 연동 시 추가된다. PATOS의 목표는 이 판단을 15초 안에 자동화하는 것이다.

구현의 핵심 난제 2가지

기술보다 이 두 가지가 더 오래 걸린다

1
시나리오 초안 수립 — 암묵지를 꺼내는 것 자체가 난제
문제

수행일지에는 "결과"만 기록된다. "03:14 신고접수 → 03:27 현장도착" — 왜 이장한테 먼저 전화했는지, 차를 어디 세웠는지는 없다.

20년 경력의 판단은 기록되지 않는다. 몸이 기억하는 것, 눈으로 읽는 것은 문서화가 안 돼 있다.

해법 — Palantir FDE 방식
1 수행일지 수백 건 분석 → 반복 패턴 추출
2 베테랑 인터뷰 — "왜 그 판단을 했나" 한 가지만 질문
3 초안 시나리오 작성 → 소방관 검토 → 피드백
이 루프가 기술 구현보다 10배 느리다 — 통상 6개월~1년

PATOS 현실적 접근: 고흥소방서 1개소, 소록마을 한정. 소방관 1~2명 인터뷰 3회. 질문은 하나 — "이 마을에서 밤에 불 났을 때 가장 먼저 하는 게 뭐예요? 왜요?"

2
돌발상황 대처 — 상황이 바뀌면 추론 전체가 역전된다
돌발 시나리오 예시
T+2분 이장 전화 → 응답 없음
↳ "이장 2분 도착" 전제 붕괴 → 자율방재단 전환 → ETA 재계산 → 위험도 재평가
T+3분 이웃 "나도 연기 들어와요" 2차 신고
↳ 단독 화재 → 확산 화재로 분류 변경 → 우선순위 전체 재계산 → 자원 배분 전면 재수립
TypeDB의 장점

관계 그래프 전체를 연쇄 재계산할 수 있다.

이장 → 응답없음 플래그
→ 연결된 노드 상태 업데이트
→ 판단 규칙 자동 재평가

한계: 분기를 설계자가 미리 전부 정의해야 함. 돌발 조합이 늘면 기하급수적으로 복잡해짐.

LLM의 장점

사전 정의 없이 맥락으로 판단한다.

"이장이 안 받아.
지금 뭐가 바뀌어야 해?"
→ 알아서 추론

한계: 정상 흐름에 쓰기엔 느리고 비용이 있음. 돌발 상황에만 쓰는 게 효율적.

설계 해법 — 이중 분기
정상 흐름 TypeDB 규칙 처리 — 빠르고 예측 가능
+
돌발 상황 LLM 추론 — 느리지만 유연

이 분기 자체를 시스템이 판단하게 하면 TypeDB 구현 범위를 "정상 케이스만"으로 좁힐 수 있다.

3
플랫폼화 — 암묵지를 코딩 없이 입력하는 인터페이스를 어떻게 만드냐
WordPress
누구나 콘텐츠를 올린다.
글 쓰는 법은 누구나 안다.
입력 대상: 텍스트·이미지
Palantir Foundry
전문가가 판단 규칙을 올린다.
FDE가 현장에서 받아 적는다.
입력 대상: 추론 규칙·관계
PATOS 플랫폼 (목표)
소방관이 암묵지를 올린다.
코딩 없이, 클릭으로.
입력 대상: 현장 판단 경험
핵심 질문
"접근로 1.8m이면 도보 진입" — 소방관이 코딩으로 입력?
"접근로 1.8m이면 도보 진입" — 소방관이 폼에 체크하면 시스템에 반영?
플랫폼 레이어 구조
현장 레이어 소방관이 입력 — 마을별 암묵지, 건물 특이사항, 판단 규칙 각 소방서마다 다름
↕ 분리
플랫폼 코어 추론 엔진 + 온톨로지 + LLM 연결 — 공통 인프라 전국 공통

플랫폼이 되면: 고흥소방서가 올린 암묵지, 여수소방서가 올린 암묵지가 각각 다른 레이어로 쌓인다. 코어는 하나, 현장 지식은 무한히 추가된다. 이게 Palantir의 사업 모델이고 PATOS가 전국으로 확장되는 경로다.

지금 당장 해야 하는 것 3가지
1
소방관 인터뷰

고흥소방서 1~2명, 3회. 질문은 하나만 — "이 마을에서 밤에 불 났을 때 가장 먼저 하는 게 뭐예요? 왜요?"

→ 이슈 1 해결의 시작점
2
Claude API 연동

TypeDB 없이 goheung_dataset.json + Claude API 직접 연결. "서울 자녀 연락이 의미없다"는 판단을 시스템이 스스로 하는지 검증.

→ 이슈 2 해결의 최단 경로
3
실사용자 1곳 확보

고흥군청 또는 소방서 한 곳에서 "써보고 싶다"는 말 한 마디. 거기서부터 예산과 사람이 붙는다.

→ 이슈 3 플랫폼화의 출발점

PATOS의 현재 역할 — "이 문제가 실재한다"는 것을 보여주는 것. 완성품이 아니라 대화의 시작점이다.

문제의 레이어 분류

지금 풀어야 하는 것과 나중에 풀면 되는 것

POC 기술 문제 — 지금 풀어야 함
1
시나리오 초안 수립
소방관 암묵지 → 규칙으로 변환
2
돌발상황 추론
정상 흐름 TypeDB + 돌발 LLM 분기
3
플랫폼화
코딩 없이 암묵지를 입력하는 인터페이스
+
데이터 최신성
주민·건물 데이터 자동 업데이트 연동
서비스 이후 문제 — 나중에 풀면 됨
책임 소재
시스템이 틀렸을 때 누구 책임인가 — 법·제도 영역. 판단 근거 기록(감사 추적)으로 대응.
현장 수용성
소방관이 실제로 믿고 쓰느냐 — 조직 변화 관리. FDE 파견으로 신뢰 구축.

팔란티어가 군사 시스템에서 가장 집착하는 것이 이 두 가지다. 모든 판단에 reasoning_chain을 저장하는 이유.

지금 집중할 것은 딱 하나

이슈 1·2를 Claude API 연동으로 빠르게 검증한다.

TypeDB 없이 goheung_dataset.json + Claude API — "서울 자녀 연락이 의미없다"는 판단을 시스템이 스스로 하는지 확인. 이게 되면 나머지는 서비스화 단계에서 하나씩 붙인다.

암묵지를 담는 그릇 — 5개 레이어 구조

PATOS 설계 철학 · Palantir FDE 방법론 기반

5
피드백 루프 실제 결과 → 규칙 자동 개선
실화재 결과 데이터 축적 후 inference rules 보정 → 암묵지 자동 업데이트
미구현
4
감사 추적 누가 / 언제 / 왜 결정했나 기록
모든 판단에 reasoning_chain 저장 → 책임 소재 추적 · 팔란티어 핵심 원칙
미구현
3
추론 · 판단 레이어 소방관 암묵지 → 규칙으로 변환
inference_rules + scenario_engine.py
구현됨 ✓
2
데이터 파이프라인 실세계 데이터 → 온톨로지 매핑
MockDB (goheung_dataset.json) → TypeDB 스키마
구현됨 ✓
1
온톨로지 개념 · 관계 구조화
TypeDB schema: person → building → rescue-target
구현됨 ✓
레이어 1~3 구현 완료 · 레이어 4~5가 v5 핵심 과제
구현됨 미구현
1. 표현 계층 (Presentation Tier)

상황실 대시보드 index.html

재난 상황을 모니터링하는 웹 브라우저 기반 SPA (Single Page Application).
마을 지도, 4단계 대응 시퀀스, 우선 구조 대상자 카드를 실시간 시각화합니다.

2. AI 추론 계층 (Inference Engine Tier)

메인 오케스트레이터 app.py

전체 논리 연산을 제어하는 두뇌 서버. 데이터를 수집하고 최적의 지시서를 생성합니다.

구조 우선순위 계산기

인지 취약성과 물리적 고립성을 종합해 100점 만점으로 대상을 평가합니다.

우선순위 = (인지 × 0.6) + (물리 × 0.4)

화재 전파 시뮬레이터

건축 자재와 실시간 기상을 결합하여 플래시오버(전소) 시간을 계산합니다.

NFPA 72 물리 모델 기반 예측
3. 데이터 수집 계층 (Data Collection Tier)

TypeDB 지식 그래프

거주자와 건물, 규칙 간의 복잡한 논리 관계를 연결하는 DB입니다.

Fallback 활성화
장애 시 자체 Python 룰로 전환

행정 기초 데이터

판단의 근거가 되는 고흥군 내부 건물 및 주민 정적 데이터입니다.

  • • 건물 자재, 도로폭
  • • 주민 연령, 장애 여부
  • • 사전 동의된 GPS 위치

기상청 API 연동

화재 확산 연산에 필요한 실시간 풍속, 습도, 기온을 수집합니다.

Fallback 활성화
통신 실패 시 과거 평년값 로드