Get Observability Logs
Per-job log lines for one agent or KB.
Replaces the namespace-scoped kubectl tail with a per-job_name
ClickHouse query. agent_id resolves to the prefix
agent_<id>_ or kb_<id>_ via the doc’s job_type; the
prefix LIKE catches every redeploy version of the entity so log
history survives re-deploys.
Returns 404 when the id doesn’t belong to this tenant + service (or
the doc’s job_type isn’t agent / KB). Returns 503 with a
structured kind when the flink_logs table is missing or
a column has drifted.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Agent or knowledge base id (Mongo ObjectId)
Time range start (ISO 8601)
Time range end (ISO 8601)
Floor level — DEBUG | INFO | WARN | ERROR (used when levels is absent)
Explicit comma-separated level set (e.g. 'WARN,ERROR'). Overrides the level floor when present.
Substring filter on the log column
Max lines per call
1 <= x <= 2000Live-tail cursor — only rows newer than this ISO 8601 ts
Response
Successful Response
/agentic/observability/logs response envelope.
scope always "agent" on this endpoint — per-job filtering
is real (the job_id prefix LIKE catches only this entity's
history). The kubectl-tail path's "namespace" value disappears
here. job_id_prefix is echoed back so the FE can render
"N versions" hints when a redeployed agent's history is mixed in.