Skip to content

Generate Provider Generate Hooks/Callbacks for Tracing / Observability #264

@skovy

Description

@skovy

I would like to implement tracing for an agent and am attempting to adhere to this OpenInference spec: https://github.com/Arize-ai/openinference/blob/main/spec/README.md

My assumption is that callbacks are the right way to do this: https://docs.activeagents.ai/docs/active-agent/callbacks

The around_generation and around_action provide these hooks/callbacks to trace the overall generation (agent) and individual actions (tool), but I cannot figure out a way to trace each individual LLM call.

I have a hunch this is covered in v1 #259 but I did a skim and haven't been able to objectively confirm.

For example:

  • Say I have a simple agent with instructions + 1 tool
  • I invoke prompt = Agent.with(message:).prompt_context
  • Then, response = prompt.generate_now

Under the hood, my understanding is:

  • LLM call (eg: OpenAI generation provider generate call)
  • Assistant response to call tool
  • 2nd LLM call with previous messages + tool call response

With the around_generation and around_action callbacks I can trace all 3 steps (entire generation) and the single tool call (middle point), but I cannot individual trace the first and third steps (1st LLM call & 2nd LLM call).

Am I missing an obvious way to already do this? Or, would adding callbacks to the generate providers generate calls make sense and unlock this? For example, I think I'm looking for around_generate (not to be confused with around_generation)?

My desired outcome trace:

  • Agent generation trace
    • LLM call span (missing)
    • Tool call span
    • LLM call span (missing)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    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