Skip to content

Customizing traces and spans: Ability to add metadata to spans #1844

@dhruvrnaik

Description

@dhruvrnaik

It would be great if we could customize span_data for any given span.

The metadata field only works for the top level trace, but child spans like response_span do not have any existing metadata (nor the ability to add such metadata) such as current_turn, agent_name etc that is useful for querying data.

I think a simple solution for now could be to use the AgentHooks to manipulate the current_span and add any metadata you like.

def on_llm_start(..., agent: str, ...):
    current_span = get_current_span() # response span
    current_span.span_data["custom_metadata"] = agent.name

To do this, all spans would need to start before the _start hooks are called and finish after the _end hooks are called.
This is not standardized currently. Agent span follows this pattern, while response span starts after the on_llm_start hook and ends before the on_llm_end hook, making it difficult to manipulate the span data.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions