AI & Advanced Nodes
AI nodes embed large language model capabilities directly into workflows. Advanced nodes enable complex execution patterns — invoking Octopus agents, running sub-workflows, and parallel fan-out/fan-in. AI nodes have special multi-handle layouts reflecting their richer input contracts.
AI Nodes
ai-agent
Invokes an Octopus AI Agent to perform a multi-step reasoning task. The agent can use tools, query memory, and return a structured result.
| Port | Type | Description |
|---|---|---|
| input (main) | In | Task description and context data |
| tools | In (optional) | Override tool list for this invocation |
| memory | In (optional) | Memory context to inject |
| output | Out | Agent result: { result, actions, tokens } |
| error | Out | Agent failure or timeout |
openai-llm
Calls OpenAI's completion or chat API directly.
| Field | Description |
|---|---|
| Credential ID | OpenAI API Key credential |
| Model | gpt-4o, gpt-4-turbo, gpt-3.5-turbo, etc. |
| System Prompt | System message (expressions supported) |
| User Prompt | User message (expressions supported) |
| Temperature | 0.0 (deterministic) to 2.0 (creative) |
| Max Tokens | Response length cap |
| JSON Mode | Force structured JSON output |
anthropic-chat
Calls Anthropic's Claude API (claude-3-5-sonnet, claude-3-opus, claude-3-haiku).
Same configuration shape as openai-llm but specific to Anthropic credentials and model names.
Advanced Execution Nodes
sub-workflow
Invokes another ProcessThread as a child workflow, waits for its completion, and receives its result as the output.
| Field | Description |
|---|---|
| Process ID | The target Process to invoke |
| Thread ID | Optional: specific thread. If omitted, uses the published thread. |
| Input Data | Expression providing the trigger data for the child workflow |
| Timeout | Maximum wait time for child completion |
parallel-fork
Starts multiple downstream branches simultaneously. All branches receive the same input data. Used with parallel-join to merge results.
Output ports: Configurable — add named output ports (branch1, branch2, …)
parallel-join
Waits for all (or a configurable number of) parallel branches to complete, then merges their outputs into a single object before continuing.