> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Context Trace Emitter • AI Agent SDK

> ContextTraceEmitter: Emitter for context trace events.

# ContextTraceEmitter

> Defined in the [**Context Events**](https://praison.ai/docs/sdk/reference/praisonaiagents/modules/context_events.md) module.

AI Agent

Emitter for context trace events.

Provides a high-level API for emitting context events during
agent execution. Handles sequence numbering and redaction.

## Constructor

**sink** `Optional[ContextTraceSink]`

No description available.

**session\_id** `str` (default: '')

No description available.

**enabled** `bool` (default: True)

No description available.

**redact** `bool` (default: True)

No description available.

**full\_content** `bool` (default: False)

No description available.

## Methods

> [card] [set\_branch()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-set_branch.md)
>
> Set current branch context for parallel execution tracking.

> [card] [clear\_branch()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-clear_branch.md)
>
> Clear the current branch context.

> [card] [session\_start()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-session_start.md)
>
> Emit session start event.

> [card] [session\_end()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-session_end.md)
>
> Emit session end event.

> [card] [agent\_start()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-agent_start.md)
>
> Emit agent start event.

> [card] [agent\_end()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-agent_end.md)
>
> Emit agent end event.

> [card] [message\_added()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-message_added.md)
>
> Emit message added event.

> [card] [tool\_call\_start()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-tool_call_start.md)
>
> Emit tool call start event.

> [card] [tool\_call\_end()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-tool_call_end.md)
>
> Emit tool call end event.

> [card] [llm\_request()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-llm_request.md)
>
> Emit LLM request event.

> [card] [llm\_response()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-llm_response.md)
>
> Emit LLM response event.

> [card] [context\_snapshot()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-context_snapshot.md)
>
> Emit context snapshot event with full context state.

> [card] [agent\_handoff()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-agent_handoff.md)
>
> Emit agent handoff event for tracking agent-to-agent flow.

> [card] [workflow\_start()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-workflow_start.md)
>
> A team, flow or agent run begins. `graph` is its static graph.

> [card] [workflow\_end()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-workflow_end.md)
>
> The innermost open team/flow run ends.

> [card] [task\_start()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-task_start.md)
>
> A team task starts (node\_id `task:name or index`).

> [card] [task\_end()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-task_end.md)
>
> A team task ends: `completed`, `failed` or `skipped`.

> [card] [step\_start()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-step_start.md)
>
> An AgentFlow step (or a Route/Parallel/Loop/... pattern) starts.

> [card] [step\_end()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-step_end.md)
>
> A flow step ends: `completed`, `failed`, `skipped` or `cached`.

> [card] [approval\_requested()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-approval_requested.md)
>
> A person is asked to approve a tool call or a task's output.

> [card] [approval\_decided()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-approval_decided.md)
>
> The decision for `approval_id` (parent\_seq = the request).

> [card] [memory\_store()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-memory_store.md)
>
> Emit memory store event for tracking memory writes.

> [card] [memory\_search()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-memory_search.md)
>
> Emit memory search event for tracking memory reads.

> [card] [knowledge\_search()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-knowledge_search.md)
>
> Emit knowledge search event for tracking knowledge retrieval.

> [card] [knowledge\_add()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-knowledge_add.md)
>
> Emit knowledge add event for tracking knowledge indexing.

> [card] [flush()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-flush.md)
>
> Flush the sink.

> [card] [close()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-close.md)
>
> Close the sink.

> [card] [session\_id()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-session_id.md)
>
> Get the session ID.

> [card] [enabled()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-enabled.md)
>
> Check if emitter is enabled.

> [card] [enabled()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/ContextTraceEmitter-enabled.md)
>
> Set enabled state.

## Usage

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
sink = ContextListSink()
    emitter = ContextTraceEmitter(sink=sink, session_id="my-session")
    
    emitter.session_start()
    emitter.agent_start("researcher")
    emitter.message_added("researcher", "user", "Hello", 1, 10)
    emitter.agent_end("researcher")
    emitter.session_end()
```

## Source

> [card] [View on GitHub](https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/trace/context_events.py#L589)
>
> `praisonaiagents/trace/context_events.py` at line 589

***

## Related Documentation

> [card] [Context Concept](https://praison.ai/docs/docs/concepts/context)

> [card] [Context Management](https://praison.ai/docs/docs/features/context-management)

> [card] [Context Strategies](https://praison.ai/docs/docs/features/context-strategies)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.