작업 / P-01 · 2025 – 2026 · 국토교통부 장관상 대상, 2025

구급차를
1분
안에
맞는
응급실로
연결하는
에이전트
네트워크

구급·교통·병원·보험 에이전트가 약 50초 만에 수용 가능한 응급실을 확정합니다. 가장 가까운 병원이 아니라, 지금 환자를 받을 수 있는 가장 가까운 병원으로.

역할
기획, 아키텍처, 에이전트 구현, 시연
수상·인정
1위 · 국토교통부 장관상 대상, 2025 국토교통 서비스 아이디어 모델 발굴 공모전
기술
Google ADK · A2A · MCP · Gemini 2.5 · 카카오모빌리티 · Notion · Slack
성과
접수부터 응급실 확정, 보험 처리까지 약 50초 · 실제 API 6종 연동
발췌 · 교통 에이전트의 응급실 10곳 순위, 대전성모병원 수용
전체 실행 · 접수부터 응급실 확정, 보험 처리까지, 1분 51초
~50초
접수 → 응급실 확정 → 보험 처리
4
기관을 가로지르는 에이전트 유형
6
시연에 연동된 실제 API
94%
응급실 대시보드 개편이 필요하다고 답한 구급대원
경로 · 접수 → 응급실처음부터 끝까지 ≈ 50초
구급 → 교통 → 병원 A · B → 보험 → 응급실 확정

배경

2025 – 2026
01 — 문제

응급실 뺑뺑이

소방과 병원의 데이터가 연결되어 있지 않고 둘 사이를 조율하는 주체도 없어서, 구급대원은 응급실에 한 곳씩 전화를 겁니다. 그동안 환자는 구급차 안에서 기다립니다.

2025년 구급대원 759명과 응급의학과 의사 130명을 대상으로 한 설문에서 94%가 응급실 대시보드를 개선하거나 교체해야 한다고 답했고, 79%는 새로운 플랫폼이 병원 선정에 도움이 될 것이라고 답했습니다.

02 — 접근

기관마다 하나의 에이전트

병원과 보험사가 각자의 에이전트를 운영합니다. 에이전트들은 A2A로 대화하고, MCP로 카카오 길찾기나 Notion 병상 기록 같은 도구에 연결됩니다. 구급 에이전트는 KTAS로 중증도를 분류하고, 교통 에이전트에게 실시간 ETA 기준 가장 가까운 응급실 10곳을 받아, 병원들에 동시에 질의합니다.

수용 여부는 모델이 아니라 코드의 규칙이 결정합니다. 수술실, 병상, 집도의가 모두 비어 있어야 하고, 병원 기록에서 실시간으로 읽습니다. 병원 추가는 설정 파일 하나면 됩니다.

00

배경

대전에서 버스를 타고 자란 저에게 응급실 뺑뺑이는 몇 달에 한 번씩 돌아오는 기사였습니다. 구급대원이 병원에 한 곳씩 전화를 거는 동안 환자가 구급차 안에서 숨지는 일. 모두가 제안하는 해법은 중앙 대시보드이지만, 병원들은 몇 년째 거부해 왔습니다. 대시보드는 낯선 상대에게 병상 현황을 공개하라고 요구하기 때문입니다.

기관마다 에이전트를 두면 이 구도가 뒤집힙니다. 각 병원은 자기 데이터와 규칙을 그대로 쥔 채, 한 번에 한 가지 질문에만 답합니다. 지금 이 환자를 받을 수 있는가. 이를 가능하게 하는 프로토콜인 에이전트 간 A2A와 도구 연결용 MCP는 2025년에 막 나온 것이었고, 두 가지 위에 무언가를 만든 것은 이때가 처음이었습니다.

작동 방식

그림 — 에이전트 네트워크, 시연
단계 01 / 8

접수와 중증도 분류

구급대원이 대전출입국관리사무소에서 뇌졸중 의심 환자를 보고합니다. 구급 에이전트가 KTAS 2등급으로 분류하고 시간을 재기 시작합니다.

구급대원 → API → 구급 에이전트 · KTAS 2 · 우측 편마비, 구음장애 · 혈압 185/105

단계 02 / 8

A2A로 교통 에이전트에 질의

구급 에이전트가 교통 에이전트에게 거리가 아니라 실시간 도착 시간 기준으로 응급실 순위를 요청합니다.

교통 에이전트에 A2A 작업 · 실시간 ETA 기준 가장 가까운 응급실 10곳

단계 03 / 8

교통 에이전트가 MCP로 카카오 조회

교통 에이전트가 도구를 통해 카카오모빌리티를 호출하고, ETA·전화번호·주소가 담긴 응급실 10곳을 돌려줍니다. 10 – 12초.

MCP → 경로 도구 → 카카오 로컬 + 모빌리티 API · 교통 반영 ETA

단계 04 / 8

가장 가까운 병원에 질의

병원 A, 대전선병원은 0.1 km 거리입니다. 그 병원의 에이전트가 A2A로 환자 요약을 받습니다.

병원 A · 대전선병원 · 0.1 km · ETA 0분 · 포트 10004

단계 05 / 8

병원 A 거절

에이전트가 Notion에서 실시간 수치를 읽습니다. 규칙은 모델이 아니라 코드에 있습니다. 수술실, 병상, 집도의가 모두 비어 있어야 합니다. 병상: 0. 거절.

수용 능력 도구 → Notion · 수술실 ≥ 1 ∧ 병상 ≥ 1 ∧ 집도의 ≥ 1 이면 수용 · 병상 0

단계 06 / 8

병원 B로 재배정, 수용

구급 에이전트가 2.9 km 거리의 대전성모병원으로 재배정합니다. 수술실 3, 병상 2, 집도의 1. 수용, 담당의 지정, 의료진에게 메시지 발송.

병원 B · 대전성모병원 · 2.9 km · ETA 13분 · 수술실 3 · 병상 2 · 최 집도의 · Slack으로 의료진 알림

단계 07 / 8

보험

보험 에이전트가 보장 내역을 조회하고 Slack으로 보험사에 연락합니다. 3.5초.

보장 조회 도구 → 보험사 기록 · Slack으로 보험사 연락 · 3.5 – 4초

단계 08 / 8

약 50초 만에 확정

접수부터 응급실 확정, 보험 처리까지. 목표는 1분이었습니다. 가장 가까운 병원이 아니라, 환자를 받을 수 있는 가장 가까운 병원으로.

실행별 43 – 54초 · 교통 10 – 12초 · 병원 9 – 11.5초 · 보험 3.5 – 4초 · 실제 API 6종

그림 — 에이전트 네트워크, 시연01 · 접수와 중증도 분류
APIMCPA2A일반 도구구급대원API구급 에이전트MCP디스패치 도구A2A교통 에이전트MCP경로 도구API카카오모빌리티병원 A도구수용 능력 도구APINotion · 응급실 데이터병원 B도구수용 능력 도구APINotion · 응급실 데이터보험 에이전트도구보장 조회 도구API보험사 · Slackt ≈ 0초
para
음성 또는 텍스트 접수: 이름, 나이, 증상, 활력 징후, 위치, 병력
amb
host_adk · Gemini 2.5 · KTAS 분류 · 오케스트레이션 · 추가 전용 JSONL 감사 로그(이벤트·크기·소요 시간, 환자 텍스트 없음)
ambTool
MCP 도구: send_message · dispatch_to_hospitals · 경로 조회
traffic
포트 10002 · MCP로 카카오 로컬 + 모빌리티 · 프롬프트 220줄 → 31줄
hospA
포트 10004 · 대전선병원 · Notion·Slack 일반 도구 · 수술실 ≥ 1 ∧ 병상 ≥ 1 ∧ 집도의 ≥ 1 이면 수용 · 병상 0 → 거절
hospB
포트 10003 · 대전성모병원 · 수술실 3 · 병상 2 · 최 집도의 → 수용 · ETA 13분
ins
포트 10005 · 보장 조회 · Slack으로 보험사 연락
ext-traffic
MCP로 카카오 로컬 + 카카오모빌리티 · 교통 반영 ETA
ext-hospA
실시간 Notion 표: 수술실, 병상, 수술 중인 집도의
ext-hospB
실시간 Notion 표: 수술실, 병상, 수술 중인 집도의 · 의료진 Slack
ext-ins
보험사 기록 · 보험사 Slack 채널

자세히

06
03 — 결과

가장 가까운 병원이 아니라, 받을 수 있는 가장 가까운 병원

시연에서는 대전출입국관리사무소에서 발생한 뇌졸중 의심 환자가 KTAS 2등급으로 분류됩니다. 0.1 km 거리의 대전선병원은 병상 부족으로 거절하고, 2.9 km 거리의 대전성모병원이 집도의 1명, 수술실 3개, 병상 2개를 확보해 수용하며, 보험 에이전트가 서류 처리를 마칩니다. 처음부터 끝까지 43 – 54초, 목표는 1분이었습니다.

이 아이디어는 스타트업과 연구기관이 함께 겨룬 2025 국토교통 서비스 아이디어 모델 발굴 공모전에서 1위와 장관상 대상을 받았습니다. 저희가 아는 한, MCP와 A2A 위에 구축된 국내 첫 응급의료 시스템입니다.

04 — 아키텍처

에이전트 다섯, 프로토콜 둘

호스트 에이전트는 Google ADK 위에서 Gemini 2.5로 동작합니다. 교통, 병원, 보험 에이전트는 각자의 포트에서 돌아가는 별도 프로세스이며, 각각 A2A 카드를 노출합니다. 호스트는 이들을 발견하고 작업을 보내며, 병원들에는 동시에 질의합니다. 카카오 길찾기는 교통 에이전트에서 MCP로 연결되고, Notion과 Slack은 병원·보험 에이전트 안의 일반 도구로 호출되므로, 어떤 에이전트도 다른 기관의 자격 증명을 쥐지 않습니다.

병원 추가는 설정 파일 하나에, 호스트의 에이전트 목록에 URL 한 줄을 더하는 것입니다. 이름, Notion 데이터베이스 ID, Slack 채널, 포트.

05 — 규칙과 가드레일

수용 여부는 모델의 의견이 아니라 코드

병원 에이전트는 수술실, 병상, 집도의가 모두 비어 있을 때만 수용하며, 이는 자기 기록에서 실시간으로 읽습니다. 언어 모델은 의료진에게 보낼 메시지를 쓸 뿐, 입원을 결정하지 않습니다. 모든 에이전트 간 호출은 각 워커가 검증하는 공유 베어러 토큰을 지니고, 추가 전용 감사 로그에는 환자 텍스트가 아니라 이벤트 종류, 메시지 크기, 소요 시간이 기록됩니다.

06 — 평가

실제 API 6종, 43 – 54초

실제 카카오, Notion, Slack을 대상으로 한 통합 테스트에서 모의 실행이 숨기고 있던 버그 6개가 드러났습니다. 에이전트 간 스키마 불일치, A2A 응답 타이밍 경합, 영어와 한글 앱 이름 파싱 같은 것들이었습니다. 최종 시연은 접수부터 보험 처리까지 실행별 43 – 54초에 끝납니다. 교통 단계가 10 – 12초로 가장 길고, 병원들은 병렬로 9 – 11.5초, 보험은 4초 미만입니다.

이 아이디어는 스타트업과 연구기관이 함께 겨룬 2025 국토교통 서비스 아이디어 모델 발굴 공모전에서 1위와 국토교통부 장관상 대상을 받았습니다.

07 — 다음 단계

병원 한두 곳과 파일럿

슬라이드의 로드맵은 여전히 유효합니다. 대전의 병원 한두 곳과 3·6·12개월 파일럿, 통신비밀보호법과 개인정보보호법 15조에 따른 법적 검토, 그리고 슬라이드의 수치로는 응답자의 49%가 써 본 적 없다고 답한 기존 119 스마트 시스템과의 비교.

08 — 다음

Vissim MCP 서버

Vissim용 공개 Model Context Protocol 서버는 아직 없습니다. 같은 검증된 도구 표면을 MCP로 노출하면, 제약 카탈로그가 제 역할을 계속하는 채로 어떤 MCP 클라이언트든 Vissim을 구동할 수 있습니다. 그것이 다음에 만들 것입니다.

사양

08
에이전트
구급 호스트(ADK) · 교통(10002) · 병원 A, B(10003, 10004) · 보험(10005)
프로토콜
에이전트 간 A2A 0.3 · 교통 에이전트에서 카카오로 MCP · 모든 워커가 검증하는 공유 베어러 토큰
모델
Google ADK 위의 Gemini 2.5 · a2a-sdk 0.3, SSE 스트리밍, 45초 타임아웃
데이터와 도구
카카오 로컬 + 모빌리티 · Notion(병상, 수술실, 집도의) · Slack
로깅
추가 전용 JSONL 감사 로그: 디스패치·팬아웃 이벤트와 크기, 소요 시간
기간
2025년 7월 첫 구축 · 2026년 7월 재구축 및 발표
수상
1위 · 국토교통부 장관상 대상, 2025 국토교통 서비스 아이디어 모델 발굴 공모전
크레딧
기획, 아키텍처, 에이전트, 시연: 이윤하