AI 도구 호출 시 휴먼 인 더 루프(Human-in-the-loop)
AI 에이전트가 특정 툴(Tool)을 실행하기 전에 반드시 휴먼 인 더 루프(Human-in-the-loop, HITL) 승인을 받도록 설정할 수 있습니다. 툴에 HITL 기능이 활성화되어 있으면, 워크플로우는 일시 중지되고 관련 담당자가 다음 작업 중 하나를 수행할 때까지 대기합니다:
- 승인(Approve): AI가 지정한 입력 파라미터로 툴이 실행됩니다.
- 거부(Deny): 작업이 취소되며 실행되지 않습니다.
이 기능을 통해 AI 워크플로우 내에서 툴 호출에 대해 선택적으로 감독할 수 있으며, 특히 메시지 전송, 레코드 수정 또는 데이터 삭제와 같은 고위험 툴에 추가적인 인간 검토를 적용하기에 적합합니다.
휴먼 인 더 루프를 사용해야 하는 경우
HITL은 다음과 같은 상황에서 유용합니다:
- 툴이 복구 불가능한 작업을 수행할 때: 데이터 삭제, 외부 커뮤니케이션 발송, 구매 실행 등
- 규정 준수가 요구될 때: 규제 산업에서는 특정 자동화 작업에 대해 인간의 승인이 필요할 수 있습니다.
- 고가치 의사결정이 포함될 때: 비즈니스에 중대한 영향을 미치는 작업은 인간의 감독을 통해 더 안전하게 처리할 수 있습니다.
- AI 워크플로우에 대한 신뢰를 구축할 때: 초기에는 HITL을 활성화하고, 신뢰가 쌓이면 점차 감독 수준을 낮출 수 있습니다.
HITL은 AI Agent 노드에 연결된 모든 툴에 적용할 수도 있고, 특정 툴만 선택적으로 적용할 수도 있어 일반적인 출력 제어보다 더 세밀한 관리가 가능합니다.
작동 방식
- AI 에이전트가 HITL이 활성화된 툴을 사용해야 한다고 판단합니다.
- 워크플로우가 일시 중지되고, 워크플로우에서 구성한 채널(Slack, Telegram, n8n 채팅 인터페이스 등)을 통해 승인 요청이 전송됩니다.
- 인간 검토자는 요청을 받으며, AI가 사용하려는 툴과 해당 파라미터를 확인할 수 있습니다.
- 검토자는 요청을 승인하거나 거부합니다.
- 승인 시, 툴은 AI가 지정한 입력 파라미터로 실행됩니다. 거부 시, 작업은 취소되며 AI는 거부 결과를 알림받습니다.
다양한 승인 채널
검토 단계는 주요 상호작용 채널과 다른 채널을 통해 진행될 수 있습니다. 예를 들어, 사용자가 n8n 채팅 인터페이스를 통해 AI 에이전트와 상호작용하지만, 승인 요청은 Slack의 특정 담당자에게 전달될 수 있습니다.
툴에 휴먼 인 더 루프 설정하기
1단계: 툴 패널 열기
워크플로우에서 AI Agent 노드의 Tools(툴) 커넥터를 클릭하여 툴 패널을 엽니다.
2단계: 휴먼 인 더 루프 단계 추가하기
- 툴 패널에서 Human review(휴먼 인 더 루프) 섹션을 찾습니다.
- 사용 가능한 옵션 중 선호하는 승인 채널을 선택합니다.
- 해당 채널에 필요한 인증 정보(credentials)와 설정을 구성합니다.
3단계: 툴을 검토 단계에 연결하기
- 승인을 요구할 툴을 휴먼 인 더 루프 단계의 툴 커넥터에 연결합니다.
- 각 툴을 평소와 동일하게 구성합니다.
사용 가능한 승인 채널
다음 서비스 중 하나를 휴먼 인 더 루프 채널로 사용할 수 있습니다:
| 채널 | 설명 |
|---|---|
| Chat | n8n 내장 채팅 인터페이스 |
| Slack | Slack 채널 또는 개인 메시지로 승인 요청 전송 |
| Discord | Discord 채널로 승인 요청 전송 |
| Telegram | Telegram을 통해 승인 요청 전송 |
| Microsoft Teams | Teams 채널 또는 채팅으로 승인 요청 전송 |
| Gmail | 이메일을 통해 승인 요청 전송 |
| WhatsApp Business Cloud | WhatsApp을 통해 승인 요청 전송 |
| Google Chat | Google Chat으로 승인 요청 전송 |
| Microsoft Outlook | Outlook 이메일을 통해 승인 요청 전송 |
휴먼 인 더 루프 툴에서 표현식 사용하기
$tool 변수
휴먼 인 더 루프 단계를 구성할 때, $tool 변수를 사용해 검토자에게 AI가 실행하려는 작업에 대한 문맥 정보를 포함한 메시지를 생성할 수 있습니다. 이 변수는 다음 두 가지 속성을 제공합니다:
| 속성 | 설명 |
|---|---|
$tool.name | AI 에이전트가 호출하려는 툴 이름(n8n 캔버스에 표시되는 노드 이름) |
$tool.parameters | AI 에이전트가 툴 호출 시 사용하려는 파라미터($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가 툴 파라미터 지정하기