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.
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.