실무 Multi-Agent 오케스트레이션 23장 · Human-in-the-Loop 1 / 7 ← 이전목차다음 → TechLead Cro

23장. Human-in-the-Loop

왜 사람이 끼어들어야 하는가 — 되돌릴 수 없는 일 앞에서

한 줄 요약

21장에서 만든 요청처리 에이전트는 배송지 변경과 교환 접수를 직접 처리하지만, 환불과 주문 취소는 승인 요청만 등록합니다. 금전 거래와 관련된 처리는 실행 전에 사람의 확인이 필요하기 때문입니다. 이번 장에서는 사람이 승인한 경우에만 다음 처리 단계로 진행하는 구조를 만듭니다. 이처럼 자동화 과정에 사람이 참여해 판단하거나 승인하는 방식을 Human-in-the-Loop(HITL) 라고 합니다.


1. 지금까지 미뤄 둔 것

과정 내내 지켜 온 결정이 하나 있습니다. 환불은 AI가 혼자 실행하지 않는다.

장 그 결정이 한 일
1장 "조회와 안내는 자동으로, 되돌릴 수 없는 처리는 사람의 승인 뒤에"라고 방침을 정했다
8장 도구를 읽기와 쓰기로 나누고, 환불을 실행하는 도구는 만들지 않았다
21장 요청처리 에이전트의 request_refund가 환불·주문 취소를 승인대기 상태로 등록하기만 한다
22장 운영 원칙에 "환불했다고 말하지 않고, 승인 요청을 등록했고 담당자 승인 후 처리된다고 안내한다"를 넣었다

21장을 마친 시점의 처리 기록(memory_store/actions.json)에서 환불 요청은 승인대기에 머물러 있습니다. 누군가 그것을 보고 승인하거나 반려해야 다음으로 넘어갑니다. 1장 방침의 뒷부분, "사람의 승인 뒤에" 를 이제 실제로 만들 차례입니다.


2. 왜 AI에게 맡기지 않는가

LLM의 출력은 실행할 때마다 달라집니다. 같은 문의에도 문장이 바뀌고, 어떤 일이든 틀릴 가능성을 0으로 만들 수는 없습니다. 그래서 따져 볼 것은 "틀리는가"가 아니라 "틀렸을 때 되돌릴 수 있는가" 입니다.

틀렸을 때 생기는 일은 작업의 성격에 따라 전혀 다릅니다.

작업 틀렸을 때 되돌릴 수 있나 누가 실행하나
배송 상태 안내 다시 안내하면 된다 있다 주문조회 에이전트
정책 조항 안내 정정하고 사과한다 있다 정책안내 에이전트
배송지 변경 (출고 전) 다시 바꾸면 된다 있다 요청처리 에이전트가 직접
교환 접수 회수 전에 취소하면 된다 있다 요청처리 에이전트가 직접
환불·주문 취소 돈이 이미 나갔다 없다 사람이 승인한 뒤에

되돌릴 수 있는 일은 AI에게 맡기고 틀리면 고칩니다. 되돌릴 수 없는 일은 실행 전에 사람이 한 번 봅니다. 이 차이가 HITL이 필요한 이유의 전부입니다.


3. 사람에게 넘기는 길은 두 가지다

우리 시스템에서 사람이 등장하는 자리는 둘입니다. 하나는 이미 만들었습니다.

길 언제 사람이 하는 일 만든 곳
상담원 연결 (티켓) AI가 처리할 수 없는 문의, 사람과 통화하고 싶다는 요청 넘겨받아 처음부터 처리한다 8장, 21장
승인 게이트 AI가 준비는 했지만 실행하면 안 되는 일 준비된 요청서를 보고 승인하거나 반려한다 이번 장

티켓은 일을 통째로 넘깁니다. 승인 게이트(approval gate) 는 다릅니다. 코드가 주문을 조회하고 요건을 판정해 승인 요청을 등록하고, AI가 요청서까지 써 두고, 사람은 마지막 한 번의 결정만 합니다.


4. 만들기 어려운 이유 — 사람은 느리다

기술적으로 어려운 점은 하나입니다. 사람의 답은 언제 올지 모릅니다. 상담원이 승인 버튼을 누르는 것은 몇 분 뒤일 수도, 점심시간이 지난 뒤일 수도 있습니다.

그동안 프로그램이 그 자리에서 기다리고 있을 수는 없습니다. 필요한 것은 이런 능력입니다.

  1. 하던 일을 그 자리에서 멈춘다.
  2. 멈춘 순간의 상태를 저장해 둔다.
  3. 사람의 답이 오면 멈춘 곳부터 이어서 실행한다.

18장에서 그래프의 상태(state) 를 배웠습니다. 상태가 한 덩어리로 정리되어 있으면 저장하고 다시 불러올 수 있습니다. 이번 장에서 그 성질을 씁니다.


5. 이걸 모르면 무엇을 판단하지 못하는가

  • 새 기능을 붙일 때 AI가 끝까지 해도 되는 일인지, 사람을 거쳐야 하는 일인지 가르지 못합니다.
  • 사람을 거치게 하면서도 사람이 병목이 되지 않게 하는 방법을 모릅니다. 모든 건을 사람에게 보내면 자동화한 의미가 없습니다.
  • 한 건의 처리 안에서 코드가 정할 것, AI가 쓸 것, 사람이 결정할 것을 나누지 못합니다. 이번 장의 따라하기에서 세 가지를 나눠 만듭니다.

핵심 정리

  • 요청처리 에이전트는 환불·주문 취소를 승인 요청(승인대기)까지만 만듭니다. 돈이 나가는, 되돌릴 수 없는 일이기 때문입니다.
  • 되돌릴 수 있는 일은 AI에게, 되돌릴 수 없는 일은 실행 전에 사람이 봅니다.
  • 사람에게 넘기는 길은 티켓(통째로 넘김) 과 승인 게이트(결정만 받음) 두 가지입니다.
  • 승인 게이트를 만들려면 멈추고, 저장하고, 이어서 실행하는 능력이 필요합니다.
  • 이번 장의 산출물은 환불 승인 흐름 lesson23_hitl.py 입니다.
← 22장실습문제와 해답다음 절 →AI의 일과 사람의 일 — 준비는 코드와 AI가, 결정은 사람이
오명운 · macro@prag-ai.com