Resources

Secret handling

Where a secret variable's value is stored, who can read it, and how the Builder Chat collects one without it passing through the model.

A secret variable goes in and is never readable again by anyone except the call-time runtime.

Authorization: Bearer {{calendar_api_key}}

Where the value lives

The value is stored encrypted in a dedicated secrets vault. The platform keeps only a reference to the encrypted entry -- the value itself is never stored alongside your agent's settings.

At call time the runtime decrypts the value server-side, purely to fill in {{token}} references in your tools. Nothing in the browser ever sees the decrypted bytes.

Rotating a secret

The editor is write-only: it shows that a secret exists but never re-displays the value. When you edit, the value field starts empty. Type a new value to rotate it, or leave it blank to keep the current value. Saving blank is a no-op, not an erase.

Why the model never sees one

Secrets are decrypted only to fill a tool's URL or headers, which the model does not author. The model writes the request body, but the substituted secret lives in the URL and headers, out of its reach.

Secrets never reach the model

A secret cannot be leaked through a transcript, an answer to the caller, or the Builder Chat.

The Builder Chat secret dialog

When the Builder Chat wires a tool that needs authentication, it calls for a secret variable and the editor opens a passive password dialog. You type the value there and it goes straight from your browser to the vault. The model never sees it.

Never paste a credential into the chat

If you paste a credential into the conversation, the model sees it before any tool runs. Some pastes are refused and you are pointed back at the dialog, but that check recognises a credential by its shape -- and not every credential has a recognisable one.

The dialog is the only path that keeps the value out of the model. Rotate anything you have already pasted.

On this page