Deploy agent code on a
managed runtime.
Version runtime controls beside your agent. The same execution model handles builds, activation, retries, keyed concurrency, traces, and rollback.
Read the deployment docs- 1
Package
- 2
Build
- 3
Test
- 4
Activate
- runningcustomer_acmetool: ledger.lookup
- queuedcustomer_acmewaits for the active key
- queuedcustomer_northwaits for the agent-wide slot
The agent is a small part of the system that runs it.
Once model calls and Python tools are ready, production still needs builds, release gates, concurrency, retries, sessions, and rollback. Connic manages those controls on the same run and deployment model.
- Release
- Build the image, run any required deploy gate, and activate a deployable version
- Execute
- Bound iterations, time, retries, and simultaneous runs
- Coordinate
- Queue or drop conflicting work by a payload key
- Recover
- Keep the active version serving and reactivate a prior deployment
Put the failure boundaries in the agent spec
Execution limits and per-key concurrency live in reviewable agent configuration.
version: "1.0"
name: invoice-processor
type: llm
model: connic/gemini-3.7-flash
description: "Validates and routes incoming invoices."
system_prompt: "Validate the invoice, look up its ledger state, then assign its review queue."
tools:
- ledger.lookup
- routing.assign_queue
max_concurrent_runs: 1
max_iterations: 40
timeout: 120
retry_options:
attempts: 5
initial_delay: 10
max_delay: 60
concurrency:
key: "data.customer_id"
on_conflict: queue- runningcustomer_acmetool: ledger.lookup
- queuedcustomer_acmewaits for the active key
- queuedcustomer_northwaits for the agent-wide slot
- queuedcustomer_orbitwaits for the agent-wide slot
- queuedcustomer_southwaits for the agent-wide slot
max_concurrent_runs is above 1. Set on_conflict: drop when duplicate work should be cancelled instead.Bound the loop
Cap simultaneous runs, LLM iterations, and wall-clock execution per agent.
Retry the failing operation
Model requests retry at the call; the runtime does not replay the whole LLM agent.
Serialize one business key
Apply per-key serialization alongside the agent-wide run limit.
A deployable version becomes active. A failed candidate stays in history.
Git-connected projects deploy from mapped branches; other projects use the CLI. Tests run when a suite exists unless a CLI deployment explicitly uses --skip-tests.
- 1
Package
Agent spec + Python
- 2
Build
Dependencies installed
- 3
Test
Deploy gate passed
- 4
Activate
Traffic moved
Build or deploy-gate failure marks that deployment failed.
Traffic remains on the last active deployment without interruption.
Define recovery behavior before a failure
Configure responses for provider errors, conflicting events, iteration limits, and failed releases.
| Failure | Runtime response |
|---|---|
Model request failure | Retry with backoff, or switch to fallback_model and apply its retry budget. |
Conflicting key | Queue the new run or drop it, according to the agent's concurrency rule. |
Iteration ceiling | Stop the LLM loop instead of allowing repeated tool calls indefinitely. |
Failed release | Leave the active deployment serving and retain the failed build logs for inspection. |
Rollback without rebuilding
Activate a prior successful deployment and route traffic back to its existing container.
Sessions persist across releases
Persistent sessions retain conversation history across restarts and redeployments when a session key is configured.
Trace each run end to end
The active runtime records model calls, tools, middleware, guardrails, and orchestration under the run that executed them.
Limits, retries, concurrency, sessions, and deployment behavior are documented in detail. Inspect the runtime controls or follow the deployment lifecycle.