Skip to content

fix(agno): preserve session ids across resumed runs - #792

Merged
Abhijeet Prasad (AbhiPrasad) merged 2 commits into
mainfrom
fix/agno-session-id-and-resume-tracing
Sep 22, 2026
Merged

Abhijeet Prasad (AbhiPrasad) merged 2 commits into
mainfrom
fix/agno-session-id-and-resume-tracing

Conversation

@AbhiPrasad

Copy link
Copy Markdown
Member

AI Summary

When an Agno run pauses for a client-side tool, resuming it bypasses the instrumented run methods. Subsequent model calls become unrelated trace roots.

Instrument continue_run and acontinue_run on Agent and Team, and preserve Agno's session_id in task span metadata, including generated IDs and per-call overrides. Separate requests can produce separate traces with a shared session ID.

Before:

  initial trace: task -> llm -> pause
  resume trace:  llm

After:

  initial trace: task [session_id=S] -> llm -> pause
  resume trace:  task [session_id=S] -> llm

Resumes retain the caller's parent span when one exists. Without an ambient parent, the shared metadata.session_id correlates the separate traces.

resolves #764

When an Agno run pauses for a client-side tool, resuming it bypasses the
instrumented run methods. Subsequent model calls become unrelated trace roots.

Instrument `continue_run` and `acontinue_run` on Agent and Team, and preserve
Agno's `session_id` in task span metadata, including generated IDs and per-call
overrides. Separate requests can produce separate traces with a shared session ID.

Before:
  initial trace: task -> llm -> pause
  resume trace:  llm

After:
  initial trace: task [session_id=S] -> llm -> pause
  resume trace:  task [session_id=S] -> llm

Resumes retain the caller's parent span when one exists. Without an ambient
parent, the shared `metadata.session_id` correlates the separate traces.

Refs #764
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 22, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-22T18:31:56.340146Z 7230e4b New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6b9838d0d4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "Codex (@codex) review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".

Comment thread py/src/braintrust/integrations/agno/tracing.py
Agno continuation streams left their task span current between iterations.
Closing or abandoning a stream could leak context, and dropping an unstarted
iterator never finalized its span.

Before:
  caller -> create stream -> continuation stays current
                           -> close/drop -> incomplete cleanup

After:
  caller -> create stream -> caller context restored
         -> next/await    -> isolated stream context -> caller context restored
         -> close/drop   -> log partial output and end span once

Keep suspended provider spans in the stream's context across sync and async
iteration. Finalize on exhaustion, errors, cancellation, explicit close, or GC,
including streams that were never consumed. Async GC finalizes trace state
without scheduling provider cleanup on the event loop.

Refs #764
@AbhiPrasad
Abhijeet Prasad (AbhiPrasad) merged commit 1127622 into main Sep 22, 2026
83 checks passed
@AbhiPrasad
Abhijeet Prasad (AbhiPrasad) deleted the fix/agno-session-id-and-resume-tracing branch September 22, 2026 18:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

setup_agno() does not instrument Agent.acontinue_run/Team.acontinue_run (agno's paused-run resume path)

1 participant