AI 도구 호출을 위한 Human-in-the-loop
AI Agent가 특정 도구를 실행하기 전에 사람의 승인을 요구할 수 있습니다. 이 기능을 통해 AI 워크플로 내에서 도구 사용에 대한 선택적 감독이 가능하며, 메시지 전송, 레코드 수정, 데이터 삭제 등 위험도가 높은 도구에 추가 검토를 적용하기 쉬워집니다.
AI Agent가 특정 도구를 실행하기 전에 사람의 승인을 요구할 수 있습니다. 도구에 사람의 검토가 필요한 경우 워크플로가 일시 중지되고 담당자가 다음 중 하나의 작업을 수행할 때까지 대기합니다.
- 승인: AI가 지정한 입력값으로 도구가 실행됩니다.
- 거부: 작업이 취소되어 실행되지 않습니다.
이 기능을 통해 AI 워크플로 내에서 도구 사용에 대한 선택적 감독이 가능하며, 메시지 전송, 레코드 수정, 데이터 삭제 등 위험도가 높은 도구에 추가 검토를 적용하기 쉬워집니다.
사람 검토가 필요한 경우#
Human-in-the-loop(HITL) 검토는 다음과 같은 상황에서 유용합니다.
- 도구가 되돌릴 수 없는 작업을 수행하는 경우: 데이터 삭제, 외부 통신 전송, 구매 진행 등.
- 규정 준수 요건이 있는 경우: 규제 업종에서는 특정 자동화 작업에 사람의 승인이 필요할 수 있습니다.
- 고가치 의사결정이 포함된 경우: 비즈니스에 중요한 영향을 미치는 작업은 사람의 감독이 도움이 됩니다.
- AI 워크플로에 대한 신뢰를 구축하는 경우: 처음에는 사람 검토를 활성화한 후, 신뢰가 쌓이면 감독을 줄여 나갑니다.
HITL은 AI Agent 노드에 연결된 모든 도구 또는 선택한 개별 도구에만 적용할 수 있어, 일반적인 출력 게이팅보다 더 세밀한 제어가 가능합니다.
작동 방식#
- AI Agent가 사람 검토가 활성화된 도구를 사용해야 한다고 판단합니다.
- 워크플로가 일시 중지되고 설정된 채널(Slack, Telegram, n8n Chat 인터페이스 등)을 통해 승인 요청을 전송합니다.
- 사람 검토자는 AI가 사용하려는 도구와 파라미터를 확인하는 요청을 받습니다.
- 검토자가 요청을 승인하거나 거부합니다.
- 승인된 경우 AI가 지정한 입력값으로 도구가 실행됩니다. 거부된 경우 작업이 취소되고 AI에게 거부 사실이 전달됩니다.
검토 단계는 주요 상호작용과 다른 채널을 통해 진행될 수 있습니다. 예를 들어 사용자는 n8n Chat 인터페이스를 통해 AI 에이전트와 상호작용하고, 승인 요청은 Slack의 특정 담당자에게 전달하도록 구성할 수 있습니다.
도구에 대한 사람 검토 설정하기#
1단계: 도구 패널 열기#
워크플로에서 AI Agent 노드의 Tools 커넥터를 클릭하여 도구 패널을 엽니다.
2단계: 사람 검토 단계 추가하기#
- 도구 패널에서 Human review 섹션을 찾습니다.
- 사용 가능한 옵션 중 원하는 승인 채널을 선택합니다.
- 적절한 자격 증명과 설정으로 승인 채널을 구성합니다.
3단계: 도구를 검토 단계에 연결하기#
- 승인이 필요한 도구를 사람 검토 단계의 도구 커넥터에 추가합니다.
- 각 도구를 일반적인 방법으로 구성합니다.
사용 가능한 승인 채널#
다음 서비스 중 하나를 사람 검토 채널로 사용할 수 있습니다.
| 채널 | 설명 |
|---|---|
| Chat | n8n 내장 채팅 인터페이스 |
| Slack | Slack 채널 또는 DM으로 승인 요청 전송 |
| 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 Agent가 호출하려는 도구의 이름. n8n 캔버스에 표시되는 노드 이름입니다. |
$tool.parameters |
AI Agent가 도구 호출에 사용하려는 파라미터. $fromAI() 표현식으로 구성된 도구 입력 스키마의 모든 필드가 포함됩니다. |
메시지 구성 예시:
The AI wants to use {{ $tool.name }} with the following parameters:
{{ JSON.stringify($tool.parameters, null, 2) }}
이를 통해 검토자는 승인 또는 거부 전에 AI가 시도하는 작업을 정확히 파악할 수 있습니다.
사람 검토 도구에서 $fromAI() 사용하기#
$fromAI() 함수는 사람 검토 단계에 연결된 도구에서도 작동합니다. 즉, AI가 도구 파라미터를 동적으로 지정할 수 있으며, AI가 결정한 해당 값이 사람 검토자에게 표시되어 승인을 받게 됩니다.
시스템 프롬프트 모범 사례#
AI Agent가 거부된 도구 호출 시도를 올바르게 해석하고 처리하려면 시스템 프롬프트에 사람 검토 설정에 대한 정보를 포함해야 합니다.
시스템 프롬프트에 도구 설정 및 사람 검토 단계를 반드시 포함하세요. 이를 통해 AI가 어떤 도구에 승인이 필요한지 이해하고 도구 호출이 거부되었을 때 올바르게 응답할 수 있습니다.
다음 내용을 포함하는 것이 좋습니다.
- 사람의 승인이 필요한 도구
- 승인이 거부되었을 때 발생하는 일
- 거부에 대한 AI의 응답 방식 (예: 사용자에게 알림, 대안 제안, 또는 명확화 요청)
체이닝 및 서브에이전트#
다른 AI Agent의 도구로 AI Agent를 사용하는 경우, 서브에이전트의 사람 검토 단계도 올바르게 작동합니다.
