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
| Parameter | Type | Required | Description |
|---|---|---|---|
identifier | str | Yes | Event name (e.g., "web_search", "task.started") |
payload | dict | Yes | Event data |
channel_id | int | Yes | Target channel ID |
agent_id | str | No | Agent identifier |
event_type | EventType | No | Event type enum (default: CUSTOM) |
trace_id | str | No | Trace ID for correlation |
span_id | str | No | Span ID for distributed tracing |
parent_event_id | int | No | Parent event ID |
metadata | dict | No | Additional 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
| Field | Type | Description |
|---|---|---|
id | int | Event ID |
identifier | str | Event name |
payload | dict | Event data |
agent_id | str | Agent identifier |
trace_id | str | Trace ID |
span_id | str | Span ID |
event_type | EventType | Event type |
metadata | dict | Additional metadata |
created_at | datetime | Timestamp |