litellm/scripts/trace_codegen/schemas/traces/Trace.json
ishaan-berri b85756104f
feat(lens): show agent, user and slack thread first in the run header (#45261)
* feat(lens): add who started the run to RunSource

* feat(lens): carry agent.source.user on trace span rows

* feat(lens): resolve the run source user from the span row

* feat(lens): read agent.source.user in trace_spans query

* feat(lens): read agent.source.user in trace_page_spans query

* feat(lens): read agent.source.user in trace_span_batch query

* feat(lens): read agent.source.user in trace_list_span_batch query

* feat(lens): decode the source user from clickhouse span rows

* test(lens): add source user to trace cache test rows

* test(lens): add source user to trace cache read fixtures

* test(lens): add source user to trace cache snapshot fixtures

* test(lens): add source user to capture fixture rows

* test(lens): round-trip source user on span row contract

* test(lens): cover run source user resolution

* chore(lens): regenerate python trace types with source user

* chore(lens): regenerate trace json schema with source user

* chore(lens): regenerate trace page json schema with source user

* chore(ui): add source user to api types

* feat(lens): add run user chip and slack thread chip

* feat(lens): put agent, user and thread on the first row of the run header

* test(lens): cover the run header identity row and compact totals

* feat(lens): start demo runs from a slack thread
2026-10-07 20:01:55 -07:00

437 lines
9.2 KiB
JSON

{
"$defs": {
"AgentNode": {
"description": "One distinct agent in a trace: 200 invocations of `researcher` are one node.",
"properties": {
"duration_ms": {
"format": "double",
"type": "number"
},
"invocations": {
"format": "uint64",
"maximum": 18446744073709551615,
"minimum": 0,
"type": "integer"
},
"llm_calls": {
"format": "uint64",
"maximum": 18446744073709551615,
"minimum": 0,
"type": "integer"
},
"name": {
"type": "string"
},
"parent_agent": {
"type": [
"string",
"null"
]
},
"priced_calls": {
"format": "uint64",
"maximum": 18446744073709551615,
"minimum": 0,
"type": "integer"
},
"spend": {
"format": "double",
"type": [
"number",
"null"
]
},
"tool_calls": {
"format": "uint64",
"maximum": 18446744073709551615,
"minimum": 0,
"type": "integer"
}
},
"required": [
"name",
"parent_agent",
"invocations",
"llm_calls",
"tool_calls",
"duration_ms",
"spend",
"priced_calls"
],
"type": "object"
},
"RunSource": {
"description": "The conversation that started the run, from the `agent.source.*` span attributes.",
"properties": {
"title": {
"type": "string"
},
"type": {
"$ref": "#/$defs/RunSourceType"
},
"url": {
"type": "string"
},
"user": {
"description": "Who started the conversation, e.g. the Slack user's email.",
"type": "string",
"x-python-optional": true
}
},
"required": [
"type",
"url",
"title"
],
"type": "object"
},
"RunSourceType": {
"enum": [
"slack",
"teams",
"discord",
"linear",
"github",
"jira",
"custom"
],
"type": "string"
},
"Span": {
"properties": {
"agent": {
"type": "string"
},
"duration_ms": {
"format": "double",
"type": "number"
},
"error": {
"type": [
"string",
"null"
]
},
"error_truncated": {
"type": "boolean"
},
"framework": {
"type": "string"
},
"input_preview": {
"type": "string"
},
"input_tokens": {
"format": "uint32",
"maximum": 4294967295,
"minimum": 0,
"type": "integer"
},
"litellm_request_id": {
"type": [
"string",
"null"
]
},
"model": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"output_tokens": {
"format": "uint32",
"maximum": 4294967295,
"minimum": 0,
"type": "integer"
},
"parent_span_id": {
"type": [
"string",
"null"
]
},
"span_id": {
"type": "string"
},
"spend": {
"format": "double",
"type": [
"number",
"null"
]
},
"spend_log_request_id": {
"type": [
"string",
"null"
]
},
"spend_match": {
"anyOf": [
{
"$ref": "#/$defs/SpendMatch"
},
{
"type": "null"
}
]
},
"start_offset_ms": {
"format": "double",
"type": "number"
},
"status": {
"$ref": "#/$defs/SpanStatus"
},
"type": {
"$ref": "#/$defs/SpanType"
}
},
"required": [
"span_id",
"parent_span_id",
"name",
"type",
"agent",
"framework",
"start_offset_ms",
"duration_ms",
"status",
"error",
"error_truncated",
"input_preview",
"model",
"input_tokens",
"output_tokens",
"litellm_request_id",
"spend",
"spend_log_request_id",
"spend_match"
],
"type": "object"
},
"SpanStatus": {
"enum": [
"ok",
"error",
"unset"
],
"type": "string"
},
"SpanType": {
"enum": [
"agent",
"llm",
"tool",
"chain",
"framework",
"retriever",
"embedding",
"reranker",
"guardrail",
"evaluator",
"prompt",
"decision"
],
"type": "string"
},
"SpendMatch": {
"enum": [
"matched",
"no_call_id",
"no_spend_log",
"ambiguous",
"incomplete_evidence"
],
"type": "string"
},
"TraceSummary": {
"properties": {
"agent_count": {
"format": "uint64",
"maximum": 18446744073709551615,
"minimum": 0,
"type": "integer"
},
"agent_invocations": {
"format": "uint64",
"maximum": 18446744073709551615,
"minimum": 0,
"type": "integer"
},
"agent_names": {
"items": {
"type": "string"
},
"type": "array",
"x-python-optional": true
},
"duration_ms": {
"format": "double",
"type": "number"
},
"error_count": {
"format": "uint64",
"maximum": 18446744073709551615,
"minimum": 0,
"type": "integer"
},
"frameworks": {
"items": {
"type": "string"
},
"type": "array",
"x-python-optional": true
},
"input_preview": {
"type": "string"
},
"input_tokens": {
"format": "uint64",
"maximum": 18446744073709551615,
"minimum": 0,
"type": "integer"
},
"llm_calls": {
"format": "uint64",
"maximum": 18446744073709551615,
"minimum": 0,
"type": "integer"
},
"models": {
"items": {
"type": "string"
},
"type": "array"
},
"name": {
"type": "string"
},
"output_tokens": {
"format": "uint64",
"maximum": 18446744073709551615,
"minimum": 0,
"type": "integer"
},
"priced_calls": {
"format": "uint64",
"maximum": 18446744073709551615,
"minimum": 0,
"type": "integer"
},
"resolution_limited": {
"type": "boolean",
"x-python-optional": true
},
"service": {
"type": "string"
},
"source": {
"anyOf": [
{
"$ref": "#/$defs/RunSource"
},
{
"type": "null"
}
],
"x-python-optional": true
},
"span_count": {
"format": "uint64",
"maximum": 18446744073709551615,
"minimum": 0,
"type": "integer"
},
"spend": {
"format": "double",
"type": [
"number",
"null"
]
},
"start_time": {
"type": "string"
},
"status": {
"$ref": "#/$defs/SpanStatus"
},
"tool_calls": {
"format": "uint64",
"maximum": 18446744073709551615,
"minimum": 0,
"type": "integer"
},
"trace_id": {
"type": "string"
},
"trace_ref": {
"type": "string",
"x-python-optional": true
}
},
"required": [
"resolution_limited",
"trace_id",
"trace_ref",
"name",
"service",
"agent_names",
"frameworks",
"input_preview",
"start_time",
"duration_ms",
"status",
"span_count",
"agent_count",
"agent_invocations",
"llm_calls",
"tool_calls",
"error_count",
"input_tokens",
"output_tokens",
"models",
"spend",
"priced_calls"
],
"type": "object"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"agents": {
"items": {
"$ref": "#/$defs/AgentNode"
},
"type": "array"
},
"next_cursor": {
"type": [
"string",
"null"
],
"x-python-optional": true
},
"spans": {
"items": {
"$ref": "#/$defs/Span"
},
"type": "array"
},
"summary": {
"$ref": "#/$defs/TraceSummary"
}
},
"required": [
"summary",
"agents",
"spans",
"next_cursor"
],
"title": "Trace",
"type": "object"
}