Skip to main content
An agent is a Docker image that responds to HTTP requests. You register one when you have a service that needs to run persistently behind a stable URL — a fraud detection service that scores transactions, a coding assistant that streams completions, a RAG pipeline that answers questions against your docs. If you only need one-off execution without a permanent endpoint, a sandbox is simpler. Registering an agent tells the platform “this image exists and is ready to be deployed.” Once registered, an agent can be deployed as an instance with a permanent endpoint. To run on the platform, your image must implement a small HTTP contract.

The agent contract

Your image serves these endpoints. The platform handles authentication in front of them — your application code never validates tokens. Your server listens on the port given by the AGENT_PORT environment variable (default 8080).
The platform injects AGENT_PORT at runtime. Read it from the environment rather than hardcoding 8080.

/stream and /invoke request shape

Both receive the caller’s JSON body (e.g., {"query": "..."}) and respond with the agent’s output — a stream of Server-Sent Events for /stream, or a single JSON response for /invoke.

Manifest (/.well-known/agent.json)

Returns a JSON document advertising the agent’s identity and capabilities for discovery and routing. Serve the capabilities you registered the agent with.

SDK methods

Register an agent

Registration parameters

string
required
Unique name for the agent. Used in the permanent endpoint URL.
string
required
Docker image reference (e.g., ghcr.io/your-org/agent:v1).
string[]
required
Labels describing what the agent can do. Used for discovery and routing.
object
Credentials for private registries. Contains registry, username, and password fields.

Registration response

string
Unique agent identifier. Used to deploy instances.
string
The registered agent name.
string
The Docker image reference.
string[]
Registered capabilities.
string
ISO 8601 creation timestamp.

Private registries

For images in a private registry, provide pull credentials at registration. Credentials are encrypted at rest and used only to pull the image.

List, search, update, and delete

Existing running instances are not affected. The updated image takes effect on the next deploy or redeploy.
No. Agent names are unique within your organization. Delete the existing agent first, or use update to change its image.
Use the REST API or CLI — see Instances. The SDK does not have a deploy method on client.compute.instance.

Limits & quotas

Numeric limits depend on your plan — see the Console.

Errors

Security

Common mistakes

  • Missing /health or the manifest. Without them, instances never pass health checks and stay in deploying.
  • Validating tokens in your code. The platform handles auth; don’t reimplement it.
  • Hardcoding the port. Read AGENT_PORT from the environment rather than assuming 8080.

Best practices

  • Tag images with explicit versions (:v1), not :latest.
  • Advertise accurate capabilities so discovery and routing work.
  • Keep /health cheap so health checks stay reliable.

Instances

Deploy a registered agent.

Skills

Reusable capabilities agents can run.

First Deployment

The full deploy walkthrough.

Agents (concept)

The agent model.

Next steps

Continue to Instances to deploy your agent.