benchmark-dialogue-history

Generates multi-turn dialogue benchmark test cases for tool-calling agents.

Updated Jul 3, 2026
One-click install
npx skills add https://github.com/CHENHUI-X/toolbox --skill benchmark-dialogue-history-chenhui-x
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: benchmark-dialogue-history
Source: https://github.com/CHENHUI-X/toolbox/tree/main/codex-skill/agents/benchmark-dialogue-history
Command: npx skills add https://github.com/CHENHUI-X/toolbox --skill benchmark-dialogue-history-chenhui-x

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Building benchmark test datasets for tool-calling agents (customer service, assistants, query/operation agents) is error-prone: distributions drift, dialogue histories contradict the data snapshot, injected language noise looks artificial, and edge-case coverage is uneven. This Skill provides a complete, project-agnostic methodology for constructing controlled, reproducible multi-turn dialogue benchmark cases. ## Core Features & Use Cases - CaseSpec-driven generation architecture: Orthogonally enumerate case specifications with exact quota allocation (largest remainder method) for hard distribution targets like turn-count tiers, and weighted sampling with conditional degradation for style dimensions. - Four-layer history constraints: Structural skeleton, data self-consistency (no forward/reverse fabrication, progressive state visibility), reference naturalness (real and unique antecedents, no verbatim repetition), plus lightweight heuristic validation with transparent failure marking. - Language noise injection: Prompt-driven noise styles including ASR errors split by severity, homophone typos, colloquialisms, and ambiguous references, with noise restricted to the current user turn only. - Boundary/fallback test pool: Subtype design for chit-chat, misrouted commands, out-of-scope requests, factually invalid premises, truly unresolvable ambiguity, and sensitive content with safe construction patterns. - Use Case: When asked to build a benchmark or test dataset for any tool-calling agent, use this Skill to design the case taxonomy, align the design draft with the user at a mandatory checkpoint, then generate validated cases at scale. ## Quick Start Use this skill to design and generate a multi-turn dialogue benchmark test dataset for my customer service agent, starting with a design draft of case categories, turn distributions, and noise styles for my review.

Frequently Asked Questions about benchmark-dialogue-history

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a benchmark test dataset for a tool-calling agent?

Use a CaseSpec-driven approach: first enumerate case specifications (category, history turns, language style, follow-up flags) with deterministic code, then have an LLM fill in content per spec. This guarantees distribution targets like turn-count ratios are met exactly rather than relying on LLM sampling luck.

How to generate realistic multi-turn dialogue history for agent testing?

Apply four constraint layers: a numbered role skeleton with strict alternation, data self-consistency against a single fixed snapshot, natural reference with real and unique antecedents, and lightweight heuristic validation. Failed cases are marked in validation fields rather than silently dropped.

How do I inject ASR or typo noise into test user inputs?

Write noise instructions as natural language prompts with candidate word tables and let the LLM rewrite the user input, instead of regex-based character replacement. Split ASR errors into light and heavy severity tiers, and keep noise strictly out of history turns and reference answers.

What edge cases should an agent benchmark cover?

Include a fallback test pool with subtypes like chit-chat, misrouted commands, out-of-scope queries, factually invalid premises, truly unresolvable ambiguity, and sensitive content. Each subtype maps to a distinct expected behavior such as guided deflection, clarification questions, or brief refusal.

Why do generated dialogue histories contradict the test data snapshot?

Contradictions come from missing data anchoring: the LLM fabricates entities not in the snapshot or denies ones that exist. Fix this with explicit anchoring instructions, cross-checks between fixed fallback phrases and actual field states, and constraining progress markers to actual history length.

When should benchmark case generation pause for human review?

Always pause after drafting the design (category taxonomy, distribution ratios, fallback pool quotas, output schema) and wait for explicit user confirmation before writing generation code or calling the LLM. This mandatory checkpoint prevents building on unvalidated assumptions.