Skip to content

spec

spec is where the agent is actually defined. It carries three required blocks and a long list of optional ones.

Required

FieldReference
capabilitiescapabilities
serverserver
languagelanguage

Optional

FieldReference
cardcard
agentagent - provider, model, prompt
configconfig
servicesservices
acronymsacronyms
toolstools
skillsskills
artifactsartifacts
hookshooks
scmscm
developmentdevelopment
deploymentdeployment

Minimal valid spec

The three required blocks together are enough to pass validation:

yaml
spec:
  capabilities:
    streaming: true
    pushNotifications: false
    stateTransitionHistory: false
  server:
    port: 8080
  language:
    go:
      module: github.com/example/agent
      version: "1.26"

Everything beyond that is opt-in - pull in only what your agent actually uses. The schema doesn't penalise you for omitting capabilities you don't need; it penalises ambiguity.