n8n/packages/@n8n/instance-ai
Jaakko Husso 3366d2b9b3
fix(core): Stop marking the Message an Agent node as hidden (#40358)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 11:24:39 +00:00
..
assets fix(core): Return available build errors in one tool result (#38231) 2026-09-16 14:56:51 +00:00
docs fix(core): Report empty node output in Instance AI workflow verification (#40047) 2026-10-02 08:45:43 +00:00
evaluations feat(core): Add durable pause checkpoints for background sub-agents (no-changelog) (#40118) 2026-10-02 13:10:50 +00:00
knowledge-base/reference fix(core): Prefer native nodes over Code nodes in n8n Assistant workflow builds (#38598) 2026-09-15 08:27:22 +00:00
scripts chore: Migrate agent runtime lint to Oxlint (no-changelog) (#39971) 2026-09-30 11:46:43 +00:00
skills fix(core): Keep skill activation and memory compaction from breaking the prompt cache (no-changelog) (#40245) 2026-10-05 10:48:35 +00:00
src fix(core): Stop marking the Message an Agent node as hidden (#40358) 2026-10-06 11:24:39 +00:00
.gitignore fix(ai-builder): Bound eval lane requests and stop abandoned mocked executions (no-changelog) (#35228) 2026-08-06 08:23:37 +00:00
CLAUDE.md refactor: Group quality engineering workspaces by capability (#40007) 2026-10-01 11:20:00 +00:00
eslint.config.mjs chore: Migrate agent runtime lint to Oxlint (no-changelog) (#39971) 2026-09-30 11:46:43 +00:00
eval-run.log test(core): Extend Instance AI intent eval fixtures (no-changelog) (#33224) 2026-07-07 12:49:32 +00:00
eval-smoke.log test(core): Extend Instance AI intent eval fixtures (no-changelog) (#33224) 2026-07-07 12:49:32 +00:00
oxlint.config.mts chore: Migrate agent runtime lint to Oxlint (no-changelog) (#39971) 2026-09-30 11:46:43 +00:00
package.json 🚀 Release 2.43.0 (#40376) 2026-10-06 07:10:16 +00:00
README.md feat: Rename AI Assistant to n8n Assistant (#38065) 2026-09-10 08:56:53 +00:00
tsconfig.build.json feat(core): Guide Instance AI credential selection (#37447) 2026-09-04 13:04:42 +00:00
tsconfig.json fix(core): Return available build errors in one tool result (#38231) 2026-09-16 14:56:51 +00:00
vite.config.ts refactor(core): Remove Instance AI orchestration delegate tool (no-changelog) (#33556) 2026-07-07 09:15:26 +00:00

@n8n/instance-ai

Instance AI is the agent runtime behind the n8n Assistant experience in n8n. It lets users ask for help with workflows, executions, credentials, nodes, and workflow building from inside an n8n instance.

The package contains the agent prompts, tool registry, workflow-builder logic, workspace adapters, tracing helpers, and evaluation harnesses. The HTTP API, database entities, settings, and n8n service adapters live in packages/cli/src/modules/instance-ai.

What It Does

Instance AI is built around a deep-agent loop:

  • An orchestrator agent receives the user's request and maintains the plan.
  • Evaluation setup runs in the orchestrator through the config-evals skill.
  • Domain tools read and update n8n resources through backend adapters.
  • Observational memory condenses long conversations.
  • Workflow building runs in a sandbox workspace, validates generated TypeScript, and submits the workflow through the n8n backend.

The workflow builder requires sandboxing. The default provider is the n8n sandbox service. Daytona remains an explicit provider for environments that still need it.

Running Locally

Instance AI is a backend module, so run it through n8n rather than this package directly.

1. Start the n8n Sandbox Service

From the repo root:

TESTCONTAINERS_REUSE_ENABLE=true pnpm --filter n8n-containers services \
  --services sandbox \
  --network n8n-instance-ai-dev \
  --name n8n-svc-sandbox

This starts the sandbox API and runner containers and writes the host-reachable sandbox environment variables to packages/cli/bin/.env. You can verify the service from any terminal:

SANDBOX_PORT=$(docker port n8n-svc-sandbox-sandbox-api 8080/tcp | sed 's/.*://')
curl "http://localhost:${SANDBOX_PORT}/healthz"

Expected response:

{"status":"ok"}

2. Start n8n With Instance AI Configured

In a second terminal:

export N8N_INSTANCE_AI_MODEL=anthropic/claude-sonnet-4-5
export N8N_INSTANCE_AI_MODEL_API_KEY="$ANTHROPIC_API_KEY"

export N8N_INSTANCE_AI_SANDBOX_ENABLED=true

pnpm dev:ai

The instance-ai module is enabled by default. N8N_AI_ENABLED is not an Instance AI runtime gate.

The pnpm --filter n8n-containers services command writes N8N_INSTANCE_AI_SANDBOX_PROVIDER, N8N_SANDBOX_SERVICE_URL, and N8N_SANDBOX_SERVICE_API_KEY to packages/cli/bin/.env. If you are not using that generated .env file, export them manually:

export N8N_SANDBOX_PORT=$(docker port n8n-svc-sandbox-sandbox-api 8080/tcp | sed 's/.*://')
export N8N_INSTANCE_AI_SANDBOX_PROVIDER=n8n-sandbox
export N8N_SANDBOX_SERVICE_URL="http://localhost:${N8N_SANDBOX_PORT}"
export N8N_SANDBOX_SERVICE_API_KEY=n8n-sandbox-ci-key

For n8n running inside the same Docker network as the sandbox service, use the internal service URL instead:

N8N_SANDBOX_SERVICE_URL=http://sandbox-api:8080

3. Cleanup

pnpm --filter n8n-containers services:clean
docker network rm n8n-instance-ai-dev 2>/dev/null || true

Useful Commands

Run focused tests:

pnpm --filter @n8n/instance-ai test

Print agent prompts:

pnpm --filter @n8n/instance-ai prompts:print

Run evaluations:

pnpm --filter @n8n/instance-ai eval:instance-ai

More Documentation