본문으로 건너뛰기

AI 도구 호출 시 휴먼 인 더 루프(Human-in-the-loop)

AI 에이전트가 특정 툴(Tool)을 실행하기 전에 반드시 휴먼 인 더 루프(Human-in-the-loop, HITL) 승인을 받도록 설정할 수 있습니다. 툴에 HITL 기능이 활성화되어 있으면, 워크플로우는 일시 중지되고 관련 담당자가 다음 작업 중 하나를 수행할 때까지 대기합니다:

  • 승인(Approve): AI가 지정한 입력 파라미터로 툴이 실행됩니다.
  • 거부(Deny): 작업이 취소되며 실행되지 않습니다.

이 기능을 통해 AI 워크플로우 내에서 툴 호출에 대해 선택적으로 감독할 수 있으며, 특히 메시지 전송, 레코드 수정 또는 데이터 삭제와 같은 고위험 툴에 추가적인 인간 검토를 적용하기에 적합합니다.

휴먼 인 더 루프를 사용해야 하는 경우

HITL은 다음과 같은 상황에서 유용합니다:

  • 툴이 복구 불가능한 작업을 수행할 때: 데이터 삭제, 외부 커뮤니케이션 발송, 구매 실행 등
  • 규정 준수가 요구될 때: 규제 산업에서는 특정 자동화 작업에 대해 인간의 승인이 필요할 수 있습니다.
  • 고가치 의사결정이 포함될 때: 비즈니스에 중대한 영향을 미치는 작업은 인간의 감독을 통해 더 안전하게 처리할 수 있습니다.
  • AI 워크플로우에 대한 신뢰를 구축할 때: 초기에는 HITL을 활성화하고, 신뢰가 쌓이면 점차 감독 수준을 낮출 수 있습니다.

HITL은 AI Agent 노드에 연결된 모든 툴에 적용할 수도 있고, 특정 툴만 선택적으로 적용할 수도 있어 일반적인 출력 제어보다 더 세밀한 관리가 가능합니다.

작동 방식

  1. AI 에이전트가 HITL이 활성화된 툴을 사용해야 한다고 판단합니다.
  2. 워크플로우가 일시 중지되고, 워크플로우에서 구성한 채널(Slack, Telegram, n8n 채팅 인터페이스 등)을 통해 승인 요청이 전송됩니다.
  3. 인간 검토자는 요청을 받으며, AI가 사용하려는 툴과 해당 파라미터를 확인할 수 있습니다.
  4. 검토자는 요청을 승인하거나 거부합니다.
  5. 승인 시, 툴은 AI가 지정한 입력 파라미터로 실행됩니다. 거부 시, 작업은 취소되며 AI는 거부 결과를 알림받습니다.

다양한 승인 채널

검토 단계는 주요 상호작용 채널과 다른 채널을 통해 진행될 수 있습니다. 예를 들어, 사용자가 n8n 채팅 인터페이스를 통해 AI 에이전트와 상호작용하지만, 승인 요청은 Slack의 특정 담당자에게 전달될 수 있습니다.

툴에 휴먼 인 더 루프 설정하기

1단계: 툴 패널 열기

워크플로우에서 AI Agent 노드의 Tools(툴) 커넥터를 클릭하여 툴 패널을 엽니다.

2단계: 휴먼 인 더 루프 단계 추가하기

  1. 툴 패널에서 Human review(휴먼 인 더 루프) 섹션을 찾습니다.
  2. 사용 가능한 옵션 중 선호하는 승인 채널을 선택합니다.
  3. 해당 채널에 필요한 인증 정보(credentials)와 설정을 구성합니다.

3단계: 툴을 검토 단계에 연결하기

  1. 승인을 요구할 툴을 휴먼 인 더 루프 단계의 툴 커넥터에 연결합니다.
  2. 각 툴을 평소와 동일하게 구성합니다.

사용 가능한 승인 채널

다음 서비스 중 하나를 휴먼 인 더 루프 채널로 사용할 수 있습니다:

채널설명
Chatn8n 내장 채팅 인터페이스
SlackSlack 채널 또는 개인 메시지로 승인 요청 전송
DiscordDiscord 채널로 승인 요청 전송
TelegramTelegram을 통해 승인 요청 전송
Microsoft TeamsTeams 채널 또는 채팅으로 승인 요청 전송
Gmail이메일을 통해 승인 요청 전송
WhatsApp Business CloudWhatsApp을 통해 승인 요청 전송
Google ChatGoogle Chat으로 승인 요청 전송
Microsoft OutlookOutlook 이메일을 통해 승인 요청 전송

휴먼 인 더 루프 툴에서 표현식 사용하기

$tool 변수

휴먼 인 더 루프 단계를 구성할 때, $tool 변수를 사용해 검토자에게 AI가 실행하려는 작업에 대한 문맥 정보를 포함한 메시지를 생성할 수 있습니다. 이 변수는 다음 두 가지 속성을 제공합니다:

속성설명
$tool.nameAI 에이전트가 호출하려는 툴 이름(n8n 캔버스에 표시되는 노드 이름)
$tool.parametersAI 에이전트가 툴 호출 시 사용하려는 파라미터($fromAI() 표현식으로 툴 입력 스키마에 구성된 모든 필드 포함)

메시지 구성 예시:

AI가 {{ $tool.name }} 툴을 사용하려 합니다. 파라미터는 다음과 같습니다:
{{ $tool.parameters }}

이를 통해 검토자는 요청을 승인하거나 거부하기 전에 AI가 실행하려는 작업을 명확히 이해할 수 있습니다.

휴먼 인 더 루프 툴에서 $fromAI() 사용하기

$fromAI() 함수는 휴먼 인 더 루프 단계에 연결된 툴에서 사용할 수 있습니다. 즉, AI가 툴 파라미터를 동적으로 지정할 수 있으며, 인간 검토자가 확인하고 승인하는 값은 바로 AI가 결정한 값입니다.

시스템 프롬프트(system prompt) 최적화 가이드

AI 에이전트가 툴 호출이 거부된 상황을 올바르게 이해하고 처리할 수 있도록, 시스템 프롬프트(system prompt)에 휴먼 인 더 루프 설정에 대한 정보를 포함시키는 것이 중요합니다.

시스템 프롬프트 구성의 필요성

시스템 프롬프트에 툴 설정 및 휴먼 인 더 루프 단계에 관한 정보를 반드시 포함하세요. 이를 통해 AI는 어떤 툴이 승인을 필요로 하는지, 그리고 툴 호출이 거부되었을 때 어떻게 대응해야 하는지를 이해할 수 있습니다.

다음 내용을 포함하는 것을 권장합니다:

  • 어떤 툴이 인간 승인을 필요로 하는지
  • 승인이 거부될 경우 어떤 일이 발생하는지
  • AI가 거부에 어떻게 대응해야 하는지 (예: 사용자에게 알림, 대안 제시, 추가 설명 요청 등)

체인 호출 및 서브 에이전트

하나의 AI 에이전트를 다른 AI 에이전트의 툴로 사용할 경우, 서브 에이전트 내의 휴먼 인 더 루프 단계도 정상적으로 동작합니다.

관련 리소스

  • AI Agent 노드
  • Tools Agent
  • AI에서 툴(Tool)이란 무엇인가?
  • $fromAI()를 통해 AI가 툴 파라미터 지정하기