Admin

Agent run history, quality metrics, conversation inspector, and usage analytics.

Overview

The Admin API provides observability endpoints for inspecting agent tool execution history, quality metrics, conversation forensics, and usage analytics. The admin portal is accessible at admin.praxiomai.xyz and provides a full UI with conversation inspector, quality dashboards, and entropy monitoring.

These endpoints require workspace membership and are rate-limited to 60 requests per minute.


List Agent Runs

GET /api/admin/agent-runs

List agent runs for a workspace with optional filters. Provides a paginated, filterable view of all agent tool executions (synthesis, recommendation, drafting, chat workflows).

Query Parameters

NameTypeRequiredDescription
workspace_idUUIDYesTarget workspace
agent_typestringNoFilter by type: synthesis, recommendation, drafting, chat
statusstringNoFilter by status: success, failed, partial
tool_namestringNoFilter by specific tool name
limitintegerNoMax records per page (default: 50, max: 100)
offsetintegerNoPagination offset (default: 0)

Example Request

curl "https://api.praxiomai.xyz/api/admin/agent-runs?workspace_id=550e8400-...&agent_type=synthesis&limit=10" \
  -H "Authorization: Bearer $TOKEN"
import requests

resp = requests.get(
    "https://api.praxiomai.xyz/api/admin/agent-runs",
    headers={"Authorization": f"Bearer {token}"},
    params={
        "workspace_id": "550e8400-e29b-41d4-a716-446655440000",
        "agent_type": "synthesis",
        "limit": 10,
    },
)
const resp = await fetch(
  "https://api.praxiomai.xyz/api/admin/agent-runs?workspace_id=550e8400-...&agent_type=synthesis&limit=10",
  { headers: { Authorization: `Bearer ${token}` } }
);

Response (200 OK)

{
  "runs": [
    {
      "id": "c3d4e5f6-...",
      "workspace_id": "550e8400-...",
      "agent_type": "synthesis",
      "tool_name": "synthesize_research",
      "input_data": {"source_ids": ["a1b2...", "b2c3..."]},
      "output_data": {"insight_count": 5},
      "latency_ms": 23450,
      "tokens_used": 15000,
      "cost_usd": 0.045,
      "status": "success",
      "error_message": null,
      "executed_at": "2026-03-27T10:35:00Z"
    }
  ],
  "total": 1,
  "limit": 10,
  "offset": 0
}

Get Agent Run Stats

GET /api/admin/agent-runs/stats

Get aggregated agent run statistics for a workspace.

Query Parameters

NameTypeRequiredDescription
workspace_idUUIDYesTarget workspace

Example Request

curl "https://api.praxiomai.xyz/api/admin/agent-runs/stats?workspace_id=550e8400-..." \
  -H "Authorization: Bearer $TOKEN"

Response (200 OK)

{
  "total_runs": 47,
  "total_cost_usd": 2.15,
  "runs_by_type": {
    "synthesis": 12,
    "recommendation": 8,
    "drafting": 5,
    "chat": 22
  },
  "runs_by_status": {
    "success": 44,
    "failed": 2,
    "partial": 1
  }
}

Quality: RQS Metrics

GET /api/admin/quality/rqs

Get Research Quality Score metrics and trends.

Query Parameters

NameTypeRequiredDescription
workspace_idUUIDYesTarget workspace
daysintegerNoTime window in days (default: 30, options: 7, 30, 90)

Response (200 OK)

{
  "avg_rqs": 0.74,
  "contract_pass_rate": 0.86,
  "verifier_pass_rate": 0.81,
  "daily_trend": [
    {
      "date": "2026-04-07",
      "avg_rqs": 0.76,
      "contract_pass_pct": 0.88,
      "verifier_pass_pct": 0.82
    }
  ],
  "by_agent_type": [
    {
      "agent_type": "synthesis",
      "avg_rqs": 0.79
    }
  ],
  "worst_workspaces": [
    {
      "workspace_name": "Acme Dashboard",
      "avg_rqs": 0.42,
      "run_count": 15,
      "verifier_fail_count": 6
    }
  ]
}

Quality: User Feedback

GET /api/admin/quality/feedback

Get user feedback sentiment analysis.

Query Parameters

NameTypeRequiredDescription
workspace_idUUIDYesTarget workspace
daysintegerNoTime window in days (default: 30)

Response (200 OK)

{
  "positive_rate": 0.72,
  "avg_rating": 4.1,
  "rated_count": 85,
  "unrated_count": 120,
  "daily_trend": [
    {
      "date": "2026-04-07",
      "positive_count": 8,
      "negative_count": 3
    }
  ],
  "top_positive_tags": [
    { "tag": "accurate", "count": 24 }
  ],
  "top_negative_tags": [
    { "tag": "incomplete", "count": 7 }
  ],
  "worst_workspaces": [
    {
      "workspace_name": "Acme Dashboard",
      "positive_rate": 0.45,
      "total_rated": 20
    }
  ]
}

Quality: Entropy (Data Quality)

GET /api/admin/quality/entropy

Get entropy scanning results showing data quality issues across workspaces.

Query Parameters

NameTypeRequiredDescription
workspace_idUUIDYesTarget workspace

Response (200 OK)

{
  "total_active_issues": 12,
  "high_severity_count": 3,
  "affected_workspaces": 2,
  "by_type": [
    {
      "issue_type": "stale_source",
      "severity": "high",
      "count": 2
    },
    {
      "issue_type": "contradictory_insights",
      "severity": "medium",
      "count": 5
    }
  ],
  "worst_workspaces": [
    {
      "workspace_name": "Acme Dashboard",
      "high_count": 2,
      "medium_count": 3,
      "low_count": 1,
      "last_scanned_at": "2026-04-07T02:15:00Z"
    }
  ],
  "recent_scans": [
    {
      "workspace_name": "Acme Dashboard",
      "scanned_at": "2026-04-07T02:15:00Z",
      "issue_count": 6,
      "high_severity_count": 2
    }
  ]
}

Admin Portal UI

The admin portal at admin.praxiomai.xyz provides three main views:

Conversations View

A filterable, paginated list of all conversations across workspaces. Clicking a conversation opens the ConversationSlideOver forensics panel showing:

  • Full message history with tool call details
  • Agent run metadata (model, cost, duration, tokens)
  • Quality scores (RQS, contract pass/fail, verifier score)
  • User feedback (thumbs up/down, tags)

Quality View

Three tabs for monitoring quality:

TabContents
RQS and VerifierAverage RQS, contract pass rate, verifier pass rate, daily trend table, breakdown by agent type, worst workspaces
User FeedbackPositive rate, average rating, daily trend, top positive/negative tags, worst workspaces
Entropy / Data QualityTotal active issues, severity breakdown, issues by type, worst workspaces, recent scan history

All tabs support time window filtering (7, 30, or 90 days).

Was this helpful?