Human-facing UX

에이전트가 아니라
사람이 안심하는 화면

사람에게 필요한 것은 endpoint가 아니라 통제감입니다. 무엇을 맡겼는지, 에이전트가 어디까지 했는지, 어디서 멈췄는지, 누가 확인해야 하는지를 한눈에 보여줘야 합니다.

Human journey

자연어에서 책임 있는 처리까지

시민과 공무원이 같은 화면을 보되, 각자 필요한 정보를 다르게 읽을 수 있게 구성합니다.

01
말하기
Citizen sees

부처명이나 메뉴명을 몰라도 자연어로 상황을 말한다.

Official sees

사용자 발화를 과업·위험도·필요 정보로 나눠 받는다.

처음부터 정확한 양식을 알 필요가 없습니다.

02
경로 보기
Citizen sees

에이전트가 어떤 기관·문서·API 후보를 찾았는지 본다.

Official sees

자동 라우팅 근거와 담당 후보를 함께 확인한다.

어디로 가는지 숨기지 않고 보여줍니다.

03
경계 승인
Citizen sees

개인정보, 제출, 권리 판단처럼 중요한 지점에서 멈춤을 확인한다.

Official sees

사람 판단이 필요한 부분과 자동 처리 가능한 부분을 분리한다.

에이전트가 마음대로 제출하거나 판단하지 않습니다.

04
진행 추적
Citizen sees

내 요청이 접수·분류·검토·완료 중 어디에 있는지 본다.

Official sees

병목과 반복 문의를 기록으로 남겨 업무 개선에 쓴다.

처리 과정이 블랙박스가 되지 않습니다.

05
개선 남기기
Citizen sees

막힌 지점이 있었다면 쉽게 불편과 개선 제안을 남긴다.

Official sees

자유글을 병목 report로 구조화해 제도개선 이슈로 묶는다.

불편은 민원이 아니라 개선 데이터가 됩니다.

에이전트가 한 일

읽은 문서, 만든 초안, 추천한 경로를 사람이 이해할 수 있는 말로 보여준다.

에이전트가 하지 않은 일

제출, 처분 판단, 민감정보 재사용처럼 멈춘 지점을 명확히 표시한다.

사람이 확인할 일

담당자·시민이 확인해야 할 항목을 체크리스트로 남긴다.

왜 이 경로인가

부처·문서·API 후보를 추천한 근거를 숨기지 않는다.

왜 여기서 멈췄는가

친절함이나 자동화율보다 사람 검토가 우선되는 순간을 별도 표시하고, 그 이유를 drift/guardrail 관점에서 설명한다.

Good human UX
  • · “에이전트가 대신 처리한 부분”과 “사람이 확인할 부분”을 분리한다.
  • · 제출 전 승인, 민감정보 사용, 법적 판단 경계를 크게 보여준다.
  • · 시민에게는 다음 행동을, 공무원에게는 판단 근거를 보여준다.
  • · 실패를 끝으로 보지 않고 개선 건의로 전환한다.
Bad human UX
  • · “AI가 처리 중입니다”만 보여주고 근거와 멈춤 지점을 숨긴다.
  • · 자동 제출과 초안 작성을 구분하지 않는다.
  • · 담당기관 추천 이유를 설명하지 않는다.
  • · 병목을 사용자 탓이나 담당자 탓으로 남긴다.
Why the stop matters

사람이 안심하는 화면은 매끄럽게 끝나는 화면이 아니라, 왜 여기서 멈췄는지 납득하게 해주는 화면입니다. guardrail은 백엔드 규칙이 아니라 신뢰의 문장이어야 합니다.

멈춤 기준 보기 →
human-console.json
{
  "name": "K-Gov Human Console",
  "goal": "A human-facing surface that makes agentic public service understandable, consentful, and accountable.",
  "audience": [
    "citizen",
    "public official",
    "service designer"
  ],
  "journey": [
    "say-it-naturally",
    "see-the-route",
    "approve-boundaries",
    "track-progress",
    "leave-feedback"
  ],
  "trustCards": [
    "에이전트가 한 일",
    "에이전트가 하지 않은 일",
    "사람이 확인할 일",
    "왜 이 경로인가",
    "왜 여기서 멈췄는가"
  ],
  "guardrails": {
    "driftMonitor": "/plaza/drift",
    "driftApi": "/api/plaza/drift",
    "humanQuestion": "왜 여기서 멈췄는가?",
    "promise": "매끄러운 자동처리보다 멈춤 이유와 사람 확인 지점을 먼저 보여준다."
  }
}