The trust levels
Studio has three trust levels. They are the primary lever you have over agent behavior.
The trust level applies to the conversation, not to the tool. A read-only call in Manual still asks for approval; a destructive call in Autonomous still pauses if the policy classifies it as Dangerous. The trust level moves the threshold; the classifier moves the floor.
Tool classification
Every tool that Copilot can call is classified before it runs. The class determines whether the trust level alone is enough to authorize the call.
The classifier is part of the tool registry. Each tool’s domain (terminal, connector, MCP, diagram, search, network discovery, packet capture, etc.) declares which subset of its operations require approval. New connector and MCP tools default to Unknown until the org admin explicitly classifies them.
The approval gate
When a tool call requires approval, Copilot pauses and renders a card the operator can read. The card includes:- The tool name and the domain it belongs to — so you know whether it’s a terminal command, a connector call, a write to your inventory, or a destructive operation on a device.
- The exact arguments — including the destination (host, connector endpoint, file path), the payload (command text, request body), and any parameters the model is filling in.
- The risk class — Read-only / Moderate / Dangerous / Unknown.
- The credential reference that would be used, if any — by name only, never the secret.
- A diff or preview for staged commands, so you can see the change in human-readable form before approving.
- Approve, reject, or modify as actions. Modify lets you edit the arguments before approving.
Streaming and steering
While Copilot is running, you watch progress in real time. The right-side panel shows:- The current model thinking state (when extended thinking is enabled).
- Each tool call as it streams (name, arguments, partial output as the call returns).
- Token and turn usage against the run’s budget.
- The classification and approval state of any pending tool.
- Sub-agent activity when a delegated agent is running.
Steering is a first-class feature. It exists because no one writes a perfect first prompt, and because plans drift. You should use it freely. The transcript will show what the agent did and what you said in response — that’s the record, and it’s complete.
Sub-agents inherit the gate
Copilot can delegate to specialist sub-agents — researcher, executor, terminal-ops, browser-ops, network discovery, procedure authoring. A sub-agent runs in the same conversation, with the same trust level, and the same approval policy. A delegation cannot escalate beyond what the parent’s posture allows. This matters because it would be easy to design an architecture where a sub-agent gets its own scope, and a Read-only researcher could quietly call a Dangerous executor without the parent’s gate. Studio’s design is the opposite: the gate sits at the agentic loop, every tool call from any agent goes through it, no exceptions.Just-in-time credentials
When a tool call requires a credential — to authenticate to an SSH host, to call a connector — the credential is requested through the vault, not through the LLM. The flow is:1
Tool indicates a credential reference
The tool’s argument schema includes a
credentialRef (a Keychain entry ID), not the secret itself.2
Approval card shows the reference
The operator sees “will authenticate to
core-router-1 using Keychain entry core-fleet-admin” — by name, never by secret.3
On approval, the vault unwraps
The Go sidecar requests the credential from the vault, unwraps the per-record envelope, and uses the secret in the protocol library.
4
Plaintext stays in sidecar memory
The plaintext credential never crosses back into the Electron renderer process or the LLM context. It is used by the Go sidecar at the moment of authentication and discarded.
{{password}} into a prompt that goes to the model, that plaintext does enter the model context. This is documented under known limits and the AI-context scrubbing roadmap.
Pre- and post-tool hooks
Studio supports hooks that run before and after every tool call. Hooks are an extensibility point, not a default behavior, and they exist for organizations that want to:- Log every tool call to a SIEM.
- Block specific tool argument patterns regardless of class.
- Reject calls that target hosts outside an allowlist.
- Re-classify a tool dynamically based on the argument (for example, treating
interface gigabitethernet0/0/0as Dangerous on the management interface).
Choosing the right posture
A practical mapping for the kinds of work Studio gets used for:
The shape that emerges: the threshold for Autopilot is “I know what’s allowed and what target it’s allowed against.” Not “I trust the agent.”
What this is not
The HITL surface is not a substitute for any of the following:- A change-management process. Approval at the agent gate is not approval at the CAB.
- A separation-of-duties review. One person approving their own approvals is one person doing both.
- An audit log. The gate produces evidence; the audit page describes what’s recorded.
- A guarantee that the agent does not surprise you. The gate makes surprises observable, not impossible.
Related
AI provider and data flow
What happens to the data the gate is approving — where it goes for inference and what comes back.
Audit and telemetry
What’s recorded about every approval, every tool call, and every steering interruption.