Skip to content

Add conversational paraphrase and query-echo cases to the recall evaluation set #65

Description

@pablontiv

Problem

The current recall evaluation set reports 100% recall@5 on a small collection of direct, artifact-shaped queries. That score did not predict a real conversational recall failure where the index contained the exact answer but the requested message fell below the top five.

The missing evaluation dimensions are:

  1. Conversational paraphrase: the user describes a remembered concept without reproducing the original wording.
  2. Terminology recovery: the expected answer is a short term inside a longer prior response.
  3. Query-echo contamination: earlier backscroll search tool calls repeat the query tokens and compete with historical prose.
  4. Progressive refinement: repeated searches should improve retrieval rather than add higher-ranked self-generated noise.
  5. Budgeted agent output: the expected result must remain reachable under --robot --fields minimal --max-tokens.

Without these cases, recall@5 can remain perfect while realistic agent recall still requires several manual query rewrites.

Proposed Solution

Extend docs/eval/queries.toml and scripts/eval.sh with sanitized fixtures derived from this observed workflow.

At minimum, add cases that:

  • ask for a prior technical term using different vocabulary from the stored answer;
  • place the target phrase inside a longer assistant response;
  • add later Backscroll query invocations containing the same terms;
  • measure the target's rank before and after query refinement;
  • execute the documented robot/minimal/token-budget contract;
  • report both recall@5 and whether the target was present in the emitted bounded payload.

Keep the existing lexical baseline, but report results by cohort so regressions in conversational recall are not hidden by easy exact-term queries.

Suggested cohorts:

artifact-literal
conversational-paraphrase
terminology-recovery
query-echo
budgeted-agent-output

Alternatives Considered

  • Replace the existing eval-set. Rejected because the current direct queries still protect useful behavior; new cohorts should complement them.
  • Activate embeddings immediately. Rejected because the benchmark should first demonstrate the gap and compare lexical improvements against a stable baseline.
  • Measure only whether the target exists anywhere in the result set. Rejected because agents consume bounded top-ranked output; rank and emitted-payload reachability are the user-visible contract.

Additional Context

The current repository documentation records 100% recall@5 as the reason semantic embeddings were not activated. This new cohort provides evidence for deciding whether lexical ranking, query relaxation, or semantic retrieval produces a measurable improvement.

This issue should land before changing query-relaxation behavior so that the implementation has a failing, representative acceptance case.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions