Skip to main content
Navigate to Monitor tab to view all agent executions, threads, tasks, and performance metrics.
Monitoring Dashboard

Three Views

Threads

Conversation history grouped by session_id

Metrics

Token usage, latency, and throughput

Tasks

Individual executions with status and logs

Threads

View all conversation threads (grouped by session_id). Each thread shows:
  • User information (name, email, ID)
  • Last interaction timestamp
  • Created timestamp
  • Input/output token counts
  • Thread ID
Click any thread to see full conversation history with messages, tool calls, and AI insights.

Thread Details

When you open a thread, you see: Logs Panel:
  • Log time and execution duration
  • Downloadable JSON with full conversation
  • Message timeline with user/agent exchanges
  • Tool calls with payloads and responses
AI Insights Panel:
  • Goal Achievement Metric (%)
  • Summary of conversation
  • Re-evaluate button to refresh analysis
Example from logs:
20:34:43  User Message
          Message content

20:34:51  Agent Final Response (11.516s)
          Message content

20:35:10  Search knowledge base (3.471s)
          Request Payload
          Response

Download Thread JSON

Click Download Log to get full thread data:
{
  "id": "6ebc5351-bfc4-4742-9640-db4127ca1396",
  "created_at": "2025-12-18T04:34:43.666452Z",
  "messages": [
    {
      "id": "6ebc5351-..._user_97873529-...",
      "created_at": "2025-12-18T04:34:43.666452Z",
      "role": "user",
      "content": {
        "text": "what's in your kb?",
        "files": []
      }
    },
    {
      "id": "6ebc5351-..._agent_f280af66-...",
      "created_at": "2025-12-18T04:34:51.406157Z",
      "role": "agent",
      "content": {
        "text": "Awesome question...",
        "files": []
      }
    },
    {
      "id": "47812cbf-8e55-497c-8494-90a180605ce8",
      "created_at": "2025-12-18T04:35:10.139827Z",
      "tool_name": "search_knowledge_base",
      "payload": {
        "query": "xpander.ai knowledge base overview"
      },
      "is_error": false,
      "result": "[{\"content\": \"...\", \"score\": 78.13}]"
    }
  ],
  "user": {
    "id": "71f495e5-c67a-4b36-a4b4-e9cce3513c5b",
    "first_name": "David",
    "last_name": "Twizer",
    "display_name": "David Twizer"
  }
}

Tasks

View all agent executions (individual task runs). Multiple tasks can belong to the same thread. Task List Columns:
ColumnDescription
IDUnique task identifier (8 characters)
Created AtTask creation timestamp
Updated AtLast update timestamp
StatusCompleted, Stopped, or Running
Internal StatusInternal execution state
Task Status:
  • Completed - Task finished successfully
  • Stopped - Task was interrupted or failed
  • Running - Task currently executing

Multiple Tasks Per Thread

A single thread (conversation) can have multiple task executions:
Thread: 6ebc5351 (session_id)
├── Task: 6ebc5351 (20:34:44 - 20:35:13) ✓ Completed
├── Task: 80632cde (20:01:22 - 20:01:25) ✓ Completed
└── Task: 179873c (19:59:44 - 20:00:01) ✓ Completed
Each task represents one agent invocation, but they share the same conversation context (session_id).

Metrics

Real-time performance metrics for your agent: Token Usage:
  • Input tokens per thread
  • Output tokens per thread
  • Total tokens across all executions
Performance:
  • Average execution duration
  • Actions/tool calls per thread
  • Success rate

Using the SDK

from xpander_sdk import Configuration, Backend
from agno.agent import Agent
import json
from datetime import datetime

config = Configuration(
    api_key="<your-key>",
    organization_id="<your-org>"
)

backend = Backend(configuration=config)
agno_agent = Agent(**backend.get_args(agent_id="<agent-id>"))

# Run conversation
agno_agent.print_response(input='Hi')

# Get chat history
chat_history = agno_agent.get_chat_history()

# Serialize and save to JSON
serialized_history = []
for interaction in chat_history:
    if hasattr(interaction, 'model_dump'):
        serialized_history.append(interaction.model_dump())
    elif hasattr(interaction, '__dict__'):
        serialized_history.append(interaction.__dict__)
    else:
        serialized_history.append(str(interaction))

history_data = {
    'timestamp': datetime.now().isoformat(),
    'session_id': agno_agent.session_id,
    'chat_history': serialized_history
}

with open('chat_history.json', 'w') as f:
    json.dump(history_data, f, indent=2, default=str)
API References:

Debug Mode

Enable debug mode to see detailed logs during development:
from xpander_sdk import Backend, Configuration
from agno.agent import Agent

backend = Backend(configuration=Configuration(api_key="<your-key>"))
agent = Agent(**backend.get_args(agent_id="<agent-id>"))

# Enable debug logs
agent.debug_mode = True

agent.print_response(input="Test message")
Example debug output:
DEBUG Tool Calls:
  - Name: 'search_knowledge_base'
    Arguments: 'query: Thai recipes overview'

DEBUG Time to get references: 1.0603s

DEBUG [
  {
    "content": "Pad Thai Goong Sod - Thai Fried Noodles...",
    "score": 78.13
  }
]