Config, Telemetry & Artifacts
Three small operational blocks round out a manifest without describing what the agent does: free-form runtime config, observability via telemetry, and the artifacts on/off switch. This agent turns on all three.
yaml
apiVersion: adl.inference-gateway.com/v1
kind: Agent
metadata:
name: search-agent
description: Catalogue search agent with runtime config and observability on
version: "1.2.0"
tags:
- search
spec:
capabilities:
streaming: true
pushNotifications: false
stateTransitionHistory: false
agent:
provider: openai
model: gpt-4.1-mini
systemPrompt: |
You answer questions by searching the product catalogue. Honour the
cache and ranking settings provided in your runtime configuration.
config:
cache:
ttlSeconds: 300
maxEntries: 1000
featureFlags:
experimentalRanking: true
semanticSearch: false
search:
provider: ${SEARCH_PROVIDER}
endpoint: ${SEARCH_ENDPOINT}
server:
port: 8080
language:
go:
module: github.com/example/search-agent
version: "1.26"
telemetry:
enabled: true
traces:
exporter:
otlp:
endpoint: http://localhost:4318
protocol: http/protobuf
metrics:
exporter:
prometheus:
host: ""
port: 9464
artifacts:
enabled: trueHighlights
configis grouped one level deep. Every top-level key (cache,featureFlags,search) must itself be an object; inside that object, any JSON value goes: strings, numbers, booleans, nested objects. The generator passes the whole tree straight through to the agent's runtime config layer without interpreting it. Seespec.config.- Secrets stay placeholders.
configaccepts any value, which makes it a tempting place to paste an API key - don't. Reference secrets with${VAR}placeholders (${SEARCH_PROVIDER},${SEARCH_ENDPOINT}) and let the consumer resolve them at runtime; the schema treats the placeholder as an opaque string. See Secrets & interpolation. telemetrystarts with one switch, then opts into exporters.enabled: truemaps toA2A_TELEMETRY_ENABLE=trueand turns on the ADK telemetry server. The optionaltraces/metricsblocks select a per-signal exporter - the single key underexporterpicks it (otlpto push,prometheusto pull) - and every field maps 1:1 to a standardOTEL_*env var the consumer emits as an.env.exampledefault. Headers, credentials, and sampling stay runtime-only. Seespec.telemetry.artifactsis the same shape. Liketelemetry, it exposes only anenabledboolean;truetells the generator to emit CI/CD wiring that produces build artifacts (container images, archives) - the consumer's pipeline decides what an artifact looks like. Both blocks default to off, so omit them entirely if you don't need them. Seespec.artifacts.