AI Assistant 설정하기 (Preview)
n8n v2.29AI Assistant는 미리보기(preview) 기능입니다. 셀프 호스팅 인스턴스에서 AI Assistant를 실행하려면 다음이 필요합니다. 대부분의 AI Assistant 설정은 N8N_INSTANCE_AI_* 환경 변수를 사용합니다.
AI Assistant는 미리보기(preview) 기능입니다.
셀프 호스팅 인스턴스에서 AI Assistant를 실행하려면 다음이 필요합니다.
- LLM 제공업체의 API 키.
- AI 모델. n8n은 기본적으로
anthropic/claude-opus-4-8을 사용하며, 직접 설정할 수도 있습니다. - 샌드박스 제공업체. Daytona를 권장합니다.
- 웹 검색을 원하는 경우 검색 제공업체. Brave Search를 권장합니다.
대부분의 AI Assistant 설정은 N8N_INSTANCE_AI_* 환경 변수를 사용합니다. INSTANCE_AI_BRAVE_SEARCH_API_KEY는 의도적인 예외입니다. 내부 모듈명은 instance-ai입니다.
시작하기 전에#
다음을 준비했는지 확인하세요.
- n8n 인스턴스의 환경 변수를 설정할 수 있는 권한.
- 최신 버전의 n8n. 최신 안정 릴리즈 이상을 실행하세요. 이전 버전에서도 동작할 수 있지만, 최신 버전이 더 좋습니다.
- 지원되는 LLM 제공업체의 API 키:
- Anthropic
- OpenAI
- OpenRouter
- 샌드박스 제공업체. Daytona를 권장합니다.
- 웹 검색을 원하는 경우 검색 제공업체. Brave Search를 권장합니다.
Daytona로 빠르게 설정하기#
Daytona는 대부분의 셀프 호스팅 설정에 권장되는 샌드박스 제공업체입니다.
이 설정은 Anthropic 모델, Daytona, 그리고 웹 검색을 위한 Brave Search와 함께 AI Assistant를 활성화합니다.
n8n 인스턴스에 다음 환경 변수를 설정하세요.
# 모듈을 활성화하고 모델을 선택합니다
N8N_ENABLED_MODULES=instance-ai
N8N_INSTANCE_AI_MODEL=anthropic/claude-opus-4-8
N8N_INSTANCE_AI_MODEL_API_KEY=sk-ant-xxx
# 샌드박스, 필수
N8N_INSTANCE_AI_SANDBOX_ENABLED=true
N8N_INSTANCE_AI_SANDBOX_PROVIDER=daytona
N8N_INSTANCE_AI_SANDBOX_IMAGE=daytonaio/sandbox:0.5.3-slim
# Daytona
DAYTONA_API_URL=https://app.daytona.io/api
DAYTONA_API_KEY=dtn_xxx
# 웹 검색, 권장
INSTANCE_AI_BRAVE_SEARCH_API_KEY=BSA-xxx
이 변수들은 다음과 같은 역할을 합니다.
| 변수 | 설명 |
|---|---|
N8N_ENABLED_MODULES |
모듈을 활성화하려면 반드시 instance-ai를 포함해야 합니다. |
N8N_INSTANCE_AI_MODEL |
provider/model 형식으로 LLM을 선택합니다. 기본값(anthropic/claude-opus-4-8)이 있으므로 설정은 선택 사항입니다. |
N8N_INSTANCE_AI_MODEL_API_KEY |
선택한 제공업체의 API 키입니다. |
N8N_INSTANCE_AI_SANDBOX_ENABLED |
true로 설정합니다. AI Assistant는 샌드박스가 필요합니다. |
N8N_INSTANCE_AI_SANDBOX_PROVIDER |
샌드박스 제공업체입니다. Daytona를 사용하려면 daytona로 설정하세요. |
N8N_INSTANCE_AI_SANDBOX_IMAGE |
Daytona 샌드박스의 기본 컨테이너 이미지입니다. |
DAYTONA_API_URL |
Daytona API 엔드포인트입니다. |
DAYTONA_API_KEY |
사용자의 Daytona API 키입니다. |
INSTANCE_AI_BRAVE_SEARCH_API_KEY |
웹 검색용 Brave Search API 키입니다. 이 변수는 의도적으로 N8N_ 접두사를 사용하지 않습니다. |
Docker Compose 예시#
services:
n8n:
image: docker.n8n.io/n8nio/n8n
environment:
N8N_ENABLED_MODULES: instance-ai
N8N_INSTANCE_AI_MODEL: anthropic/claude-opus-4-8
N8N_INSTANCE_AI_MODEL_API_KEY: sk-ant-xxx
N8N_INSTANCE_AI_SANDBOX_ENABLED: 'true'
N8N_INSTANCE_AI_SANDBOX_PROVIDER: daytona
N8N_INSTANCE_AI_SANDBOX_IMAGE: daytonaio/sandbox:0.5.3-slim
DAYTONA_API_URL: https://app.daytona.io/api
DAYTONA_API_KEY: dtn_xxx
INSTANCE_AI_BRAVE_SEARCH_API_KEY: BSA-xxx
적용 및 확인#
변수를 설정한 후:
- 모든 n8n 프로세스를 재시작합니다.
- 편집기를 엽니다.
- AI Assistant가 나타나고 응답하는지 확인합니다.
모델 제공업체 선택#
N8N_INSTANCE_AI_MODEL은 다음 형식을 사용합니다.
provider/model
지원되는 제공업체는 다음과 같습니다.
anthropicopenaiopenrouter
호스팅형 제공업체를 사용하려면 anthropic/claude-opus-4-8 또는 openai/gpt-5.5부터 시작하세요.
예시:
# Anthropic
N8N_INSTANCE_AI_MODEL=anthropic/claude-opus-4-8
# OpenAI
N8N_INSTANCE_AI_MODEL=openai/gpt-5.5
# OpenRouter
N8N_INSTANCE_AI_MODEL=openrouter/deepseek/deepseek-v4-pro
N8N_INSTANCE_AI_MODEL_API_KEY를 선택한 제공업체의 API 키로 설정하세요.
N8N_INSTANCE_AI_MODEL_API_KEY가 설정되어 있지 않으면, n8n은 대체 값으로 제공업체의 표준 환경 변수를 사용합니다.
ANTHROPIC_API_KEYOPENAI_API_KEYOPENROUTER_API_KEY
로컬 또는 사용자 지정 OpenAI 호환 엔드포인트 사용하기#
로컬 또는 사용자 지정 OpenAI 호환 엔드포인트를 사용하려면 N8N_INSTANCE_AI_MODEL_URL을 설정하세요.
N8N_INSTANCE_AI_MODEL_URL=http://localhost:1234/v1
N8N_INSTANCE_AI_MODEL_API_KEY=optional-key
일부 로컬 서버는 API 키가 필요하지 않습니다.
샌드박스 제공업체 구성하기#
AI Assistant는 격리된 샌드박스 내에서 작업을 실행하므로 샌드박스 제공업체가 필요합니다.
| 제공업체 | 적합한 용도 |
|---|---|
daytona |
대부분의 셀프 호스팅 인스턴스에 권장되는 설정입니다. |
n8n-sandbox |
샌드박스 서비스를 직접 호스팅하려는 경우의 고급 설정입니다. |
Daytona#
Daytona로 빠르게 설정하기를 따랐다면, 필요한 Daytona 변수가 이미 준비되어 있습니다.
Daytona는 필요할 때마다 샌드박스를 생성합니다.
다음 변수로 샌드박스 라이프사이클을 조정하세요.
N8N_INSTANCE_AI_SANDBOX_AUTO_STOP_MINUTES=15
N8N_INSTANCE_AI_SANDBOX_AUTO_ARCHIVE_MINUTES=60
N8N_INSTANCE_AI_SANDBOX_AUTO_DELETE_MINUTES=10080
기본적으로 Daytona는 유휴 상태인 샌드박스를 15분 후 중지하고, 중지된 샌드박스를 1시간 후 보관 처리하며, 7일 후 삭제합니다. 위의 auto-stop, auto-archive, auto-delete 변수로 이 값을 변경할 수 있습니다.
옵션 B: n8n Sandbox Service#
샌드박스 서비스를 직접 호스팅하려면 n8n Sandbox Service를 사용하세요.
이는 고급 설정입니다. 샌드박스 서비스를 직접 운영해야 하는 경우가 아니라면 Daytona를 사용하세요.
n8n Sandbox Service에는 두 개의 컨테이너가 있습니다.
n8nio/n8n-sandbox-service-api: n8n이 통신하는 HTTP API입니다.n8nio/n8n-sandbox-service-runner-dind: 샌드박스를 Docker-in-Docker 컨테이너로 실행하는 러너입니다.
러너는 반드시 privileged 모드로 실행되어야 합니다.
API와 러너는 mutual TLS로 통신합니다. API 이미지에는 인증서를 생성하는 bootstrap-mtls.sh 스크립트가 포함되어 있습니다.
전체 Docker Compose 예시#
n8n 서비스와 함께 이것을 실행하세요.
volumes:
sandbox-tls:
services:
# 일회성: mTLS 인증서를 생성한 후 종료됩니다
sandbox-certs:
image: n8nio/n8n-sandbox-service-api:latest
user: '0:0'
entrypoint: ['sh', '-c']
command:
- >
bootstrap-mtls.sh --out-dir /tls --api-san sandbox-api
--control-san-prefix sandbox-runner --world-readable &&
chown -R sandbox-api:sandbox-api /tls/api && chmod -R a+rX /tls
environment:
NUM_RUNNERS: '1'
volumes:
- sandbox-tls:/tls
sandbox-api:
image: n8nio/n8n-sandbox-service-api:latest
depends_on:
sandbox-certs:
condition: service_completed_successfully
environment:
SANDBOX_API_KEYS: my-sandbox-api-key
SANDBOX_API_RUNNER_REGISTRATION_TOKEN: my-registration-token
SANDBOX_API_RUNNER_API_KEY: my-runner-key
SANDBOX_API_GRPC_TLS_CERT_FILE: /tls/api/grpc-server.crt
SANDBOX_API_GRPC_TLS_KEY_FILE: /tls/api/grpc-server.key
SANDBOX_API_GRPC_TLS_CLIENT_CA_FILE: /tls/api/ca.crt
SANDBOX_API_RUNNER_CONTROL_GRPC_TLS_CA_FILE: /tls/api/ca.crt
SANDBOX_API_RUNNER_CONTROL_GRPC_TLS_CERT_FILE: /tls/api/control-grpc-api-client.crt
SANDBOX_API_RUNNER_CONTROL_GRPC_TLS_KEY_FILE: /tls/api/control-grpc-api-client.key
SANDBOX_API_RUNNER_CONTROL_GRPC_TLS_SERVER_NAME: sandbox-runner-1
volumes:
- sandbox-tls:/tls:ro
sandbox-runner-1:
image: n8nio/n8n-sandbox-service-runner-dind:latest
privileged: true
depends_on:
- sandbox-api
environment:
SANDBOX_RUNNER_API_KEYS: my-runner-key
SANDBOX_RUNNER_REGISTRATION_TOKEN: my-registration-token
SANDBOX_RUNNER_API_GRPC_ADDR: sandbox-api:9090
SANDBOX_RUNNER_HTTP_BASE_URL: http://sandbox-runner-1:8080
SANDBOX_RUNNER_CONTROL_GRPC_LISTEN_ADDR: ':9091'
SANDBOX_RUNNER_CONTROL_GRPC_ADVERTISE_ADDR: sandbox-runner-1:9091
SANDBOX_RUNNER_ID: runner-1
SANDBOX_RUNNER_DOCKER_SANDBOX_IMAGE: n8nio/n8n-sandbox-service-sandbox:latest
SANDBOX_RUNNER_REGISTRATION_GRPC_CA_FILE: /tls/runner/ca.crt
SANDBOX_RUNNER_REGISTRATION_GRPC_CERT_FILE: /tls/runner/grpc-client.crt
SANDBOX_RUNNER_REGISTRATION_GRPC_KEY_FILE: /tls/runner/grpc-client.key
SANDBOX_RUNNER_REGISTRATION_GRPC_SERVER_NAME: sandbox-api
SANDBOX_RUNNER_CONTROL_GRPC_TLS_CERT_FILE: /tls/runner/control-grpc-server.crt
SANDBOX_RUNNER_CONTROL_GRPC_TLS_KEY_FILE: /tls/runner/control-grpc-server.key
SANDBOX_RUNNER_CONTROL_GRPC_TLS_CLIENT_CA_FILE: /tls/runner/ca.crt
volumes:
- sandbox-tls:/tls:ro
n8n을 샌드박스 서비스로 지정하기#
서비스가 실행되면, n8n 인스턴스에 다음 변수를 설정하세요.
N8N_INSTANCE_AI_SANDBOX_ENABLED=true
N8N_INSTANCE_AI_SANDBOX_PROVIDER=n8n-sandbox
N8N_SANDBOX_SERVICE_URL=http://sandbox-api:8080
N8N_SANDBOX_SERVICE_API_KEY=my-sandbox-api-key
| 변수 | 설명 |
|---|---|
N8N_INSTANCE_AI_SANDBOX_ENABLED |
true로 설정합니다. |
N8N_INSTANCE_AI_SANDBOX_PROVIDER |
n8n-sandbox로 설정합니다. |
N8N_SANDBOX_SERVICE_URL |
n8n에서 접근 가능한 샌드박스 API의 URL입니다. |
N8N_SANDBOX_SERVICE_API_KEY |
API 컨테이너의 SANDBOX_API_KEYS와 일치해야 합니다. |
서비스가 실행 중인지 확인하세요.
curl http://<sandbox-api-host>:8080/healthz
예상 응답:
{"status":"ok"}
참고 사항:
my-sandbox-api-key,my-registration-token,my-runner-key를 사용자 고유의 시크릿으로 교체하세요.- 러너는 처음 사용할 때 Docker Hub에서
n8nio/n8n-sandbox-service-sandbox를 가져옵니다. - 에어갭 환경의 경우,
n8nio/n8n-sandbox-service-sandbox를 러너의 내부 Docker에 미리 로드하세요. - 호스트 이름이 중요합니다. 인증서는
sandbox-api와sandbox-runner-<n>에 대해 발급되므로, 해당 서비스 이름을 그대로 유지하거나 일치하는 SAN으로 인증서를 재생성하세요.
선택적 기능#
기본 설정이 동작한 후, 웹 검색을 조정할 수 있습니다.
웹 검색 활성화하기#
웹 검색을 사용하면 AI Assistant가 웹에서 정보를 조회할 수 있습니다. 이를 위해서는 검색 제공업체가 필요합니다.
Brave Search가 권장 제공업체입니다. 권장 설정에는 기본적으로 Brave Search가 포함됩니다. 웹 검색을 구성하지 않아도 AI Assistant의 나머지 기능은 계속 동작하지만, 웹 검색 액션은 비활성화 상태로 유지됩니다.
# Brave Search
INSTANCE_AI_BRAVE_SEARCH_API_KEY=BSA-xxx
# SearXNG
N8N_INSTANCE_AI_SEARXNG_URL=http://searxng:8080
INSTANCE_AI_BRAVE_SEARCH_API_KEY는 의도적으로 N8N_ 접두사를 사용하지 않습니다. 표시된 그대로 변수를 사용하세요.
웹 검색을 원한다면 Brave Search를 구성하세요. SearXNG도 함께 구성한 경우, Brave Search가 SearXNG보다 우선합니다.
SearXNG를 포함한 무료 또는 인증되지 않은 제공업체는 속도 제한(rate limit)에 걸릴 수 있습니다. 더 안정적인 설정을 위해 Brave Search를 사용하세요.
인스턴스 관리자가 AI 설정 UI에서 Brave Search 또는 SearXNG 자격 증명을 선택하면, n8n은 이 환경 변수 대신 해당 자격 증명을 사용합니다.
AI Assistant 비활성화하기#
AI Assistant를 비활성화하려면 N8N_ENABLED_MODULES에서 instance-ai를 제거하세요.
다음과 같이 모듈을 명시적으로 비활성화할 수도 있습니다.
N8N_DISABLED_MODULES=instance-ai
문제 해결#
AI Assistant가 나타나지 않거나 동작하지 않는 경우, 다음을 확인하세요.
N8N_ENABLED_MODULES에instance-ai가 포함되어 있는지.N8N_INSTANCE_AI_MODEL을 설정한 경우, 모델 값이provider/model형식을 사용하는지.- API 키가 선택한 제공업체에 유효한지.
N8N_INSTANCE_AI_SANDBOX_ENABLED가true로 설정되어 있는지.- 샌드박스 제공업체가 구성되어 있는지.
- 샌드박스 제공업체가 n8n 인스턴스에서 접근 가능한지.
- Daytona의 경우,
DAYTONA_API_URL과DAYTONA_API_KEY가 설정되어 있는지. - 웹 검색을 원하는 경우,
INSTANCE_AI_BRAVE_SEARCH_API_KEY가 설정되어 있는지, 또는N8N_INSTANCE_AI_SEARXNG_URL이 설정되어 있는지. - n8n Sandbox Service의 경우,
N8N_SANDBOX_SERVICE_API_KEY가 API 컨테이너의SANDBOX_API_KEYS와 일치하는지. - 샌드박스 서비스 상태 확인(health check)이
{"status":"ok"}를 반환하는지.