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