Documentation
Docs
Agent Development

The Agent Manifest

Defining your agents as declarative Kubernetes resources.

The Anatomy of an Agent

An Agent in Consonant is defined by a Custom Resource Definition (CRD). This file tells the Control Plane how to deploy, scale, and route traffic to your agent.

yaml
apiVersion: consonant/v1
kind: Agent
metadata:
  name: pdf-processor
  namespace: my-project
spec:
  # 1. Implementation
  image: my-registry/pdf-agent:v2.1
  command: ["python", "-m", "agent"]
  
  # 2. Resources (The "Independent Runtime" part)
  resources:
    requests:
      cpu: "1"
      memory: "2Gi"
    limits:
      cpu: "4"
      memory: "8Gi"

  # 3. Scaling Policy
  scaling:
    minReplicas: 0    # Scale to zero when idle!
    maxReplicas: 20
    targetConcurrency: 5

  # 4. Capabilities (For the Planner)
  capabilities:
    - name: extract_text_from_pdf
      description: "Extracts raw text from a PDF document URL"
      arguments:
        url: "The URL of the PDF"

Key Fields

image

The Docker image containing your agent code. This is completely standard—you can use any base image (Python, Node, Go, Rust).

resources

Standard Kubernetes resource requests/limits. This is where you solve the Cost Waste disaster. Give heavy agents GPUs and light agents millicores.

scaling

Consonant supports KEDA-style scaling out of the box.minReplicas: 0 allows for Serverless-style scale-to-zero to save money.

capabilities

This metadata is indexed by the Control Plane's semantic router. When a user goal says "Read this contract", the planner looks for agents with "read_pdf" or "extract_text" capabilities.