AI Objectives
Declared "keep this true" goals for your account. You state an objective — for example, keep p95 latency under 300 ms on an endpoint, or keep the error rate under 1% — and a reconciler evaluates it on a rolling window. When an objective is breached it either records the breach (observe), raises an Iris nudge that pre-seeds the assistant to diagnose and fix it (nudge), or — once autonomy is enabled for an actionable type — applies a dry-run-clean fix automatically (auto). Recovered objectives clear themselves.
Objectives are distinct from SLO targets (which drive the SLI display): objectives are multi-type, can be scoped to a single endpoint, and are actionable.
Account scope + permissions: objectives belong to your active account and require the traffic-inspector permission (read to list, write to change). Endpoint-scoped latency/error objectives need traffic capture enabled on that endpoint, otherwise they read back as insufficient data and never false-breach.
Objective types
auto not allowed.List Objectives
Returns the account's declared objectives under an objectives array.
Create an Objective
Declares a new objective. The tuple (type, scope, endpoint) is unique per account — a duplicate returns 409.
Request body
account (default) or endpoint.scope=endpoint.lt | lte | gt | gte (e.g. keep latency lt 300).300 (ms), 1.0 (%), 7 (days).ms | pct | days | score.3600.50.observe | nudge | auto. auto is rejected for diagnose-only types and requires the ai_autonomy entitlement.Update / Delete an Objective
PUT tunes an objective's parameters (its type, scope and endpoint are immutable — they form the unique target). DELETE removes it. Both return 404 for an unknown UUID.
Errors
auto on a diagnose-only type, or a missing endpoint_id for an endpoint scope.auto without the ai_autonomy entitlement.404 unknown objective (PUT/DELETE); 409 an objective already exists for that (type, scope, endpoint).