Skip to navigation

Deploy your first agent

Run a blueprint as a live hosted agent
View as Markdown

Deploying takes a blueprint from the registry and runs it as a live agent on Astropods. The agent gets a web endpoint and optional integrations (Slack, etc.) based on the adapter you choose.

Requires a blueprint in your account. See Your first blueprint to push one.

1

Deploy a blueprint

ast blueprint deploy <name>

<name> is the blueprint name (as shown in ast blueprint list). By default the agent is accessible through a web interface with authentication enabled.

Give the deployment a custom display name:

ast blueprint deploy my-agent --name "My Production Agent"
2

Supply required variables

Most agents require API keys or credentials at deploy time. Pass them inline:

ast blueprint deploy my-agent --var ANTHROPIC_API_KEY=@ANTHROPIC_API_KEY

The @SECRET_NAME syntax references a value from your account vault. You can also pass a literal value:

ast blueprint deploy my-agent --var REGION=us-east-1

Or load from a file:

ast blueprint deploy my-agent --vars-file .env.prod

Use --dry-run to validate inputs without deploying:

ast blueprint deploy my-agent --var ANTHROPIC_API_KEY=@ANTHROPIC_API_KEY --dry-run
3

View your deployed agents

ast agent list

Shows all agents in the active account with their status and deployment ID. When the deployment finishes, your agent’s status shows running. Open its web endpoint in a browser to confirm it responds.


Adapters

An adapter controls how your agent is exposed to the world. Each adapter adds an interface (a web endpoint, a Slack bot, or both). You choose adapters at deploy time with --adapter; the default is web with authentication.

AdapterDescription
webWeb interface with OIDC authentication (default)
insecure-webWeb interface with no authentication; use only in trusted environments
slackSlack bot integration

web and insecure-web are mutually exclusive. slack can be combined with either.

insecure-web disables authentication, so anyone with the endpoint URL can access your agent. Use it only in trusted environments.

Configuring Slack

The slack adapter connects your agent to a Slack workspace as a bot. Users message the bot directly or mention it in a channel, and Astropods routes each message to your agent over the Messaging SDK. Watch the walkthrough below for setting up the Slack app and connecting it to a deployment.

Watch on Loom.

A Slack deployment takes three variables:

VariableDescription
SLACK_BOT_TOKENThe bot token (xoxb-…). Required.
SLACK_APP_TOKENThe app-level token (xapp-…) for Socket Mode. Required.
SLACK_CONFIGOptional bot behavior, as a JSON object.

SLACK_CONFIG accepts these fields:

FieldDescription
allowed_channel_idsChannel IDs the bot responds in. When omitted, the bot responds everywhere it is added.
observe_channel_idsChannel IDs where every top-level message reaches your agent, not only mentions.
actionable_reactionsEmoji names, without colons, that send a reaction to your agent. When omitted, no reactions are sent.

On the deploy form, each field has its own input under Slack Configuration, and lists are comma-separated. From the CLI, pass the whole object as one JSON value:

ast blueprint deploy my-agent --adapter slack \
--var SLACK_BOT_TOKEN=@SLACK_BOT_TOKEN \
--var SLACK_APP_TOKEN=@SLACK_APP_TOKEN \
--var 'SLACK_CONFIG={"allowed_channel_ids":["C0123ABCDEF"]}'

Each SLACK_CONFIG value replaces the previous one, so a redeploy that sets it must include every field you want to keep. The value must be valid JSON. The deploy does not check it, and a malformed value stops both Slack and web chat from starting for that agent.

Restrict the bot to channels

Once allowed_channel_ids is set, the bot replies to a mention or thread reply in any other channel with a notice that the app is not enabled there, and your agent never receives it.

The channel list controls where the bot listens. Who can use the agent is a separate setting: interface access.

To find a channel ID in Slack, open the channel details. The ID is at the bottom of the About tab.

Frontend agents

Agents that declare agent.interfaces.frontend: true in their spec serve their own web UI. Deploy them the same way:

ast blueprint deploy my-frontend-agent

The deployed agent receives a dedicated hostname and is immediately accessible in a browser. Its Launch button in the dashboard opens that hostname in a new tab. For a messaging agent, Launch opens the built-in chat instead. The --adapter flag has no effect for frontend agents. See Serve a frontend from your agent.


Next steps