aion

n8n community node for AION Agent — streaming chat, profiles, memory, and tools

Package Information

Released: 1 mo ago
Downloads: 0 weekly / 0 monthly
Latest Version: 0.1.1
Author: AION Developers

Documentation

n8n-nodes-aion

Community node that connects n8n to an AION Agent instance.

Features

  • Credentials: Base URL + API key (aion_…)
  • Profile dropdown: loads available profiles from GET /profiles
  • Ask: streaming POST /v1/chat/stream (SSE, same path as chat-ui)
  • Create conversation: POST /v1/conversations for multi-turn workflows
  • Options: agent mode, thinking, web search, LLM provider, memory project, tool output

Requires AION with authenticated chat API and a valid API key.

Install (n8n)

Community package (npm)

In n8n Settings → Community Nodes → Install, enter:

@aion-asa/n8n-nodes-aion

See PUBLISHING.md for maintainers (manual or CI release).

Local / Docker development

cd n8n-nodes-aion
pnpm install   # or npm install
pnpm build

Point n8n custom extensions at this package (example for Docker):

# mount dist into ~/.n8n/custom or set N8N_CUSTOM_EXTENSIONS
export N8N_CUSTOM_EXTENSIONS=/path/to/n8n-nodes-aion

Or link into n8n's custom folder:

mkdir -p ~/.n8n/custom
npm link
cd ~/.n8n/custom && npm link n8n-nodes-aion

Credentials

Field Example Notes
Base URL http://localhost:8001 Behind Caddy: https://host/api (no trailing slash)
API Key aion_… Create in Admin UI → API Keys; prefer scope chat (+ conversations:write for Create)

Credential test calls GET /health.

Operations

Agent → Ask

Parameter Description
Profile Dynamic list from AION
User ID Default n8n (memory / ACL identity)
Memory Project Required for memory-enabled profiles (e.g. generic_assistant); loaded from GET /v1/query-memory/projects
Agent Mode normal, plan, deep_research, long_run, ask, debug (same as chat-ui)
Thinking Enabled Chain-of-thought / reasoning (thinking_enabled)
Reasoning Effort min / medium / max when thinking is on (reasoning_effort)
Web Search web_search_enabled — enable when AION_WEB_SEARCH_REQUIRE_CLIENT_OPT_IN=1

Web search providers (AION server): the n8n toggle only opts in per request. You also need at least one provider enabled on AION, e.g. AION_WEB_SEARCH_TAVILY_ENABLED=1 and AION_TAVILY_API_KEY, then restart AION. If tools return web_search_disabled, check Admin → Settings → Web search.

| Web Search Restrict Hosts | Optional host allowlist (web_search_restrict_hosts) |
| LLM Provider | Optional provider slug (llm_provider_name), loaded from /admin/llm-providers |
| Message Source | user_input (default), internal_trigger, scheduled_trigger |
| Message | Prompt / automation text |
| Conversation ID | Optional; empty = new conversation |
| Timeout (seconds) | Default 300 |

Output fields: text, conversation_id, session_id, profile, success, charts, error, tool_calls, conversation (full message list with tool_result when available). Optional stream_events when Include Stream Events is enabled.

Uses POST /v1/chat/stream (same SSE path as chat-ui) instead of the sync JSON endpoint.

Conversation → Create

Creates a conversation with the selected profile. Pass the returned id into Ask as Conversation ID for multi-turn.

Example workflow

Cron / Webhook
    → AION Agent (Ask, profile=aion_std, message=…)
    → Slack / HTTP / DB

Multi-turn:

AION Agent (Conversation → Create)
    → AION Agent (Ask, conversationId={{ $json.id }})
    → AION Agent (Ask, same conversationId)

AION side checklist

  1. Create an API key with at least chat access
  2. Ensure profiles exist under config/profiles
  3. Confirm:
curl -sS -H "Authorization: Bearer $AION_API_KEY" \
  "$AION_BASE/profiles" | jq .

curl -sS -N -X POST -H "Authorization: Bearer $AION_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message":"ping","profile":"aion_std"}' \
  "$AION_BASE/v1/chat/stream"

Development

pnpm install
pnpm build
pnpm dev   # n8n-node dev — hot reload against local n8n

License

MIT

Discussion