Nothing reaches the model raw. Before the call, SAFi composes these parts in a fixed order into one system prompt. Each is present only when it has something to say.
01Worldview
The agent's purpose and the principles it should reason from. Anything retrieved from a knowledge base is folded into this text.
02Who it is talking to
The user's name and profile, when known.
03Work context memory
Facts accumulated across every past conversation with this agent, so it need not re-ask what it already knows.
04Conversation summary
A condensed account of the exchange so far.
05Recent turns, verbatim
The last few exchanges unsummarised, where exact wording matters.
06Coaching from the Spirit
The loop's only path back into drafting — and deliberately vague. A qualitative nudge plus at most one value's name, never scores or rubrics, so the drafter cannot write to the test.
07Available tools
Names and descriptions only. A list of what could be asked for, not a key to any of it.
08Formatting and style
How the answer should be shaped, carrying the agent's tone.
What it is deliberately not given
The agent's values, their weights, and their rubrics never enter this prompt. The Intellect is directed by worldview and style; the values are the Conscience's instrument, applied to the draft after it exists. A drafter that graded itself would be marking its own paper.
The Intellect makes a single request to the language model. Which model is a configuration choice, not a property of the framework — the faculty is a role, and any sufficiently capable model can fill it.
It returns a typed intent — a description of what it wants to happen, never the happening itself.
intent, reflection, context = Intellect(prompt, worldview, style, memory, tools)
This is the property that matters most, and the one most easily lost in an ordinary agent framework. When the model asks to call a tool, SAFi intercepts the request. The Intellect holds zero execution rights.
Above the gap — apprehension
The Intellect may propose: draft an answer, or ask that a tool be called with particular arguments.
Below the gap — authority
The Will decides whether the proposal may act, checking the agent's permissions and the arguments themselves. Only then does a tool run, and the result comes back for the Intellect to continue from.
type: "text"
A draft answer, with a short reflection on the reasoning behind it. Passed on to be judged.
type: "tool_call"
A named tool and its arguments — a request awaiting authorisation, not an action already taken.
nothing at all
The model could not be reached. SAFi reports the actual cause — bad key, rate limit, no such model — rather than a generic failure.
The Will appears five times, and the tool check only when a tool is proposed. Governing an agent that can act means authorising before the action, not only reviewing after it — so the Intellect is bracketed by judgment on both sides. Note that the Spirit computes but does not decide: the Will owns every approve and block in the loop.
The Intellect is the only faculty in SAFi permitted to be creative, and the only one given no power to act on it.