Skip to content

Events

Publishing Events

python
from axonpush import AxonPush, EventType

with AxonPush(api_key="ak_...", tenant_id="1", base_url="https://api.axonpush.xyz") as client:
    event = client.events.publish(
        identifier="web_search",
        payload={"query": "AI agents"},
        channel_id=1,
        agent_id="researcher",
        event_type=EventType.AGENT_TOOL_CALL_START,
        trace_id="tr_run_42",
        span_id="sp_001",
        metadata={"tool_name": "web_search"},
    )
    print(event.id, event.identifier)

Parameters

ParameterTypeRequiredDescription
identifierstrYesEvent name (e.g., "web_search", "task.started")
payloaddictYesEvent data
channel_idintYesTarget channel ID
agent_idstrNoAgent identifier
event_typeEventTypeNoEvent type enum (default: CUSTOM)
trace_idstrNoTrace ID for correlation
span_idstrNoSpan ID for distributed tracing
parent_event_idintNoParent event ID
metadatadictNoAdditional metadata

Event Types

python
from axonpush import EventType

EventType.AGENT_START           # "agent.start"
EventType.AGENT_END             # "agent.end"
EventType.AGENT_MESSAGE         # "agent.message"
EventType.AGENT_TOOL_CALL_START # "agent.tool_call.start"
EventType.AGENT_TOOL_CALL_END   # "agent.tool_call.end"
EventType.AGENT_ERROR           # "agent.error"
EventType.AGENT_HANDOFF         # "agent.handoff"
EventType.AGENT_LLM_TOKEN       # "agent.llm.token"
EventType.CUSTOM                # "custom"

You can also pass event types as strings: event_type="agent.start".

Listing Events

python
events = client.events.list(channel_id=1, page=1, limit=20)
for event in events:
    print(event.identifier, event.payload)

Event Object

FieldTypeDescription
idintEvent ID
identifierstrEvent name
payloaddictEvent data
agent_idstrAgent identifier
trace_idstrTrace ID
span_idstrSpan ID
event_typeEventTypeEvent type
metadatadictAdditional metadata
created_atdatetimeTimestamp