Skip to content

Feature Request: Session Export and Replay for Agent Debugging #1586

@nayar-900

Description

@nayar-900

Title

Feature Request: Session Export and Replay for Agent Debugging

Description

Problem

When building agents with the Copilot SDK, debugging complex multi-turn conversations can be difficult.

Developers often encounter situations where:

  • An agent behaves unexpectedly after several turns.
  • A tool invocation produces an incorrect result.
  • Context accumulation affects later responses.
  • Bugs only appear after a specific sequence of interactions.

Currently, reproducing these issues typically requires manually recreating the entire conversation flow.

Proposed Solution

Add session export and replay capabilities to the Copilot SDK.

Session Export

Allow developers to export a session including:

  • User messages
  • Assistant messages
  • Tool calls
  • Tool results
  • MCP interactions
  • Session metadata
  • Model configuration

Example:

{
  "sessionId": "...",
  "messages": [...],
  "toolCalls": [...],
  "metadata": {...}
}

Session Replay

Provide APIs to replay exported sessions for debugging and testing.

Example:

const session = await sdk.loadSession("./session.json");

await session.replay();

Optional Features

  • Replay until a specific turn
  • Step-by-step execution
  • Compare outputs across SDK versions
  • Compare outputs across models
  • Deterministic replay mode

Use Cases

Agent Development

Reproduce user-reported failures without requiring users to recreate conversations.

Regression Testing

Verify that SDK upgrades do not change agent behavior unexpectedly.

Tool Debugging

Inspect exactly how tool calls and results affected agent decisions.

Benchmarking

Compare responses across different models using the same session history.

Benefits

  • Easier debugging
  • Better reproducibility
  • Improved regression testing
  • Faster issue triage
  • Better developer experience for agent builders

Alternatives Considered

  • Manual logging of messages
  • Custom session serialization
  • Third-party observability platforms

These approaches require significant additional implementation and are not standardized across SDK users.

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