Agent
The Agent node uses AI to interpret the user’s message, follow your instructions, call tools when needed, and optionally send a reply.
Add the Agent node from the Core section of the node list. It invokes an agent to perform the assigned action on the Workflow path.
Use Agent when the user needs a conversational experience—not only a document search. For example, explain a policy, look up an order, and respond in a consistent tone.
Use Knowledge Base instead when the path should only search stored documents. Agent can still search documents through the optional Knowledge Base Retrieval tool, but only when the model decides a search is needed.
Until you save settings, the canvas shows This node is not configured.
How the Agent Node Works
When the Workflow reaches the Agent node, the model uses the System Prompt, Model, and any configured Tools to process the user’s message. Depending on Enable Answering and Enable Streaming, the user may see a reply from this node.
For example, a shopper asks:
Where is order 1842?
- The message reaches Agent.
- The System Prompt instructs the assistant to act as support, look up orders, and never invent tracking numbers.
- The Model decides it needs data and calls an API Request tool with
1842. - The API returns status and tracking.
- If Enable Answering is on, the shopper sees a reply such as: Order 1842 shipped yesterday. Tracking: 1Z999.
- If Enable Streaming is also on, that reply appears word by word instead of all at once.
The Agent node has one incoming connection and one outgoing connection. It does not branch by itself. Use If / Else after Agent when the next step depends on a field defined in Output Schema.
Add and Connect Agent
To add an Agent node:
- Open the Workflow canvas.
- Find Agent under Core.
- Add the node to the canvas.
- Connect the previous node to Agent.
- Connect Agent to the next node when the path should continue after this step.
A common setup is:
Start → AgentYou can also place Agent after other nodes:
Start → User Feedback → Agent
Start → Knowledge Base → Agent
Start → Agent → If / Else → EndConfigure the Agent
Select the Agent node to open its configuration panel.
| State | What you see |
|---|---|
| Never saved | Add |
| Already saved | Short summary (prompt, provider, model, temperature, max tokens, tools) and View / Edit |
Select Add or View / Edit to open the Add / Edit Agent Configuration dialog.
Select Save to apply your changes. Select Cancel to close the dialog without applying edits from that session.
Name
The Name is a label for you on the canvas. The model does not see it, and routing does not use it.
The name is required and must contain at least 3 characters.
Examples that work:
Order lookup
Eligibility checkExamples that fail:
ABSystem Prompt
The System Prompt is the job brief for the assistant. Describe what the assistant is, what it must do, what it must not do, and when to use each tool by the Tool Name you configure later.
The System Prompt is required.
Example:
You are a customer support assistant for Acme Shop.
Answer only from tool results and the user's message.
If the user asks about an order, call get_order_status with the order number.
If there is no order number, ask for it.
Do not guess tracking numbers. Keep replies under five sentences.Chat Canvas
Type / in the System Prompt to attach a Chat Canvas you already built (cards, buttons, layout). Attached canvases appear as chips under the prompt. Remove a chip to detach it.
Chat Canvas changes how the reply is presented in chat. It does not replace the System Prompt.
Example: The prompt explains the policy; the canvas shows a product card with image and price.
Provider
Provider selects which company supplies the models in the Model list.
| In the product | Meaning |
|---|---|
| OpenAI | OpenAI models |
| Anthropic | Claude models |
| Gemini models |
If you switch provider, the Model list updates. If the previously selected model is not available on the new provider, the first available model for that provider is selected.
Example: OpenAI → gpt-4.1-mini. Anthropic → a Claude model from the updated list.
Model
Model is the specific engine for this Agent node. The list comes from your workspace credit catalog, so available names can differ by account.
Each option shows credits / run. If a model is being retired, a deprecation date appears on the option and under the selection.
Model is required.
How to choose:
- Short FAQ-style answers → smaller, lower-credit models
- Long reasoning, many tools, or strict policy → stronger models (higher credits)
The credit value next to the model name is the cost each time this Agent node runs, not a monthly total.
Temperature
Temperature controls how steady versus varied the wording is. It does not change which tools exist; it affects how freely the model phrases the answer.
Default when adding a new Agent: 0.5
Range depends on the model:
| What you see | What it means |
|---|---|
| Temperature (0.0 – 2.0) | Full range (typical OpenAI-style models) |
| Temperature (0.0 – 1.0) | Capped range (several Claude and Gemini models) |
| Temperature (1.0) | Locked at 1 (most GPT-5 models) |
| Temperature (N/A) | Not used for that model (field disabled) |
Examples:
- Policy, eligibility, or order facts →
0.2–0.4for consistent wording - Catchy product suggestions → closer to
0.8–1.0where the slider allows
If the field is locked or shows N/A, that model does not accept a custom temperature.
Max Tokens
Max Tokens caps reply length (generated text), not the length of the user’s message.
| Value | |
|---|---|
| Minimum | 200 |
| Default | 1000 |
| Maximum | Shown in the label (often 64,000 or 128,000 depending on model) |
Examples:
- One-sentence status →
300–500 - Multi-step explanation with a short summary →
1000–2000 - Long structured JSON with Output Schema → raise only as far as needed; a high cap allows a long answer if the model produces one
Reasoning Effort
Reasoning Effort appears only for models whose name starts with gpt-5.
It controls extra internal reasoning before the visible answer. Higher effort can improve accuracy on complex decisions but increases latency.
| Option | Use when |
|---|---|
| None (default) | Simple Q&A, lowest latency |
| Minimal | Slight extra care without much wait |
| Low | Light decisions (which tool, which ID) |
| Medium | Mix of tools and policy |
| High | Conflicting data, refunds, eligibility |
Example: Order lookup with one API → None. Should we refund under this policy given the API result? → Medium or High.
Output Schema (Optional)
Output Schema defines JSON fields the model should return. Skip it when the user only needs a normal chat message.
Use it when a later node must read stable values—especially If / Else.
Each row includes:
| Column | What to put |
|---|---|
| Name | Key, e.g. order_found |
| Type | Shape of the value |
| Description | What belongs in that field |
| Type | Example |
|---|---|
| STR | "shipped" |
| NUM | 1842 |
| BOOL | true |
| ENUM | Only values you list, e.g. eligible / not_eligible |
| OBJ | Nested object, e.g. customer with name and email |
| ARR | List, e.g. line items; you pick the item type |
Example schema for routing after Agent:
order_found— BOOL — Whether the API returned an orderstatus— STR — Shipping status from the APIuser_message— STR — Short text the user can read
If / Else can then test order_found and send not found versus found down different paths. If Enable Answering is off, Agent can fill this schema without chatting; a later node can present the message.
Enable Memory
Off (default): This run does not include earlier turns from the same chat. Use for a single lookup such as Status of 1842?
On: The model also sees recent messages from this session. Use when follow-up messages depend on earlier context, such as What about the blue one? after the user already named a product.
Context Window Length (1–100)
Shown only when memory is on. Controls how many previous messages to include. Default 10.
Example: Window 6 on a long chat keeps the last few exchanges (including the bot’s lines) without sending the entire history.
Memory applies per chat session, not across different users or conversations.
Tools Configuration
Tools are optional actions the model may call during this Agent node. Without tools, Agent uses the System Prompt, memory (if enabled), and the current message only.
Select Add Tool to add one of four tool types. After a tool exists, edit or delete it in the list. Tools are stored when you Save the Agent configuration.
Tool Name (all types): Use letters, numbers, and underscores only (get_order_status, not get order status). The model invokes the tool by this name. Each tool on the same Agent must have a unique name.
You may add multiple API Request, Knowledge Base Retrieval, and Action Request tools. Shopify: only one integration per Agent.
API Request
An HTTP call the model can trigger.
Worked example: GET https://api.acme.com/orders/{id} to load status.
| Field | What it is | Example |
|---|---|---|
| Endpoint URL | Full address | https://api.acme.com/v1/orders |
| HTTP Method | Verb | GET to read, POST to create |
| Retry (Optional) | Extra tries after failure, 2–10 | 3 if the API is flaky; leave empty to disable retry |
| Description | When to call it | Use when the user gives an order number. Returns status and tracking. |
Send Query Parameters
Adds ?key=value to the URL.
- Static: You set the value (e.g.
locale=en-USalways). - Dynamic: The model fills the value from the chat (e.g.
order_idfrom order 1842).
When this option is on, every row needs a name and a value or description. Add at least one complete row.
Send Headers
Same row pattern as query parameters, for HTTP headers.
Static example: Accept = application/json
Dynamic example: A header the model fills from the conversation (uncommon; most headers stay static).
Send Body
For POST, PUT, PATCH, or any call that needs a payload.
Field types: String, Number, Boolean, Object, Array. Each field can be Static (fixed) or Dynamic (filled from the chat; requires a short description).
Example POST body:
email— String — Dynamic — Customer email from the messageplan— String — Static —pro
When the switch is on, add at least one field.
Enable Authorization
Adds credentials to the request.
| Auth Type | Fill in |
|---|---|
| Bearer Token | Token |
| Basic Auth | Username and password |
| API Key | Header name + key |
| Custom Header | Header name + value |
Example: Bearer Token with your API token so get_order_status is accepted by the server.
Leave authorization off only if the endpoint is public.
Knowledge Base Retrieval
The model may search a Curatu Knowledge Base. This is not the Knowledge Base node, which always runs a search on its path.
| Field | What it is | Example |
|---|---|---|
| Knowledge Base | Which library | Return policy 2026 |
| Description | When to search | Use for return windows, restocking fees, and warranty. Do not use for live order tracking. |
| Similarity Threshold (0.0–1.0) | How close a passage must be | Default 0.7. Use 0.4 for vague questions; use 0.85 for near-exact matches only |
If the list is empty, create a Knowledge Base under Data first.
Action Request
Use a working curl command from Postman or vendor documentation. Curatu runs it as an HTTP request, not as a terminal command.
Action Command must start with curl (curl, then a space).
Example command:
curl https://api.example.com/tours?q=paris -H "accept: application/json"Description: Search tours when the user names a destination. Returns titles and dates.
Dynamic Fields: After you paste the command, use Analyze Action Command (or the sparkles control). You get a table with:
- Checkbox — include this field as filled from chat
- Location — query, body, or header
- Name — e.g.
q - Description — e.g. City or destination the user asked about
- Type — string, number, etc.
Make All Dynamic / Make All Static selects or clears every checkbox. Unchecked rows keep the original curl value (e.g. a fixed accept header).
| Field | Range / default | Example |
|---|---|---|
| Timeout (seconds) | 1–300, default 30 | 60 for a slow search API |
| Retry | 2–10, default 2 | 2 for brief outages |
| Response Property (Optional) | Dot path into JSON | data.results if the useful list is nested |
Shopify Integration
One store connection per Agent. A second Shopify tool is disabled (This tool is already included).
Connection Type (new tool only):
- Connect with OAuth — Domain, tool name, actions, then Add Tool. The Agent saves first, then Shopify login runs. After success, the tool appears on this Agent.
- Enter Access Token — Same flow, plus a private Admin Access Token. No redirect.
Store Domain: your-store.myshopify.com
Tool Name example: acme_shopify
Available Actions (select at least one):
| Action | Example user request |
|---|---|
| Search Products | Do you have navy hoodies? |
| Get Product | Show sizes for SKU 44 |
| Get Collections | What’s in Summer Sale? |
| Get Collection Products | List Summer Sale items |
| Create Draft Order | Build a draft with items and email |
| Get Draft Order | Is draft 201 still open? |
| Get Order | Details for order 1842 |
| Get Fulfillments | Tracking for 1842 |
| Cancel Order | Cancel order 1842 |
Enable only actions this assistant should perform. A storefront FAQ bot may need Search Products and Get Product only—not Cancel Order.
Enable Streaming
Off (default): The full answer appears when generation finishes.
On: Text appears as it is generated.
Streaming affects display only. A node can stream while Enable Answering is off, but there is nothing user-facing to stream in that case.
Example: A long policy explanation often feels faster with streaming enabled.
Enable Answering
Off (default): Agent may call tools and fill Output Schema, but the user does not receive a message from this node. Use when a later node should speak (End, another Agent, User Feedback) or when you only need structured output for If / Else.
On: This node may send the user-facing reply. In many workflows, that is where the path completes for that turn.
| Streaming | Answering | What the user experiences |
|---|---|---|
| Off | Off | Silent processing; a later node speaks |
| Off | On | Full reply appears at once |
| On | On | Reply appears incrementally |
| On | Off | No user-visible reply to stream |
Example: Agent sets order_found with answering off → If / Else → End shows We couldn’t find that order.
Configuration Limits
| Item | Limit |
|---|---|
| Name | At least 3 characters |
| System Prompt | Required |
| Model | Required |
| Max Tokens | 200 up to the model cap |
| Memory window | 1–100 |
| HTTP retry | Optional 2–10 |
| Action timeout | 1–300 seconds |
| Action retry | 2–10 |
| Action Command | Must start with curl |
| Shopify | One per Agent |
| Canvas links | One incoming and one outgoing connection |
Agent and Other Nodes
| Job | Node |
|---|---|
| Instructions, tools, memory, Chat Canvas, structured JSON | Agent |
| Always search one library on this path | Knowledge Base |
| Choose among several libraries | Auto Orchestrator |
| Ask the user a question | User Feedback |
| Split the path on a condition | If / Else |
| Optional fixed closing message | End |
Agent at a Glance
| Option | Purpose |
|---|---|
| Agent | AI step that follows instructions and may use tools |
| System Prompt | Role, rules, and when to use tools |
| Provider / Model | AI engine and credits per run |
| Temperature | Consistency versus variation in wording |
| Max Tokens | Cap on generated reply length |
| Reasoning Effort | Extra reasoning for GPT-5 models |
| Output Schema | Structured fields for later nodes |
| Enable Memory | Include recent session messages |
| Tools | API, Knowledge Base Retrieval, Action Request, Shopify |
| Enable Streaming | Show reply as it is generated |
| Enable Answering | Send a user-visible reply from this node |
Configure the System Prompt and tools first, then set Enable Answering and Enable Streaming based on whether this node should speak to the user and how the reply should appear.