Skip to content

Deploying Agents

Once you have created an agent, written its instructions, selected a model, configured memory, and assigned skills, the next step is deployment. Deployment makes the agent available for conversations.

Every agent deployment is in exactly one of five states. These are the values the platform actually stores, so they are what you will see in the UI and in the API:

State Description
configuring The agent is being set up. It is not available for conversations.
active The agent is live and accepting conversations from users and integrations.
paused The agent is temporarily suspended. Existing conversations are frozen; new conversations are rejected. Reversible — resuming returns it to active.
error The agent has failed and is not serving conversations. See When an agent is in error below.
removed The agent is permanently deactivated and cannot be reactivated. Conversation history is retained per your retention policy.

error means the deployment itself has failed, not that a single conversation went wrong. An agent in this state is not serving traffic and will not recover on its own.

The usual causes are the same ones that block activation, arriving later:

  • A connection the agent depends on has stopped working — an OAuth token was revoked or expired, or the account was disconnected. This is the most common cause, because a connection that was healthy at activation can lapse at any time afterwards.
  • A skill the agent references is no longer available to the organisation.
  • Repeated run failures against the execution engine.

To recover: open the agent, resolve the underlying cause (reconnect the service, restore the skill), then reactivate. If the agent returns to error immediately, the cause has not actually been cleared — reactivating again will not help.

  1. Open the agent from the Apps section in the left sidebar.
  2. Verify that all required configuration is complete:
    • Instructions are written.
    • At least one skill is assigned.
    • The agent is assigned to a department.
  3. Click Activate in the top-right corner of the agent page.
  4. Confirm the activation in the dialog. The agent’s state changes from configuring to active.

Horizon provides a built-in testing environment so you can validate agent behavior before exposing it to your team.

The Test Console is available for agents in any state (including Draft). Open it by clicking the Test button on the agent page.

  • Send messages as if you were a user.
  • See which skills the agent invokes and what parameters it sends.
  • Inspect raw skill responses before the agent formats them.
  • Test edge cases: malformed inputs, missing data, ambiguous requests.

The Test Console does not count against your department’s conversation limits, but it does consume tokens.

Once the agent is active and handling real conversations, monitor its performance from several vantage points:

Navigate to Conversations in the left sidebar to see all agent conversations. Each log entry shows:

  • The user who initiated the conversation.
  • Timestamps for each message.
  • Skills invoked, including parameters and responses.
  • Token consumption for the conversation.
  • Any errors or retries.

The agent’s Metrics tab provides aggregate statistics:

  • Conversations per day — volume trends over time.
  • Average turns per conversation — indicates how many back-and-forth exchanges users need.
  • Skill success rate — percentage of skill invocations that succeeded without errors.
  • Average response time — how quickly the agent replies (includes model inference and skill execution).
  • Token usage — daily and cumulative token consumption.

Configure alerts on the agent’s Settings tab to be notified when:

  • The error rate exceeds a threshold.
  • Token usage approaches a budget limit.
  • A skill fails repeatedly.
  • Response time degrades beyond a threshold.

Alerts can be sent via email, Slack, or webhook.

If you need to temporarily take an agent offline — for maintenance, instruction updates, or issue investigation — use Pause rather than archiving:

  • Click Pause on the agent page.
  • Active conversations are frozen. Users see a message indicating the agent is temporarily unavailable.
  • Make your changes (update instructions, fix skill configuration, etc.).
  • Click Resume to bring the agent back online. Frozen conversations continue from where they left off.

Archive an agent when it is permanently retired. Archiving:

  • Stops all conversations.
  • Retains conversation history and memory per your retention policy.
  • Frees the agent name for reuse.
  • Cannot be undone — create a new agent if you need the functionality again.

Before activating any agent for production use, walk through this checklist:

  • Instructions cover persona, scope, constraints, and examples.
  • The correct model tier is selected for the agent’s complexity level.
  • All assigned skills have active connections.
  • Memory retention settings comply with your organization’s data policies.
  • The agent has been tested in the Test Console with representative queries.
  • Write operations have been validated in Dry Run Mode.
  • Alerts are configured for error rate and token budget thresholds.
  • The agent is assigned to the correct department with appropriate access controls.