The agent
Every setting on an LLM Agent, which models it can run, and the one thing it never remembers.
LLM Agent is the only component that thinks. Everything else in the palette either feeds it, arranges it, watches it, or hands it a capability.
Drop one on the canvas and select it; the Inspector shows everything below.
The settings#
| Field | What it does | Default |
|---|---|---|
| Name | Labels the node on the canvas. Editing it renames the node. | the palette label |
| Description | Free notes for you. Nothing reads it at run time. | empty |
| System Prompt | How the agent should behave. | empty |
| Model | Which of your models runs it. | filled in when you first select the node — see below |
| Max Steps | How many tool-running rounds it may take. | 50 |
| Temperature | Passed straight to the provider. Blank means the provider's own default. | blank |
| Can Stop Feedback | Gives this agent the ability to end a feedback loop. | off |
| Reasoning Format | none, think_tags, or reasoning_content. |
none |
| Delta Type | Whether this agent's streaming text is tagged message or reasoning. |
message |
System Prompt is a full markdown editor, not a plain box: it has Write and Preview tabs, an expand-to-fullscreen button and a markdown legend. Worth using — a system prompt is usually the longest thing you'll write here.
Choosing a model#
The Model picker is the same searchable picker the chat uses, with search, provider chips and
stars — narrowed to API-key models. It lists your custom models (labelled Custom) and the
catalogues of any connected provider.
Important
A flow can run only on a custom model today. The picker shows a connected provider's rows too,
but at run time the composer looks the model up in your custom models alone, so a provider row
fails with "model … is not in custom-models.json". Pick one labelled Custom. If you don't have
one, add it under Settings → Models → Custom Models first.
The default. An agent gets its model the moment you first select it — the Inspector's picker fills an empty field with the first model you've starred, else your first custom model, else a connected provider's own default (which, per the note above, won't run). An agent you never select stays empty and the run refuses with "an agent node has no model selected".
Pick a different one and the flow stores that choice; the choice is all it stores.
Important
Your API keys never enter a flow file. The flow records only which model you picked. Base URL, key and the provider's own model id are read from your local Semantix settings at the moment the flow runs. That's what makes a flow safe to hand to someone else — see Saving and sharing.
Four errors you may meet at run time, all of them before any model is called:
- "an agent node has no model selected" — an agent on the canvas has an empty Model field.
- "model … is not in custom-models.json — was it removed from your Semantix models?" — the flow names a model that isn't one of your custom models: one you've since deleted, or a connected provider's row.
- "custom model … is missing "api_key"" — the model exists but that field is empty. The same
message appears for
base_urlandmodel_id. - "the Claude model family isn't runnable in the composer yet — pick a custom model" — only reachable from a flow saved back when the picker still offered Claude. Open the agent and choose one of your own models.
⚑ An agent does not remember#
Every run starts from nothing. An agent in a flow has no conversation history — not across runs, and not between one node and the next. It receives its input, does its work, and forgets.
What carries a run forward is the wiring, not memory: each step's output becomes the next step's input. If an agent needs to know something, it has to arrive in the text it's given or be fetched with a tool.
Inside a Feedback Loop the erasure is explicit — every iteration begins with the agent's memory cleared, by design, so each pass is a fresh look rather than an argument with itself. See Pipelines.
What Max Steps counts#
A "step" is one round of tool-running: the agent asks for tools, they run, and the model is called again with the results.
An agent that answers straight away uses none of its budget — the first model call happens before the counter starts. An agent that reads three files one after another uses three. An agent that asks for all three files in a single request uses one, because every tool call in one request runs together.
Important
A run that hits the ceiling looks exactly like a run that finished. When an agent exhausts Max Steps it stops and reports its last output as the final answer — there's no distinct "ran out of steps" state, no warning, no different colour on the node. If an answer ends somewhere strange and the work looks half-done, raise Max Steps and run it again.
The default was raised to 50 for exactly this reason; it used to be 10, which quietly cut real work off mid-sentence.
Don't confuse this with the step 2 · Critic pill you'll see on nodes inside a pipeline. That counter
is which node of the pipeline is running. Same word, different thing.
Note
An agent's reply is capped at 4096 tokens per model call. A very long single answer stops there.
The three fields people skip#
Can Stop Feedback gives the agent one extra ability: to declare the work good enough and stop. Its reason for existing is the Feedback Loop, where that ends the loop early — give it to a critic, not to the worker. Turned on elsewhere it still works, and simply ends that agent's own turn.
Reasoning Format tells the agent how this particular model exposes its thinking — think_tags for
models that wrap it in tags, reasoning_content for models that return it as a separate field, none
for everything else. Getting it wrong doesn't break the run; it just means reasoning shows up as
ordinary output or not at all.
Delta Type decides whether this agent's streaming text is labelled message or reasoning. It
changes what the output boxes do with it: a Text Output shows message deltas, so an agent set to
reasoning will appear to produce nothing until it finishes.
Giving it capabilities#
An agent with no tools can only read what it's given and write words back. Tools are what let it touch your project — and they're assigned with a click, not a wire.
→ Tools