mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-12 03:48:56 +00:00
* 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
437 lines
9.2 KiB
JSON
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"
|
|
}
|