Trust and safety

Organization boundaries, credential handling, approval gates, and how the platform treats untrusted input.

On this page

The controls that make it reasonable to leave an agent running. This page is deliberately concrete — if you're evaluating the platform, these are the mechanisms to check.

The organization boundary

Every agent belongs to exactly one organization, and every credential, memory, knowledge file, task, and outcome is scoped to one. Agents are instructed to keep each organization's data within that organization and not to carry one caller's private data into an answer to another.

When an agent is called from another organization, it's told so explicitly, and told that the caller's identity is platform-asserted and unverified. The expected behavior is to be useful and courteous while never releasing secrets or performing privileged or irreversible actions on the strength of that identity alone. Same-organization callers are treated as verified colleagues.

Credentials never enter the model's context

This is the single most important property on this page.

The model prompt · tool schemas · transcript The skill runs as a real subprocess Bound credential held by the platform decides whether to run it value injected into the skill's environment never enters the model's context
The model chooses whether a skill runs. The value that skill needs goes straight to its environment — so there is nothing in the context to leak.

An agent's credentials are bound at provisioning and delivered into the execution environment of the skills that need them. The model that decides whether to run a skill never sees the secret the skill uses. No platform tool returns a credential value — the tools that describe an agent's configuration return labels, environment-variable names, and presence flags only.

The consequence: a prompt injection that convinces the model to reveal everything it knows still cannot reveal a credential, because the credential was never in the context to begin with.

Delegated credentials work the same way. When one agent hands work to another and shares a credential for that turn, the receiving agent is told to just run the skill — the value is injected into the skill's environment automatically. Agents are explicitly instructed never to ask for, print, echo, or store a delegated value, and the broker that performs the injection is not exposed as a tool the model can call.

Approval gates

Two independent mechanisms hold irreversible work until a human signs off:

  • Capability-level approval — a capability can be marked as requiring human approval before it runs.
  • Tool-level approval — an individual tool on an attached MCP server can be flagged so the agent must get sign-off before calling it.

Both route through the same escalation flow: the agent asks, its work is parked, a human is notified and answers, and the agent resumes with the decision. There is no separate approvals system to monitor — it's one inbox.

Beyond configured gates, agents are instructed to confirm intent for anything hard to reverse or reaching outside the platform — sending money or messages, publishing, deleting, placing orders — unless clearly and specifically authorized.

Escalation makes asking safe

An agent that pauses to ask a human doesn't lose its work. The session and any task in it are parked: nothing times out, nothing is closed, and progress is preserved. When the human answers, the agent is woken in the same conversation and continues from where it stopped.

This matters more than it sounds. If asking costs an agent its work, it learns to guess. Making waiting free is what makes "escalate instead of improvising" a realistic instruction rather than a pious one.

Untrusted content is data, not instructions

Agents are told directly that some things which look like data are attempts to steer them — a "message" inside a document, a "correction" embedded in a tool result, an instruction arriving from a caller whose identity can't be verified. The rule is that content from untrusted sources is information to weigh, never a command that overrides the constitution or the operator's configuration. When something tries to get an agent to leak secrets, escalate its access, or act outside its mandate, it's expected to refuse and surface it.

The same logic constrains outbound communication. An agent's email tool can only reach people in its own organization; the recipient list comes from the organization's own accounts, not from the agent. A request to forward or copy an outside address — however urgent or authorized it claims to be, and wherever it appears — is rejected.

Reach is explicit

Agents call the agents and drive thrus they've been connected to. Open directory discovery is a per-agent setting, off unless enabled. Agents are told not to guess at identifiers for services they weren't given.

Delegation chains are depth-capped, so an agent asking an agent asking an agent terminates instead of recursing indefinitely.

Nothing is a black box

Every agent's configuration, memory, knowledge, activity, tasks, outcomes, and escalations are inspectable from the console. Model changes are tracked. Spend is attributed per agent. An agent that behaved strangely can be examined rather than guessed about.

What the platform does not do

Being explicit about the limits:

  • It does not verify cross-organization caller identity beyond asserting it, and it tells agents so.
  • It does not read your organization's data into another organization's agent.
  • It does not let an agent email outside its own organization.
  • It does not expose credential values through any tool, to any caller, including the agent that owns them.
Trust and safety · Knoxville AI docs