How steering works
A steering message is injected into the agent’s conversation as a user-role message. The agent sees it on its next LLM turn — after the current tool call finishes — and can adjust its approach immediately. The delivery flow:- You send a steering request with your guidance text
- The message is queued on the agent session’s steering queue
- Before the next LLM call, Fabro drains the queue and injects each message as a
Steeringturn in the conversation history - The LLM sees the guidance alongside its existing context and adjusts accordingly
When steering is delivered
Steering messages are drained from the queue at two points during the agent loop:- Before the first LLM call — any messages queued before the agent starts its first turn
- After each tool execution round — between tool results being collected and the next LLM call
Steering vs. human gates
Steering and human gates serve different purposes:| Steering | Human gates | |
|---|---|---|
| When | Any time during an agent stage | At a defined point in the workflow graph |
| Blocks execution | No — agent continues working | Yes — workflow pauses until a choice is made |
| Defined in the graph | No — sent ad hoc via the API | Yes — hexagon nodes with edge options |
| Use case | Course corrections, hints, focus changes | Approval decisions, strategy selection, go/no-go |
