Skip to content

agent.yaml Schema

Every Selu agent is defined by an agent.yaml file at the root of the agent’s project directory. This file tells the orchestrator how to run the agent, which model to use, and what capabilities it has access to.

FieldTypeRequiredDescription
apiVersionstringYesSchema version. Currently selu.io/v1.
kindstringYesMust be Agent.
metadata.namestringYesUnique identifier for the agent. Lowercase, alphanumeric, hyphens allowed.
metadata.versionstringYesSemVer version string (e.g. 1.0.0).
metadata.descriptionstringNoShort human-readable description shown in the marketplace.
metadata.authorstringNoAuthor name or organization.
metadata.licensestringNoSPDX license identifier (e.g. MIT, Apache-2.0).
spec.model.providerstringYesLLM provider: openai, anthropic, bedrock, or ollama.
spec.model.namestringYesModel identifier (e.g. gpt-4o, claude-sonnet-4-20250514).
spec.model.temperaturefloatNoSampling temperature. Default 0.7.
spec.model.maxTokensintNoMaximum tokens per response. Default 4096.
spec.systemPromptstringYesThe system prompt that defines the agent’s personality and instructions.
spec.capabilitieslistNoList of capability references the agent may invoke.
spec.capabilities[].namestringYesCapability name as declared in the capability’s manifest.yaml.
spec.capabilities[].versionstringNoVersion constraint (e.g. ^1.0.0). Defaults to latest.
spec.capabilities[].configmapNoKey-value config passed to the capability at runtime.
spec.runtime.imagestringNoCustom Docker image. Defaults to the official Selu agent runtime.
spec.runtime.resources.cpustringNoCPU limit (e.g. 500m). Default 250m.
spec.runtime.resources.memorystringNoMemory limit (e.g. 512Mi). Default 256Mi.
spec.channelslistNoChannels the agent listens on. Values: web, imessage, telegram.
agent.yaml
apiVersion: selu.io/v1
kind: Agent
metadata:
name: research-assistant
version: "1.2.0"
description: An agent that searches the web and summarizes findings.
author: selu-community
license: MIT
spec:
model:
provider: anthropic
name: claude-sonnet-4-20250514
temperature: 0.5
maxTokens: 8192
systemPrompt: |
You are a research assistant. When the user asks a question,
search the web for relevant sources, summarize your findings,
and cite your sources with URLs.
capabilities:
- name: web-search
version: "^2.0.0"
- name: file-writer
config:
outputDir: /data/reports
runtime:
image: ghcr.io/selu-platform/agent-runtime:latest
resources:
cpu: "500m"
memory: "512Mi"
channels:
- web
- telegram

Run selu agent validate from the directory containing your agent.yaml to check for schema errors before publishing. The CLI validates required fields, version format, and capability references against the local registry.

  • The metadata.name field must be unique within your Selu instance. If you publish to the marketplace, it must be globally unique.
  • Capability version constraints follow the same semantics as npm SemVer ranges.
  • Resource limits are enforced by Docker. If an agent exceeds its memory limit, the container is restarted automatically.