
Human-in-the-Loop: 위험한 단계는 사람의 승인을 받도록 하라
요약
Human-in-the-loop 패턴은 에이전트 워크플로우에 인간의 개입 지점을 통합하여 위험한 작업을 제어하는 방식입니다. Google과 Anthropic 모두 이를 에이전트 설계의 핵심 패턴으로 권장하며, 에이전트가 특정 체크포인트에서 멈춰 사람의 승인이나 수정을 기다리도록 합니다.
핵심 포인트
- 에이전트가 위험하거나 되돌릴 수 없는 행동 전 사람의 승인을 받도록 설계
- Google과 Anthropic 모두 이를 에이전트 아키텍처의 주요 패턴으로 채택
- 체크포인트 또는 블로커를 통해 에이전트 실행을 일시 정지하고 피드백 수렴
- Google ADK의 승인 도구(approval tool) 등을 활용한 구현 가능
요약: Human-in-the-loop 패턴은 에이전트가 일시 정지하고, 사람이 승인하거나, 수정하거나, 추가 입력을 제공할 때까지 기다리는 체크포인트를 삽입합니다. Google은 이를 1급(first-class) 패턴으로 명명했으며, Anthropic 역시 자체 에이전트에 동일한 체크포인트를 구축했습니다. 행동이 되돌릴 수 없거나 위험도가 높은 경우에 사용하십시오.
Human-in-the-loop 패턴이란?
Human-in-the-loop 패턴은 인간의 개입 지점을 에이전트 워크플로우에 직접 통합합니다. 미리 정의된 체크포인트에서 에이전트는 일시 정지하고 외부 시스템을 호출하여 사람이 작업 검토를 할 때까지 기다립니다. 이를 통해 사람은 에이전트가 계속 진행하기 전에 의사 결정을 승인하거나, 오류를 수정하거나, 입력을 제공할 수 있습니다 (Google Cloud).
Anthropic은 자율 에이전트의 경우에도 동일한 동작을 설명합니다. 즉, 체크포인트나 블로커(blocker)에 도달했을 때 인간의 피드백을 위해 일시 정지할 수 있습니다 (Anthropic). 이는 별도의 아키텍처라기보다는 모든 패턴에 추가하는 제어 장치에 가깝습니다.
실제 작동 방식
에이전트는 승인이 필요한 단계에 도달할 때까지 정상적으로 실행됩니다. 그런 다음, 실행을 중단하고 인간의 결정을 요청하는 승인 단계를 호출합니다. Google ADK에서는 사용자 지정 도구(custom tool)를 사용하여 이를 구현합니다. 에이전트는 실행을 일시 정지하거나 외부 시스템을 트리거하여 인간 개입을 요청하는 승인 도구를 호출합니다 (Google Developers).
Google의 예시는 일상적인 작업을 처리하는 트랜잭션 에이전트(transaction agent)이지만, 중요한 확인 사항에 대해서는 승인 도구(approval tool)를 호출하여 멈추고 인간 검토자가 '예' 또는 '아니오'라고 말할 때까지 기다리는 방식입니다 (Google Developers).
# Google ADK, 스케치
agent = LlmAgent(name="TransactionAgent",
instruction="일상적인 작업을 처리합니다. 중요도가 높으면 ApprovalTool을 호출합니다.",
...
언제 사용해야 하는가
인간의 감독(oversight), 주관적 판단, 또는 중요한 조치에 대한 최종 승인이 필요한 작업에 인간-개입 루프(human-in-the-loop)를 사용하세요 (Google Cloud). Google은 어떤 조치가 해당하는지 구체적으로 명시합니다: 단순히 데이터를 처리하는 것보다는 금융 거래 실행, 프로덕션에 코드 배포, 또는 민감한 데이터에 대한 조치입니다 (Google Developers).
구체적인 사례: 환자 데이터셋을 익명화하는 에이전트는 보호 정보를 자동으로 삭제(redacts)한 다음, 인간 컴플라이언스 담당자가 검증하고 배포를 승인할 때까지 멈추어 민감한 데이터가 유출되지 않도록 합니다 (Google Cloud). 이 패턴은 코딩에서도 나타나는데, Anthropic은 자동화된 테스트가 기능성을 검증하지만, 광범위한 시스템 요구 사항에 솔루션을 맞추기 위해서는 인간의 검토가 여전히 중요하다고 언급했습니다 (Anthropic).
언제 사용하지 말아야 하는가
일상적이고, 위험도가 낮으며, 되돌릴 수 있는(reversible) 작업에 인간 체크포인트를 추가하지 마세요. 그곳에서의 일시 정지는 안전성 향상 없이 지연 시간만 추가하고 사용자에게 짜증을 유발할 뿐입니다. 완전히 자동화된 처리량(throughput)이 필요하고 위험도가 진정으로 낮은 경우에는 사용하지 마십시오. 그리고 이것을 좋은 가드레일(guardrails)의 대체재로 취급해서도 안 됩니다. 그것은 유일한 선이 아니라 마지막 방어선입니다.
판단(judgment)은 솔직합니다: 모든 체크포인트는 안전성을 위해 속도와 자율성을 거래합니다. 오작동의 위험이 지연되는 것보다 더 클 때만 배치하십시오.
알려진 문제점
가장 큰 비용은 엔지니어링입니다. Google은 이 패턴이 사용자 상호 작용을 위한 외부 시스템을 구축하고 유지해야 하므로 상당한 아키텍처 복잡성을 추가할 수 있다고 지적합니다 (Google Cloud). 에이전트를 일시 중지시키고, 사람에게 알리고, 기다리는 동안 상태를 유지하며, 깔끔하게 재개하는 것은 실제 인프라입니다.
두 번째 문제는 인간 요인(human factors)입니다. 체크포인트가 너무 자주 발생하면 검토자들이 형식적으로 승인만 하게 되고, 안전성 이점이 사라집니다. 판단이 실제로 중요한 곳에 체크포인트를 배치하여 각각의 포인트가 진정한 관심을 받도록 하십시오.
시작하기 전에 알아야 할 세 가지 사항
- 되돌릴 수 없는 행동(irreversible actions)을 위해 예약하십시오. 돈 이동, 코드 배포, 민감 데이터 유출 등이 해당됩니다. 이것이 Google이 제시하는 기준입니다.
- 일시 중지 및 재개 과정을 설계하십시오. 인간이 결정하는 동안 상태를 유지하다가 계속 진행하는 것이 어려운 부분입니다. 체크포인트를 추가하기 전에 계획해야 합니다.
- 과도하게 게이트(over-gate)하지 마십시오. 너무 많은 승인은 검토자들이 클릭만 하게 만듭니다. 적고, 잘 배치된 체크포인트는 의미를 유지합니다.
FAQ
Human-in-the-loop 에이전트란 무엇인가요?
체크포인트에서 일시 중지하여 사람이 승인, 수정 또는 입력을 추가할 때까지 기다린 후, 보통 고위험 단계의 경우에 계속 진행하는 에이전트를 말합니다.
언제 에이전트가 사람을 위해 일시 중지해야 하나요?
되돌릴 수 없거나 고위험 행동(재정 거래, 프로덕션 배포, 민감 데이터 처리 등) 전에야 합니다. 일상적인 단계는 일시 중지해서는 안 됩니다.
Human-in-the-loop가 별도의 패턴인가요, 아니면 추가 기능인가요?
둘 다입니다. Google은 이를 하나의 패턴으로 나열하지만, 실제로는 어떤 단계가 실질적인 위험을 수반하는 곳에 다른 패턴 위에 덧입혀(layer) 사용합니다.
에이전트의 속도를 늦추나요?
예, 설계상 그렇습니다. 안전성과 책임성을 확보하기 위해 특정 체크포인트에서 지연을 감수하는 것입니다.
출처
출처
- Google Cloud Architecture Center, 에이전트형 AI 시스템을 위한 설계 패턴 선택: https://docs.cloud.google.com/architecture/choose-design-pattern-agentic-ai-system
- Google Developers Blog, ADK의 멀티 에이전트 패턴 개발자 가이드: https://developers.googleblog.com/developers-guide-to-multi-agent-patterns-in-adk/
- Anthropic, 효과적인 에이전트 구축: https://www.anthropic.com/engineering/building-effective-agents
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기