query_observations
Query the universal observation stream using natural language or structured filters. Returns multi-modal sensing data (audience, vehicle, environment, commerce) from physical-world observations across the screen network.
WHEN TO USE:
Exploring raw observation data from edge AI sensors on screens
Filtering observations by venue type, device, time range, or geography
Getting audience, vehicle, environment, or commerce observation data
Answering natural language questions about what screens are sensing
RETURNS:
data: Array of observation objects with device, venue, payload, confidence, model versions
metadata: { observation_count, time_range, coverage_pct, model_versions }
suggested_next_queries: Contextual follow-up queries
Each observation includes:
observation_id, device_id, screen_mongo_id, venue_type
observed_at: Timestamp of the observation
observation_family: audience | vehicle | environment | commerce
payload: JSONB with model outputs (face_count, emotion, vehicle_count, etc.)
confidence: Model confidence score (0-1)
evidence_grade: Quality grade of the observation
model_versions: Which ML models produced this data
EXAMPLE: User: "Show me audience observations at QSR venues in the last hour" query_observations({ query: "audience observations at QSR venues", filters: { observation_family: ["audience"], venue_type: ["restaurant_qsr"], time_range: { start: "2026-03-16T14:00:00Z", end: "2026-03-16T15:00:00Z" } }, limit: 50 })
User: "What are screens sensing right now?" query_observations({ query: "latest observations from all screens", limit: 20 })
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum observations to return (default: 100, max: 1000) | |
| query | Yes | Natural language query describing what observations to find | |
| filters | No | Structured filters to narrow results |