NEWVectors or files. Pick a path.Start →
    Agent Perception
    19 min read
    Updated 2026-06-03

    Agent Perception Evals: Testing Whether AI Agents Can See, Hear, and Search

    A practical guide to evaluating agent perception systems. Learn how to test multimodal ingestion coverage, retrieval quality, temporal grounding, tool-call behavior, evidence citation, and production drift for agents that search video, audio, images, and documents.

    AI Agents
    Evaluation
    Multimodal Search
    Agent Perception
    Retrieval Quality

    Why Agent Perception Needs Its Own Evals



    Most agent evals ask whether the final answer is correct. Most retrieval evals ask whether the right document appeared in the top k. Neither test is enough when an agent is supposed to see, hear, or search unstructured content.

    An agent perception system has to do more than answer:

  1. Ingest raw media into searchable observations.
  2. Retrieve the right evidence across text, image, video, audio, OCR, objects, speakers, and timestamps.
  3. Select the right tool with the right filters and budgets.
  4. Cite the exact source span, frame, region, or speaker turn.
  5. Avoid acting when the evidence is weak.
  6. Keep working after models, media, tenants, schemas, and access controls change.


  7. That is why perception evals sit between retrieval evals and full agent evals. They measure the whole path from raw media to grounded agent behavior.

    The hard gate for this topic is direct: agent perception evals help AI agents see, hear, and search unstructured content reliably.

    Three Evaluation Levels



    A production agent that searches media should be evaluated at three levels.

    1. Retrieval Quality



    Retrieval quality asks: did the search system return the right evidence?

    Typical metrics:

  8. Recall@k
  9. Precision@k
  10. nDCG@k
  11. MRR
  12. MAP
  13. Hit rate
  14. Temporal IoU for video or audio segments
  15. Box IoU for visual localization


  16. This is the layer covered by traditional retrieval evaluation systems. It is necessary, but it misses agent-specific failures. A retriever can return the right clip while the agent still ignores it, over-calls a tool, cites the wrong timestamp, or spends ten times the intended budget.

    2. Tool Trajectory



    Tool trajectory asks: did the agent search in the right way?

    OpenAI trace grading, LangChain AgentEvals, LangSmith, and similar systems all point in the same direction: agent quality depends on the sequence of model calls, tool calls, guardrails, and intermediate decisions, not only on the final text answer.

    For perception systems, the trajectory includes:

  17. Which retrieval tool was selected.
  18. Whether the agent searched the correct modality.
  19. Whether it applied the right filters.
  20. Whether it expanded or narrowed the query appropriately.
  21. Whether it cancelled stale searches.
  22. Whether it requested neighboring context before answering.
  23. Whether it stopped when evidence was insufficient.


  24. This catches failures that ranking metrics alone cannot see.

    3. Evidence Grounding



    Evidence grounding asks: is the final answer supported by the retrieved media evidence?

    For text RAG, grounding often means citation to a document chunk. For multimodal agents, grounding is richer:

  25. Video: start time, end time, source URI, scene ID, keyframe, object boxes.
  26. Audio: transcript span, speaker label, time range, confidence.
  27. Image: object box, OCR region, face region, detected class, feature ID.
  28. Document: page number, table cell, figure region, extracted text span.


  29. An agent perception eval should fail an answer that cites the right file but the wrong timestamp. It should fail an answer that says a speaker made a claim without identifying the speaker turn. It should fail an answer that describes an object without a frame, crop, or detector signal.

    The Failure Taxonomy



    Build evals around failure modes. A useful perception eval suite should tell you where the system failed, not only that it failed.

    Ingestion Failure



    The raw file arrived, but the searchable observations are missing or incomplete.

    Examples:

  30. A video was indexed without audio transcription.
  31. OCR ran on the wrong frame sample rate.
  32. A document table was flattened into unreadable text.
  33. A face detector missed low-resolution faces.
  34. The collection points to stale model versions after a reindex.


  35. Metric examples:

  36. Extraction coverage by modality.
  37. Percent of files with at least one transcript, caption, OCR span, object, or embedding.
  38. Failed extraction rate by file type.
  39. Average observations per minute of media.
  40. Model version coverage.


  41. Representation Failure



    The media was processed, but the representation does not preserve the signal needed for search.

    Examples:

  42. The chunk is too long, so a ten-second event is buried inside a five-minute segment.
  43. The embedding model captures visual style but not the object category.
  44. Speaker diarization splits one speaker into multiple identities.
  45. OCR text exists but coordinates are missing.
  46. Video frames are sampled too sparsely to catch fast actions.


  47. Metric examples:

  48. Query coverage by representation type.
  49. Temporal localization error.
  50. Speaker attribution accuracy.
  51. OCR region accuracy.
  52. Segment length distribution.


  53. Retrieval Failure



    The right evidence exists in the index, but the search system does not retrieve it.

    Examples:

  54. Dense search misses exact product IDs.
  55. BM25 finds the transcript but not the matching frame.
  56. Filters exclude the relevant collection.
  57. Reranking demotes the correct visual result.
  58. Multi-index fusion overweights one modality.


  59. Metric examples:

  60. Recall@5 and Recall@20 by modality.
  61. nDCG@k with graded relevance.
  62. Per-stage contribution to final rank.
  63. False negative rate for known evidence.
  64. Empty-result rate by query class.


  65. Tool Behavior Failure



    The retriever is capable, but the agent uses it poorly.

    Examples:

  66. The agent searches video captions when it should search transcript.
  67. It repeats the same query instead of inspecting returned evidence.
  68. It ignores budget exhaustion.
  69. It keeps a long-running search alive after the answer is found.
  70. It asks for global search when a namespace filter is required.


  71. Metric examples:

  72. Tool selection accuracy.
  73. Query rewrite quality.
  74. Filter correctness.
  75. Budget adherence.
  76. Stale work ratio.
  77. Cancellation rate for superseded searches.


  78. Grounding Failure



    The final answer is not tied to the returned evidence.

    Examples:

  79. The answer cites a video but not a timestamp.
  80. It names the wrong speaker.
  81. It describes an object that appears near the clip but not in the selected window.
  82. It summarizes a document page but cites the whole PDF.
  83. It combines evidence from two incompatible sources.


  84. Metric examples:

  85. Supported claim rate.
  86. Citation precision.
  87. Timestamp error.
  88. Bounding-box IoU.
  89. Speaker turn match rate.
  90. Unsupported claim count per answer.


  91. Build a Perception Eval Dataset



    Do not start with one giant benchmark. Start with a compact, diagnostic dataset that covers the agent's real jobs.

    A useful perception eval dataset contains query classes like:

  92. Visual semantic: "Find the scene where the operator opens the red panel."
  93. Audio semantic: "Find the call where the customer says setup failed."
  94. OCR: "Find frames where the screen shows error code E113."
  95. Object grounded: "Find clips with a forklift near a pedestrian."
  96. Speaker grounded: "Find where Dana explains the refund policy."
  97. Temporal: "Find the moment after the package is scanned but before it is loaded."
  98. Cross-modal: "Find the moment where the speaker says the light is red and the red light is visible."
  99. Negative: "There should be no clip where a person enters the restricted zone."
  100. Adversarial: "Find the logo on the box, not the logo in the background poster."
  101. Access-control: "Search only the customer-approved folder."


  102. Each query should identify the expected evidence, not only the expected answer.

    {
      "query_id": "q_cross_modal_017",
      "query_input": {
        "text": "Find the moment where the customer says the device is flashing red and the red light is visible"
      },
      "expected_evidence": [
        {
          "source_uri": "s3://support-calls/call-42.mp4",
          "start_time": "00:08:28",
          "end_time": "00:08:42",
          "modalities": ["transcript", "visual"],
          "required_fields": ["timestamp", "speaker", "keyframe", "source_uri"],
          "relevance": 5
        }
      ],
      "negative_evidence": [
        {
          "source_uri": "s3://support-calls/call-42.mp4",
          "start_time": "00:04:10",
          "end_time": "00:04:30",
          "reason": "Transcript mentions red, but no visual red light is present"
        }
      ]
    }
    


    The negative evidence matters. It teaches the eval to distinguish a real cross-modal match from a coincidental keyword hit.

    Metrics That Actually Diagnose Perception



    Use standard retrieval metrics, but add perception-specific measures.

    Coverage Metrics



    Coverage metrics answer whether the corpus is searchable at all.

  103. Extraction coverage: percent of files with required features.
  104. Observation density: features per minute of video or audio, per page of document, or per image.
  105. Feature freshness: percent of features produced by the current model and extractor version.
  106. Lineage completeness: percent of observations with source URI, timestamp or page, model ID, and feature URI.


  107. Coverage is an upstream gate. If only 60 percent of videos have transcripts, no agent eval can rescue audio search quality.

    Retrieval Metrics



    Retrieval metrics answer whether the right evidence is returned.

  108. Recall@k: did any expected evidence appear in the top k?
  109. nDCG@k: did highly relevant evidence rank above weak evidence?
  110. MRR: how quickly does the first correct result appear?
  111. Modality hit rate: did the correct modality contribute to the result?
  112. Stage attribution: which stage produced or removed the relevant result?


  113. For multimodal retrieval, compute metrics by query class. A single aggregate nDCG score can hide that visual queries improved while OCR queries regressed.

    Localization Metrics



    Localization metrics answer whether the system found the right part of the media.

  114. Temporal IoU: overlap between predicted and expected time ranges.
  115. Timestamp error: absolute difference between predicted and expected start time.
  116. Bounding-box IoU: overlap between predicted and expected object region.
  117. Page or region accuracy: correct page, table cell, figure, or OCR box.
  118. Speaker turn accuracy: correct speaker and time span.


  119. This is where many media systems fail quietly. A clip-level answer can look plausible while being thirty seconds off.

    Tool Metrics



    Tool metrics answer whether the agent behaved like a competent search user.

  120. Tool selection accuracy: correct retrieval tool chosen.
  121. Argument correctness: query, filters, modalities, top-k, and budget are appropriate.
  122. Search depth: number of tool calls before sufficient evidence.
  123. Budget adherence: work stays within limits.
  124. Cancellation quality: stale work is cancelled when a better path appears.
  125. Retry discipline: retries are idempotent and do not duplicate writes.


  126. These metrics need traces. An output-only eval cannot tell whether the agent got lucky after wasting ten bad tool calls.

    Grounding Metrics



    Grounding metrics answer whether the final response is evidence-backed.

  127. Citation precision: cited source spans actually support the answer.
  128. Citation recall: all material claims have evidence.
  129. Unsupported claim rate: claims with no retrieved support.
  130. Evidence completeness: timestamps, speaker labels, frame IDs, boxes, or page numbers are present when needed.
  131. Abstention quality: the agent refuses or asks for review when evidence is insufficient.


  132. For high-stakes workflows, grounding should be stricter than answer correctness. A correct answer without inspectable evidence may still be unusable.

    Trace-Based Agent Perception Evals



    Trace-based evals inspect the agent's path, not just the final response. This is important because a perception agent often succeeds or fails before it writes a final answer.

    A good trace record contains:

  133. The user task.
  134. The selected tool and tool schema.
  135. Query rewrites.
  136. Filters and namespaces.
  137. Retrieval stages used.
  138. Partial results and final results.
  139. Budget used.
  140. Cancellation events.
  141. Evidence passed into the model.
  142. Final answer and citations.


  143. A perception-specific trace grader can score:

    1. Did the agent choose the right tool? 2. Did the query preserve the user's intent? 3. Did it search the necessary modalities? 4. Did it apply the right source, tenant, permission, or namespace filters? 5. Did it inspect evidence before answering? 6. Did it cite exact source locations? 7. Did it avoid unsupported claims?

    This aligns with the current agent ecosystem. MCP standardizes how tools and resources are exposed to agents. OpenAI Agents tracing records model calls, tool calls, guardrails, handoffs, and audio spans. LangChain AgentEvals score tool-call trajectories against references or rubrics. LlamaIndex retrieval evals expose standard retrieval metrics like hit rate and MRR. The missing piece is usually the perception-specific rubric.

    A Minimal Rubric



    Use a rubric that separates retrieval, trajectory, and grounding.

    {
      "retrieval": {
        "correct_evidence_in_top_5": 1,
        "correct_modality_used": 1,
        "temporal_iou": 0.72
      },
      "trajectory": {
        "right_tool": true,
        "filters_correct": true,
        "unnecessary_tool_calls": 0,
        "budget_exceeded": false
      },
      "grounding": {
        "all_claims_cited": true,
        "timestamp_citation_present": true,
        "speaker_citation_present": true,
        "unsupported_claims": 0
      },
      "pass": true
    }
    


    This rubric is intentionally simple. Add complexity only when it changes engineering decisions.

    Offline, Online, and Replay Evals



    You need three eval modes.

    Offline Golden Sets



    Use hand-labeled examples before shipping a model, retriever, extractor, or prompt change.

    Best for:

  144. Comparing model versions.
  145. Testing chunking strategies.
  146. Validating new extractors.
  147. Checking temporal grounding.
  148. Preventing obvious regressions.


  149. Weakness:

  150. Golden sets get stale if the corpus or user behavior changes.


  151. Online Signals



    Use production behavior to identify weak areas.

    Signals include:

  152. Clicks, long views, exports, saves, purchases, or human approvals.
  153. Query reformulations.
  154. Empty-result retries.
  155. Abandoned searches.
  156. Human override decisions.
  157. Reviewer disagreement.


  158. Online signals are noisy. They should not replace labeled evals, but they are the best early warning for drift.

    Replay Benchmarks



    Replay historical queries and interactions against candidate pipelines before shipping.

    Best for:

  159. Testing reranker changes.
  160. Comparing hybrid weights.
  161. Measuring latency and cost differences.
  162. Detecting changes that promote or demote interacted results.
  163. Validating that a pipeline change helps real sessions, not only a curated dataset.


  164. Replay is especially valuable for agents because the agent's tool path is often sensitive to small ranking changes. If a relevant result drops from rank 3 to rank 18, the agent may never inspect it.

    How This Maps to Mixpeek



    Mixpeek's perception layer decomposes media into searchable features, and the retriever evaluation framework measures search quality over those features.

    A typical flow:

    1. Ingest media with the features required by the agent. 2. Create a ground-truth dataset with query inputs and relevant document or feature IDs. 3. Run the retriever evaluation against the target retriever. 4. Track standard ranking metrics. 5. Add trace-level and grounding checks around the agent that calls the retriever. 6. Replay historical sessions when changing models, extractors, or retrieval stages.

    Example dataset creation:

    curl -X POST "https://api.mixpeek.com/v1/retrievers/evaluations/datasets" \
      -H "Authorization: Bearer $MIXPEEK_API_KEY" \
      -H "X-Namespace: ns_agent_media" \
      -H "Content-Type: application/json" \
      -d '{
        "dataset_name": "agent_perception_v1",
        "description": "Cross-modal video, audio, OCR, and object retrieval evals for an agent tool",
        "queries": [
          {
            "query_id": "q_red_light_visible",
            "query_input": {
              "query": "customer says the device is flashing red and the red light is visible"
            },
            "relevant_documents": ["feat_call_42_00_08_28"],
            "relevance_scores": {
              "feat_call_42_00_08_28": 5,
              "feat_call_42_00_08_20": 3
            }
          }
        ],
        "metadata": {
          "requires_modalities": ["transcript", "visual"],
          "requires_evidence_fields": ["source_uri", "timestamp", "speaker", "keyframe"]
        }
      }'
    


    Run the evaluation:

    curl -X POST "https://api.mixpeek.com/v1/retrievers/ret_agent_media/evaluations" \
      -H "Authorization: Bearer $MIXPEEK_API_KEY" \
      -H "X-Namespace: ns_agent_media" \
      -H "Content-Type: application/json" \
      -d '{
        "dataset_name": "agent_perception_v1",
        "evaluation_config": {
          "k_values": [1, 5, 10, 20],
          "metrics": ["precision", "recall", "f1", "map", "ndcg", "mrr"]
        }
      }'
    


    Then wrap the agent tool with a trace grader:

    def grade_perception_trace(trace):
        result = {
            "right_tool": trace.used_tool("search_media"),
            "searched_required_modalities": trace.tool_args_include(
                "search_media",
                "modalities",
                ["transcript", "visual"]
            ),
            "budget_exceeded": trace.budget_used_ms > trace.budget_limit_ms,
            "has_timestamp_citation": trace.final_answer.has_field("timestamp"),
            "unsupported_claims": count_unsupported_claims(trace),
        }

    result["pass"] = ( result["right_tool"] and result["searched_required_modalities"] and not result["budget_exceeded"] and result["has_timestamp_citation"] and result["unsupported_claims"] == 0 ) return result


    The exact trace library can vary. The principle is the same: score the retrieval result, the tool path, and the final grounded answer separately.

    What to Monitor in Production



    Perception evals should become production telemetry.

    Track:

  165. Extraction failure rate by feature extractor and file type.
  166. Percent of new media with required features.
  167. Empty-result rate by retriever.
  168. Query class distribution.
  169. Recall and nDCG on scheduled golden sets.
  170. Replay benchmark deltas before pipeline changes.
  171. Unsupported claim rate from trace graders.
  172. Percent of answers with source, timestamp, page, region, or speaker citations.
  173. Cost per successful grounded answer.
  174. P95 and p99 latency by retrieval stage.
  175. Cancellation and retry rates.


  176. Alert on regressions that change behavior, not only on infrastructure failures. For example:

  177. Video transcript coverage drops below 95 percent.
  178. Cross-modal eval Recall@10 drops more than 5 percent.
  179. Agent tool calls per task double after a prompt change.
  180. Timestamp citation precision falls below the review threshold.
  181. Replay benchmark shows interacted results demoted.


  182. Design Checklist



  183. Define query classes before choosing metrics.
  184. Label evidence spans, not only answer text.
  185. Include negative examples and near misses.
  186. Track ingestion coverage before retrieval quality.
  187. Compute retrieval metrics by modality and query class.
  188. Add localization metrics for timestamps, boxes, pages, and speaker turns.
  189. Grade tool trajectories, not only final answers.
  190. Require exact evidence citations for media claims.
  191. Separate offline golden-set evals from online signals.
  192. Replay historical sessions before changing models, extractors, chunking, or fusion weights.
  193. Monitor cost, latency, stale work, and cancellation alongside quality.


  194. Key Takeaways



    1. Agent perception evals measure the path from raw media to grounded agent behavior.

    2. Standard retrieval metrics are necessary but incomplete for agents.

    3. The best datasets label evidence spans: timestamps, pages, boxes, speakers, and feature IDs.

    4. Trace-based grading catches tool-selection, filter, budget, cancellation, and citation failures.

    5. Production monitoring should track extraction coverage and retrieval drift before users notice bad answers.

    6. A correct final answer is not enough. The agent must show the evidence it used.

    Further Reading



  195. Evaluating Multimodal Retrieval
  196. Retrieval Control Planes for AI Agents
  197. MCP Tool Design for Multimodal Search
  198. OpenAI trace grading
  199. LangChain AgentEvals
  200. LlamaIndex retrieval evaluation
  201. Model Context Protocol specification
  202. Already have embeddings?

    Skip extraction — bring your own vectors to MVS. Dense + sparse + BM25 hybrid search. First 1M vectors free.

    Build a Multimodal Search Pipeline

    Give agents searchable access to video, image, audio, and document evidence with Mixpeek.

    Start BuildingRead Docs