Secrets
An ACT automation that talks to another service needs its key. A Slack address, a Stripe API key, a password. AgentOS keeps those keys as secrets: stored by name, encrypted, and handed to the code only while it runs. They never appear in the chat or in the code.

How do I add a secret?
When an automation needs a key, the agent sends you a one-time link.
- Open the link. Save secret opens with the Name set, such as
STRIPE_API_KEY. - Paste the key into Value and click Save. The page says Done.
- Tell the agent the secret is saved. It carries on building.
The value goes straight to your system. The agent never sees it, and it is not shown again in the app or the chat.
You can start it yourself too: "I have a Stripe API key. Send me a link to store it as a secret."
What if the link no longer works?
The link works once, for 10 minutes. After that, the page says The link is no longer valid. Ask the agent for a new one: "Send me a new link for STRIPE_API_KEY."
Who can use a secret?
A secret belongs to whoever asked for the link: the agent, or you when you build from your own AI tool through Connect AI (MCP). Every ACT automation they build can use it by name. A second automation that needs the same key uses it without asking again.
Each automation gets only the secrets it names, nothing else.
How do I see, replace or delete secrets?
Ask the agent that uses them, in Chat:
| To | Ask |
|---|---|
| List them | "Which secrets do you have?" The agent lists their names, never their values. |
| Replace a key | "Our Stripe key changed. Replace STRIPE_API_KEY." The agent deletes the old secret and sends you a link for the new value under the same name. |
| Delete one | "Delete the secret STRIPE_API_KEY." If an automation still uses it, the agent names it and asks before it deletes. A deleted secret cannot be restored. |
How does automation code read a secret?
For developers. At run time the code gets a connections dictionary with the secrets it names:
def main(input):
slack_url = connections["SLACK_WEBHOOK_URL"]
...
connections holds secrets only. The data the run works with comes in input. Each run happens
in its own isolated environment, which is gone when the run ends.
Next: Runs, or Triggers and webhooks.