> ## 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.

# Trace Emitter • AI Agent SDK

> TraceEmitter: Emitter for action trace events.

# TraceEmitter

> Defined in the [**protocol**](../modules/protocol) module.

<Badge color="blue">AI Agent</Badge>

Emitter for action trace events.

Provides a high-level API for emitting trace events.
Handles redaction and sink management.

## Constructor

<ParamField query="sink" type="Optional[TraceSink]" required={false}>
  No description available.
</ParamField>

<ParamField query="enabled" type="bool" required={false} default="True">
  No description available.
</ParamField>

<ParamField query="redact" type="bool" required={false} default="True">
  No description available.
</ParamField>

## Methods

<CardGroup cols={2}>
  <Card title="agent_start()" icon="function" href="../functions/TraceEmitter-agent_start">
    Emit agent start event.
  </Card>

  <Card title="agent_end()" icon="function" href="../functions/TraceEmitter-agent_end">
    Emit agent end event.
  </Card>

  <Card title="tool_start()" icon="function" href="../functions/TraceEmitter-tool_start">
    Emit tool start event.
  </Card>

  <Card title="tool_end()" icon="function" href="../functions/TraceEmitter-tool_end">
    Emit tool end event.
  </Card>

  <Card title="error()" icon="function" href="../functions/TraceEmitter-error">
    Emit error event.
  </Card>

  <Card title="output()" icon="function" href="../functions/TraceEmitter-output">
    Emit final output event.
  </Card>

  <Card title="flush()" icon="function" href="../functions/TraceEmitter-flush">
    Flush the sink.
  </Card>

  <Card title="close()" icon="function" href="../functions/TraceEmitter-close">
    Close the sink.
  </Card>
</CardGroup>

## Usage

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
sink = ListSink()
    emitter = TraceEmitter(sink=sink)
    
    emitter.agent_start("researcher")
    emitter.tool_start("search", {"query": "AI"})
    emitter.tool_end("search", duration_ms=100, status="ok")
    emitter.agent_end("researcher", duration_ms=500)
```

## Source

<Card title="View on GitHub" icon="github" href="https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/trace/protocol.py#L208">
  `praisonaiagents/trace/protocol.py` at line 208
</Card>
