[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-datadog-labs-agent-observability-experiment-analyzer":3,"mdc-8u7c23-key":39,"related-repo-datadog-labs-agent-observability-experiment-analyzer":4281,"related-org-datadog-labs-agent-observability-experiment-analyzer":4377},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":28,"repoUrl":29,"updatedAt":30,"license":31,"forks":32,"topics":33,"repo":34,"sourceUrl":37,"mdContent":38},"agent-observability-experiment-analyzer","analyze LLM experiment results","Analyze LLM experiment results. Handles single or comparative experiments, exploratory or Q&A modes. Use when user says \"analyze experiment\", \"compare experiments\", \"analyze against baseline\", or provides one or two experiment IDs for analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"datadog-labs","Datadog Labs","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fdatadog-labs.png",[12,16,19,22,25],{"name":13,"slug":14,"type":15},"Observability","observability","tag",{"name":17,"slug":18,"type":15},"LLM","llm",{"name":20,"slug":21,"type":15},"Datadog","datadog",{"name":23,"slug":24,"type":15},"Evals","evals",{"name":26,"slug":27,"type":15},"Analytics","analytics",145,"https:\u002F\u002Fgithub.com\u002Fdatadog-labs\u002Fagent-skills","2026-06-19T09:04:21.212498",null,19,[],{"repoUrl":29,"stars":28,"forks":32,"topics":35,"description":36},[],"Public repository for Datadog Agent Skills","https:\u002F\u002Fgithub.com\u002Fdatadog-labs\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fagent-observability\u002Fagent-observability-experiment-analyzer","---\nname: agent-observability-experiment-analyzer\ndescription: Analyze LLM experiment results. Handles single or comparative experiments, exploratory or Q&A modes. Use when user says \"analyze experiment\", \"compare experiments\", \"analyze against baseline\", or provides one or two experiment IDs for analysis.\n---\n\n## Backend\n\n**Detection** — At the start of every invocation, before taking any action, determine which backend to use:\n\n1. If the user passed `--backend pup` anywhere in their invocation → use **pup mode** immediately, regardless of whether MCP tools are present. Skip steps 2–4.\n2. Check whether MCP tools are present in your active tool list. The canonical signal is whether a tool named `get_llmobs_experiment_summary` (with or without the `mcp__datadog-llmo-mcp__` prefix) appears in your available tools.\n3. If MCP tools are present → use **MCP mode** throughout. **Tool name binding:** note the exact name under which `get_llmobs_experiment_summary` appears in your active tool list and use that exact name (prefixed or unprefixed) for every MCP tool call this invocation. All other experiment tools follow the same naming convention.\n4. If MCP tools are absent → check whether `pup` is executable: run `pup --version` via Bash. A JSON response containing `\"version\"` confirms pup is available.\n5. If pup responds → use **pup mode** throughout. Translate every MCP tool call to its pup equivalent using the Tool Reference appendix at the bottom of this file.\n6. If neither is available → stop and tell the user:\n   > \"Neither the Datadog MCP server nor the pup CLI is available. Connect the MCP server (`claude mcp add --scope user --transport http datadog-llmo-mcp 'https:\u002F\u002Fmcp.datadoghq.com\u002Fapi\u002Funstable\u002Fmcp-server\u002Fmcp?toolsets=llmobs'`) or install pup.\"\n\n`--backend pup` is accepted anywhere in the invocation arguments and is stripped before passing remaining args to the skill logic.\n\n**pup invocation rules:**\n- Invoke via Bash: `pup llm-obs \u003Csubcommand> [flags]`\n- pup always outputs JSON. Parse directly — no content-block unwrapping (unlike MCP results, which may wrap JSON in `[{\"type\": \"text\", \"text\": \"\u003Cjson>\"}]`).\n- If pup returns an auth error, tell the user to run `pup auth login` and stop.\n- Parallelization: issue multiple Bash tool calls in a single message (one pup command per call).\n\n**Invocation ID:** At the very start of each invocation, before any MCP tool call, generate an 8-character hex invocation ID (e.g., `3a9f1c2b`). Keep it constant for the entire invocation.\n\n**Intent tagging:** On every MCP tool call, prefix `telemetry.intent` with `skill:agent-observability-experiment-analyzer[\u003Cinv_id>] — ` followed by a description of why the tool is being called. On the **first MCP tool call only**, use `skill:agent-observability-experiment-analyzer:start[\u003Cinv_id>] — ` instead (note the `:start` suffix). Example first call: `skill:agent-observability-experiment-analyzer:start[3a9f1c2b] — Phase 1: get experiment summary to orient analysis`\n\n# Unified Experiment Analyzer\n\nAnalyzes one or two LLM experiments. Supports four modes based on inputs:\n\n| Inputs | Mode |\n|--------|------|\n| 2 IDs, no question | Comparative Exploratory |\n| 2 IDs + question | Comparative Q&A |\n| 1 ID, no question | Single Exploratory |\n| 1 ID + question | Single Q&A |\n\n## Usage\n\n```\n\u002Fagent-observability-experiment-analyzer \u003Cexperiment_id_1> [experiment_id_2] [question text] [--output agent|file|notebook]\n```\n\nArguments: $ARGUMENTS\n\n## Available Tools\n\n> **Note:** Tool names below are shown with an example `mcp__\u003Cserver>__` prefix. The actual prefix depends on the environment and MCP server name — it may differ or be absent entirely. Always call tools using the exact name visible in your active tool list (see Backend Detection step 3).\n\n| Tool | Purpose |\n|------|---------|\n| `mcp__datadog-llmo-mcp__get_llmobs_experiment_summary` | Get total events, error count, metrics stats, available dimensions |\n| `mcp__datadog-llmo-mcp__list_llmobs_experiment_events` | Query events with filters, sorting, pagination |\n| `mcp__datadog-llmo-mcp__get_llmobs_experiment_event` | Get full event details (input, output, expected_output, metrics) |\n| `mcp__datadog-llmo-mcp__get_llmobs_experiment_metric_values` | Get metric stats overall and segmented by dimension. Use `segment_by_dimension` (not `segment_dimension`) to segment; optionally `segment_dimension_value` to filter to a specific value. |\n| `mcp__datadog-llmo-mcp__get_llmobs_experiment_dimension_values` | List unique values for a dimension with counts |\n| `mcp__datadog-mcp-core__create_datadog_notebook` | Export report as a Datadog notebook |\n\n---\n\n## Phase 0 — Mode & Output Resolution\n\nParse $ARGUMENTS:\n1. Extract one or two UUID-format strings as experiment IDs (first = baseline\u002Fprimary, second = candidate).\n2. Extract `--output agent|file|notebook` flag if present.\n3. The remaining text (after IDs and flags) is the question, if any.\n\n**Mode determination:**\n- 2 IDs + question → Comparative Q&A\n- 2 IDs, no question → Comparative Exploratory\n- 1 ID + question → Single Q&A\n- 1 ID, no question → Single Exploratory\n\n**Output mode determination:**\n\nIf `--output` was provided in arguments, use that mode and skip asking.\n\nOtherwise, ask two **separate sequential** `AskUserQuestion` calls before proceeding — never combined into a single call:\n\n1. **Analysis type**: If no question text was provided in the arguments, ask whether the user wants exploratory analysis or has a specific question. Skip this call only if the user's intent is already clear from context (e.g. they typed a question alongside the IDs).\n2. **Output destination**: If `--output` was not specified, ask where to deliver the report (chat, file, or Datadog notebook). Always ask this as its own standalone call.\n\n**Output modes:**\n1. **Agent (default):** Display the full report in the conversation.\n2. **File:** Before starting, propose a path:\n   `evals\u002Freports\u002FYYYY-MM-DD-\u003Cexperiment-slug>-analysis.md`\n   Present it to the user and let them confirm or adjust. Then proceed.\n3. **Notebook:** Use `mcp__datadog-mcp-core__create_datadog_notebook` at the end. In pup mode, use `pup notebooks create --title \"TITLE\" --file \u002Ftmp\u002Fnb_cells.json` instead (see Tool Reference). If neither MCP nor pup is available, output these setup instructions instead of failing:\n   ```\n   To enable Datadog notebook export, add the MCP server:\n     claude mcp add --transport http datadog-mcp https:\u002F\u002Fmcp.datadoghq.com\u002Fapi\u002Funstable\u002Fmcp-server\n   See: https:\u002F\u002Fdocs.datadoghq.com\u002Fbits_ai\u002Fmcp_server\u002Fsetup\u002F\n   ```\n   Then ask: \"Would you like to fall back to file or agent output instead?\"\n   See Phase 5 for full notebook call details.\n\nAfter resolving mode and output, proceed to Phase 1. There will be one additional `AskUserQuestion` interaction at Phase 1.5 before the deep analysis begins.\n\n---\n\n## Phase 1 — Orient\n\n**Comparative:** Call `get_llmobs_experiment_summary` for both experiments. Produce a side-by-side comparison:\n- Scale: total samples and error count for each\n- Metrics: which metrics exist in each; which are shared\n- Dimensions: which dimensions exist in each; which are shared\n- Immediate red flags (errors present, missing metrics, sparse data)\n- Obvious improvements or regressions visible at the summary level\n\nWhen `error_count > 0`, call `get_llmobs_experiment_dimension_values` for `error_type` and report the breakdown by exception class (e.g. \"2 errors: `asyncio.exceptions.cancellederror`\"). Errors mean the executor threw an unhandled exception — no eval scores were produced for those samples. Do not report a percentage; report the count and type(s).\n\n**Single:** Call `get_llmobs_experiment_summary` for the experiment. Determine:\n- Total samples, and error count (with `error_type` breakdown if non-zero)\n- Available metrics grouped by `metric_type` as returned by the summary (`score`, `boolean`, `categorical`). Do not infer semantic groupings or categories from label name patterns or prefixes — the label string is not a reliable signal for what a metric measures.\n- Classify each metric using the statistics already returned by the summary (mean, min, max). Do not infer metric meaning from label names or prefixes. Use the classifications defined in Phase 1.5 when referencing metrics throughout the report.\n- Available dimensions for segmentation\n- Any immediate red flags\n\n---\n\n## Phase 1.5 — Metrics Selection\n\nAfter completing Phase 1, run the following three steps before any `AskUserQuestion`.\n\n**Step 1 — Classify every metric** using summary statistics only (no additional tool calls):\n\n| Class | Condition | Meaning |\n|---|---|---|\n| `always_zero` | `max == 0` | Feature disabled or not implemented — no signal |\n| `perfect` | `min == 1` | Always passes — no diagnostic signal |\n| `saturated` | `mean ≥ 0.99` and `min \u003C 1` | Rarely fails — low diagnostic value |\n| `struggling` | `mean \u003C 0.70` | Meaningful failure rate — highest diagnostic value |\n| `interesting` | `0.70 ≤ mean \u003C 0.99` and `min \u003C max` | Partial failures — moderate diagnostic value |\n\n**Step 2 — Print the full metric table to chat** before asking any question. This gives the user complete visibility — never truncated by option limits. Format:\n\n```\nFound N metrics. Full breakdown:\n\n| Metric | Mean | Class |\n|--------|------|-------|\n| \u003Clabel> | \u003Cmean> | ⚠️ Struggling |\n| \u003Clabel> | \u003Cmean> | Interesting |\n| \u003Clabel> | \u003Cmean> | Saturated |\n| \u003Clabel> | 1.000 | Perfect (no signal) |\n| \u003Clabel> | 0.000 | Always zero (disabled?) |\n```\n\nFlag any `always_zero` metrics with a note — e.g. \"N metrics always score 0 and appear to be disabled features; they will be excluded from suggested groupings.\"\n\n**Step 3 — AskUserQuestion** with options built entirely from the computed classes:\n\nGenerate options dynamically based on what is actually present in the data. Do **not** invent option names from label prefixes.\n\n- **\"Struggling metrics (N) — Recommended\"**: only shown if N ≥ 1. Description explicitly lists each metric label and its mean (e.g. \"`open_answer` 0.33, `c_permanence` 0.68\"). This is the grounded suggestion — based on observed pass rates, not label names. If there are no struggling metrics, replace this option with **\"Lowest-performing metrics (N)\"** covering the bottom N by mean.\n- **\"Interesting + struggling (N)\"**: shown only if there are interesting-class metrics in addition to struggling ones. Description lists them with means.\n- **\"All metrics (N)\"**: always shown. Note in the description that always-zero and perfect metrics add noise but are included.\n- **\"A specific metric\"**: always shown. Description says: *\"Choose one from the table printed above.\"*\n\n**If the user selects \"A specific metric\"**, ask a second `AskUserQuestion` that shows the **4 metrics with the lowest mean** as labeled options (label = metric name, description = `mean: X.XX — class`). In the question text, explicitly say: *\"Or type any metric name from the table above into 'Other'.\"* The `always_zero` and `perfect` metrics must not appear in the 4 options (they have no diagnostic value); restrict the 4 to `struggling` and `interesting` classes only. After the user picks one, restrict all analysis in Phases 2–4 to that single metric only.\n\n**Scope enforcement:**\n- If the user accepts \"all\", proceed with all metrics (including constant ones, but note their low signal value).\n- If the user selects a grouping or a specific metric, restrict all analysis in Phases 2–4 strictly to that selection. Do not call `get_llmobs_experiment_metric_values` for any metric outside the selection.\n\n---\n\n## Phase 2 — Signal Discovery + UI Links\n\n**Comparative:** Using only the metrics selected in Phase 1.5 (intersected with shared metrics) and shared dimensions, identify:\n- Segments where the candidate outperforms the baseline\n- Segments where the candidate regresses\n- Error types present in one but rare in the other\n- Distribution shifts or coverage gaps\n- Tradeoffs (e.g., higher recall, lower precision)\n\nGenerate Datadog comparison UI links:\n- Base URL: `https:\u002F\u002Fapp.datadoghq.com\u002Fllm\u002Fexperiment-comparison`\n- Required params: `baselineExperimentId`, `experimentIds` (candidate%2Cbaseline), `tableView=all`\n- Optional (include if discoverable): `project`, `compareDatasetId`, `selectedEvaluation`\n- `selectedEvaluation` priority: overall\u002Foverall_score\u002Frubric metric → primary metric → first shared metric\n- Generate 2–4 links: primary comparison, regression view, calibration view (if applicable), worst-segment view (only if supported — never fabricate filters)\n\n**Single:** Measure per-metric performance across all dimensions for only the metrics selected in Phase 1.5. Identify:\n- Worst-performing segments (by metric × dimension)\n- Any segments with surprising pass rates\n- Overall pass rates and variance\n\nGenerate Datadog experiment UI link:\n- `https:\u002F\u002Fapp.datadoghq.com\u002Fllm\u002Fexperiments\u002F{experiment_id}`\n\n---\n\n## Phase 3 — Deep Dives\n\nRun all necessary deep dives automatically. Do not ask for approval or pause. Scope all deep dives strictly to the metrics selected in Phase 1.5 — do not call `get_llmobs_experiment_metric_values` for any metric outside the selection.\n\n**Q&A modes:** Focus deep dives on what is needed to answer the question directly. Pull specific samples, segment by relevant dimensions, inspect examples.\n\n**Exploratory modes:** Investigate the most interesting signals broadly:\n- Per-segment and per-class delta analysis (comparative) or pass-rate analysis (single)\n- Error overlap vs. unique failure mode analysis\n- Sampling and qualitative inspection of representative failures (2–5 per issue)\n- Clustered error theme analysis\n\nRules:\n- Prefer cheap, high-signal analyses first; do not stop early.\n- Mask or redact PII in all outputs.\n- Avoid destructive actions.\n\nFor each sampled event, generate a direct span link:\n`https:\u002F\u002Fapp.datadoghq.com\u002Fllm\u002Fexperiments\u002F{experiment_id}?selectedTab=overview&sp=[{\"p\":{\"experimentId\":\"{experiment_id}\",\"spanId\":\"{span_id}\"},\"i\":\"experiment-details\"}]&spanId={span_id}`\nThe `sp` query parameter value must be percent-encoded before rendering (e.g. `[` → `%5B`, `{` → `%7B`, `\"` → `%22`, `}` → `%7D`, `]` → `%5D`).\n\nFor each Deep Dive segment, generate a direct link to view those samples in the (candidate) experiment:\n`https:\u002F\u002Fapp.datadoghq.com\u002Fllm\u002Fexperiments\u002F{experiment_id}?selectedTab=overview&filter[{dimension}]={value}`\nIf you are not confident the filter URL format works for this dimension, omit the filter params and link to the experiment root instead. Never fabricate filter URLs.\n\n---\n\n## Phase 4 — Synthesis\n\n**Comparative Exploratory:**\n- Clear wins where the candidate improves on the baseline\n- Clear regressions or risks the candidate introduces\n- Neutral or unchanged areas\n- Root-cause hypotheses (1–4), tied to evidence\n- Prioritized recommendations: ship as-is \u002F block \u002F gate by segment \u002F combine behaviors\n\n**Comparative Q&A:**\n- Direct answer to the question with a clear verdict\n- Supporting evidence (metrics, percentages, event examples)\n- Relevant context (e.g., caveats, data limitations)\n\n**Single Exploratory:**\n- Overall performance assessment\n- Worst-performing segments and root causes\n- Hypotheses for why failures occur\n- Recommended next experiments\n\n**Single Q&A:**\n- Direct answer to the question with a clear verdict\n- Supporting evidence from the experiment data\n\nAll modes: open with a one-line issue type tally — e.g. \"3 agent issues, 1 evaluator\u002Fdataset issue, 1 ambiguous\" — before the detailed findings. Use quantified deltas\u002Frates wherever possible. Redact PII.\n\n**Always produce both `## Summary & Recommendations` and `## Synthesis` sections regardless of experiment complexity, how many metrics exist, or how quickly the answer is apparent.** Do not skip Summary because the findings are simple or obvious. Do not skip Synthesis because you've already covered the findings in Deep Dives. These two sections are the most portable output of the analysis — they are what a reader encounters first and last.\n\n---\n\n## Phase 5 — Output Delivery\n\n**Agent:** Present the full report in the conversation using the report format below.\n\n**File:** Write the report to the pre-confirmed path. Confirm with: \"Report saved to `\u003Cpath>`.\"\n\n**Notebook:** Call `mcp__datadog-mcp-core__create_datadog_notebook` with the following parameters:\n\n- **`name`** (by mode):\n  | Mode | Name |\n  |------|------|\n  | Comparative Exploratory | `Experiment Analysis: {baseline_short} (Baseline) vs {candidate_short} (Candidate) — YYYY-MM-DD` |\n  | Comparative Q&A | `Experiment Q&A: {baseline_short} vs {candidate_short} — YYYY-MM-DD` |\n  | Single Exploratory | `Experiment Analysis: {experiment_short} — YYYY-MM-DD` |\n  | Single Q&A | `Experiment Q&A: {experiment_short} — YYYY-MM-DD` |\n  where `short` = first 8 characters of the UUID.\n\n- **`cells`**: one cell per report section — do NOT put the entire report in a single cell. Structure:\n  - Cell 1 — **Summary & Recommendations** containing three `###` subheaders: **Experiment** (link + executive summary), **Key Findings** (bullets), **Recommendations** (numbered list) — **always present, always first, never skipped regardless of experiment complexity**\n  - Cell 2 — Orientation table\n  - Cell 3 — What Changed (comparative modes only; omit for single)\n  - Cell 4 — Signals \u002F Answer to Question\n  - Cells 5…N — one cell per Deep Dive Finding\n  - Cell N+1 — **Synthesis** (issue tally, Overall Performance Assessment, Worst-Performing Segments, Root Cause Hypothesis, Recommended Next Experiments) — **always present, always second-to-last**\n  - Cell N+2 — UI Links\n\n  Omit the `# Experiment Analysis Report` top-level heading from all cells — it is already shown as the notebook title.\n- **`time`**: `{ \"live_span\": \"1h\" }`\n\nAfter the notebook is created, output the URL in chat: `\"Report exported to notebook: \u003Curl>\"`\n\nIf the tool is unavailable, follow the fallback instructions in Phase 0.\n\n---\n\n## Phase 6 — Conversational Follow-up\n\nAfter delivering the report, append a follow-up section:\n\n```\n---\n## Want to explore further?\n\nHere are a few directions based on the findings:\n\n1. [Specific question derived from actual findings — e.g., \"Want me to dig deeper into why the SQL scenarios regressed in the candidate?\"]\n2. [Another specific follow-up — e.g., \"Should I compare error patterns between the two failing clusters?\"]\n3. [A third option if relevant]\n4. [If failures or regressions were found: \"To investigate production failures driving these results, run `\u002Fagent-observability-trace-rca` on the same ml_app.\"]\n\nDo you have any other questions about this analysis?\n```\n\nStay active after the report. Answer follow-up questions using the same MCP tools, referencing findings already gathered. Do not re-run analyses you've already performed unless new questions require it.\n\n---\n\n## Report Format\n\nLink rules:\n- **Experiment IDs**: Wherever a full experiment UUID appears, render it as a Markdown link to `https:\u002F\u002Fapp.datadoghq.com\u002Fllm\u002Fexperiments\u002F{full_uuid}`.\n- **Comparative table column headers**: In the Orientation table and in every subsequent table that has Baseline\u002FCandidate columns, wrap the *entire* column header as a link — not just the short ID. Format: `[Baseline \\`{short_id}\\`]({baseline_url})` and `[Candidate \\`{short_id}\\`]({candidate_url})`. This makes the full header cell clickable, not just the ID portion.\n\n```markdown\n# Experiment Analysis Report\n\n> **Question:** {original question text}\n> _(Q&A modes only — omit for Exploratory modes)_\n\n## Summary & Recommendations\n\n### Experiment\n\n[Comparative: [`{baseline_short}`]({baseline_url}) (Baseline) vs [`{candidate_short}`]({candidate_url}) (Candidate) — [Compare]({compare_url}) — Single: [`{experiment_short}`]({experiment_url})]\n\n[2–3 sentence executive summary. Open with \"This is a **{Mode}** analysis...\" where {Mode} is one of: Comparative Exploratory, Comparative Q&A, Single Exploratory, Single Q&A. Include experiment(s) purpose, scale, and the headline finding with specific numbers.]\n\n[If the report uses opaque dimension values (e.g. category labels like b1\u002Fb2\u002Fb3\u002Fbx), add a `#### Dataset Categories` sub-subsection here — one bullet per value with name bolded and a brief description. Omit if all dimension values are self-explanatory.]\n\n### Key Findings\n\n- **{Finding 1}**: one-line description with numbers (e.g. \"+4.2pp on `tool_accuracy` across all segments\")\n- **{Finding 2}**: one-line description\n- **{Finding 3}** (if present): one-line description\n[For Q&A modes: one-line verdict bullet + one-line rationale bullet]\n\n### Recommendations\n\n1. **{Recommendation 1}**: specific, actionable next step tied to a finding\n2. **{Recommendation 2}**: specific, actionable next step\n3. **{Recommendation 3}** (if present): specific, actionable next step\n[Omit this subsection for Q&A modes unless a clear action follows from the answer.]\n\n## Orientation\n\n[Side-by-side table for comparative; summary table for single. Include: samples, errors (count + `error_type` breakdown if non-zero, otherwise \"none\"), metrics, dimensions. Experiment IDs in column headers must be Markdown links.]\n\n\n## What Changed\n\n[Comparative modes only. Table of differences between baseline and candidate: model, toolset\u002Fskill profile,\ndataset, evaluator schema, and any other metadata differences detectable from the summary data.\nIf no differences are detectable, write: \"No configuration differences detected between experiments.\"]\n\n## [Signals | Answer to Question]\n\n[For exploratory: ranked table of signals\u002Fsegments with metric deltas and impact counts.]\n[For Q&A: direct answer with verdict, then supporting evidence.]\n\n## Deep Dive Findings\n\n### [Issue\u002FFinding Title]\n\n**Segment**: `[dimension=value]` | **Impact**: N samples | **Severity**: metric pass rate = X% | [View samples](https:\u002F\u002Fapp.datadoghq.com\u002Fllm\u002Fexperiments\u002F{experiment_id}?selectedTab=overview&filter[{dimension}]={value})\n\n**Issue type**: `Agent` — the evaluator is sound; the agent output is the problem. | `Evaluator\u002FDataset` — the agent output may be correct; the rubric, ground truth labels, or scoring logic is suspect. | `Ambiguous` — cannot determine from available evidence whether the agent or evaluator is at fault; flag for manual inspection.\n\n**What's happening**: [1–2 sentences: key observation and metric impact only]\n\n**Representative examples**:\n- [Span link]: [input → output → expected, what went wrong]\n\n**Root cause hypothesis**: [Category]: [Explanation tied to evidence]\n\n**Recommendation**: [Specific, actionable next step]\n\n---\n[Repeat for each major issue]\n\n## Synthesis\n\n[Required in all modes. Comes after all Deep Dive Findings, before UI Links.]\n\n**Issue tally**: [N agent issues, N evaluator\u002Fdataset issues, N ambiguous]\n\n### Overall Performance Assessment\n[2–4 sentences on overall quality: what the experiment shows, whether the app\u002Fmodel is production-ready on this task, key numbers.]\n\n### Worst-Performing Segments\n[Bullet list: which dimension values or conditions most reliably predict failure. Include metric values.]\n\n### Root Cause Hypothesis\n[The single most likely root cause across all findings. If multiple independent root causes, list them ranked by impact. Each hypothesis must be tied to specific evidence, not to label names or general reasoning.]\n\n### Recommended Next Experiments\n[2–4 concrete, specific follow-up experiments. Each should be actionable: e.g. \"Re-run with `max_turns=40` to test whether turn exhaustion is the primary driver, not model quality\" not \"Investigate turn limits further.\"]\n\n## UI Links\n\n[All generated Datadog UI links with labels]\n```\n\n---\n\n## Operating Rules\n\n- Do not assume anything about the experiment (model, task, metrics, schema, dimensions). Infer everything by inspecting the data.\n- Ground all conclusions in specific evidence: event IDs, counts, percentages.\n- Show math: include counts and rates, not just qualitative claims.\n- Avoid speculative explanations not supported by observed evidence.\n- Mask or redact PII in all user-visible output.\n\n---\n\n## Tool Reference\n\nThis appendix applies only in **pup mode**. In MCP mode, use the tool names in the workflow sections directly.\n\n### Experiments\n\n| MCP Tool | pup Command |\n|---|---|\n| `get_llmobs_experiment_summary(experiment_id)` | `pup llm-obs experiments summary EXPERIMENT_ID` |\n| `list_llmobs_experiment_events(experiment_id, ...)` | `pup llm-obs experiments events list EXPERIMENT_ID [--filter-metric-label L] [--sort-by-metric M] [--sort-direction asc\\|desc] [--limit N]` — confirm filter\u002Fsort flag names with `pup llm-obs experiments events list --help` before use |\n| `get_llmobs_experiment_event(experiment_id, event_id)` | `pup llm-obs experiments events get EXPERIMENT_ID EVENT_ID` |\n| `get_llmobs_experiment_metric_values(experiment_id, metric_label, ...)` | `pup llm-obs experiments metric-values EXPERIMENT_ID --metric-label L [--segment-by-dimension D] [--segment-dimension-value V]` |\n| `get_llmobs_experiment_dimension_values(experiment_id, dimension_key)` | `pup llm-obs experiments dimension-values EXPERIMENT_ID --dimension-key K` |\n\n### Notebooks\n\n| MCP Tool | pup Command |\n|---|---|\n| `create_datadog_notebook(name, cells, ...)` | `pup notebooks create --title \"TITLE\" --file \u002Ftmp\u002Fnb_cells.json` — confirm exact flags with `pup notebooks create --help` |\n\nThe cells file is a JSON array of cell objects:\n```json\n[{\"attributes\": {\"definition\": {\"type\": \"markdown\", \"text\": \"## Section\\n\\nContent.\"}}, \"type\": \"notebook_cells\"}]\n```\n- Never show internal tool calls, schemas, or implementation details to the user.\n",{"data":40,"body":41},{"name":4,"description":6},{"type":42,"children":43},"root",[44,53,65,200,210,218,264,282,337,344,349,429,435,447,452,458,479,627,631,637,642,668,676,699,707,720,740,770,778,845,857,860,866,883,911,948,964,1030,1033,1039,1051,1061,1233,1243,1252,1264,1274,1286,1358,1423,1431,1452,1455,1461,1470,1498,1503,1583,1592,1610,1615,1627,1630,1636,1647,1657,1667,1690,1695,1713,1805,1818,1821,1827,1835,1863,1871,1889,1897,1920,1928,1940,1945,1970,1973,1979,1989,2006,2021,2281,2292,2297,2300,2306,2311,2320,2325,2328,2334,2339,2399,3831,3834,3840,3868,3871,3877,3888,3895,4032,4038,4086,4091,4267,4275],{"type":45,"tag":46,"props":47,"children":49},"element","h2",{"id":48},"backend",[50],{"type":51,"value":52},"text","Backend",{"type":45,"tag":54,"props":55,"children":56},"p",{},[57,63],{"type":45,"tag":58,"props":59,"children":60},"strong",{},[61],{"type":51,"value":62},"Detection",{"type":51,"value":64}," — At the start of every invocation, before taking any action, determine which backend to use:",{"type":45,"tag":66,"props":67,"children":68},"ol",{},[69,91,112,138,167,178],{"type":45,"tag":70,"props":71,"children":72},"li",{},[73,75,82,84,89],{"type":51,"value":74},"If the user passed ",{"type":45,"tag":76,"props":77,"children":79},"code",{"className":78},[],[80],{"type":51,"value":81},"--backend pup",{"type":51,"value":83}," anywhere in their invocation → use ",{"type":45,"tag":58,"props":85,"children":86},{},[87],{"type":51,"value":88},"pup mode",{"type":51,"value":90}," immediately, regardless of whether MCP tools are present. Skip steps 2–4.",{"type":45,"tag":70,"props":92,"children":93},{},[94,96,102,104,110],{"type":51,"value":95},"Check whether MCP tools are present in your active tool list. The canonical signal is whether a tool named ",{"type":45,"tag":76,"props":97,"children":99},{"className":98},[],[100],{"type":51,"value":101},"get_llmobs_experiment_summary",{"type":51,"value":103}," (with or without the ",{"type":45,"tag":76,"props":105,"children":107},{"className":106},[],[108],{"type":51,"value":109},"mcp__datadog-llmo-mcp__",{"type":51,"value":111}," prefix) appears in your available tools.",{"type":45,"tag":70,"props":113,"children":114},{},[115,117,122,124,129,131,136],{"type":51,"value":116},"If MCP tools are present → use ",{"type":45,"tag":58,"props":118,"children":119},{},[120],{"type":51,"value":121},"MCP mode",{"type":51,"value":123}," throughout. ",{"type":45,"tag":58,"props":125,"children":126},{},[127],{"type":51,"value":128},"Tool name binding:",{"type":51,"value":130}," note the exact name under which ",{"type":45,"tag":76,"props":132,"children":134},{"className":133},[],[135],{"type":51,"value":101},{"type":51,"value":137}," appears in your active tool list and use that exact name (prefixed or unprefixed) for every MCP tool call this invocation. All other experiment tools follow the same naming convention.",{"type":45,"tag":70,"props":139,"children":140},{},[141,143,149,151,157,159,165],{"type":51,"value":142},"If MCP tools are absent → check whether ",{"type":45,"tag":76,"props":144,"children":146},{"className":145},[],[147],{"type":51,"value":148},"pup",{"type":51,"value":150}," is executable: run ",{"type":45,"tag":76,"props":152,"children":154},{"className":153},[],[155],{"type":51,"value":156},"pup --version",{"type":51,"value":158}," via Bash. A JSON response containing ",{"type":45,"tag":76,"props":160,"children":162},{"className":161},[],[163],{"type":51,"value":164},"\"version\"",{"type":51,"value":166}," confirms pup is available.",{"type":45,"tag":70,"props":168,"children":169},{},[170,172,176],{"type":51,"value":171},"If pup responds → use ",{"type":45,"tag":58,"props":173,"children":174},{},[175],{"type":51,"value":88},{"type":51,"value":177}," throughout. Translate every MCP tool call to its pup equivalent using the Tool Reference appendix at the bottom of this file.",{"type":45,"tag":70,"props":179,"children":180},{},[181,183],{"type":51,"value":182},"If neither is available → stop and tell the user:\n",{"type":45,"tag":184,"props":185,"children":186},"blockquote",{},[187],{"type":45,"tag":54,"props":188,"children":189},{},[190,192,198],{"type":51,"value":191},"\"Neither the Datadog MCP server nor the pup CLI is available. Connect the MCP server (",{"type":45,"tag":76,"props":193,"children":195},{"className":194},[],[196],{"type":51,"value":197},"claude mcp add --scope user --transport http datadog-llmo-mcp 'https:\u002F\u002Fmcp.datadoghq.com\u002Fapi\u002Funstable\u002Fmcp-server\u002Fmcp?toolsets=llmobs'",{"type":51,"value":199},") or install pup.\"",{"type":45,"tag":54,"props":201,"children":202},{},[203,208],{"type":45,"tag":76,"props":204,"children":206},{"className":205},[],[207],{"type":51,"value":81},{"type":51,"value":209}," is accepted anywhere in the invocation arguments and is stripped before passing remaining args to the skill logic.",{"type":45,"tag":54,"props":211,"children":212},{},[213],{"type":45,"tag":58,"props":214,"children":215},{},[216],{"type":51,"value":217},"pup invocation rules:",{"type":45,"tag":219,"props":220,"children":221},"ul",{},[222,233,246,259],{"type":45,"tag":70,"props":223,"children":224},{},[225,227],{"type":51,"value":226},"Invoke via Bash: ",{"type":45,"tag":76,"props":228,"children":230},{"className":229},[],[231],{"type":51,"value":232},"pup llm-obs \u003Csubcommand> [flags]",{"type":45,"tag":70,"props":234,"children":235},{},[236,238,244],{"type":51,"value":237},"pup always outputs JSON. Parse directly — no content-block unwrapping (unlike MCP results, which may wrap JSON in ",{"type":45,"tag":76,"props":239,"children":241},{"className":240},[],[242],{"type":51,"value":243},"[{\"type\": \"text\", \"text\": \"\u003Cjson>\"}]",{"type":51,"value":245},").",{"type":45,"tag":70,"props":247,"children":248},{},[249,251,257],{"type":51,"value":250},"If pup returns an auth error, tell the user to run ",{"type":45,"tag":76,"props":252,"children":254},{"className":253},[],[255],{"type":51,"value":256},"pup auth login",{"type":51,"value":258}," and stop.",{"type":45,"tag":70,"props":260,"children":261},{},[262],{"type":51,"value":263},"Parallelization: issue multiple Bash tool calls in a single message (one pup command per call).",{"type":45,"tag":54,"props":265,"children":266},{},[267,272,274,280],{"type":45,"tag":58,"props":268,"children":269},{},[270],{"type":51,"value":271},"Invocation ID:",{"type":51,"value":273}," At the very start of each invocation, before any MCP tool call, generate an 8-character hex invocation ID (e.g., ",{"type":45,"tag":76,"props":275,"children":277},{"className":276},[],[278],{"type":51,"value":279},"3a9f1c2b",{"type":51,"value":281},"). Keep it constant for the entire invocation.",{"type":45,"tag":54,"props":283,"children":284},{},[285,290,292,298,300,306,308,313,315,321,323,329,331],{"type":45,"tag":58,"props":286,"children":287},{},[288],{"type":51,"value":289},"Intent tagging:",{"type":51,"value":291}," On every MCP tool call, prefix ",{"type":45,"tag":76,"props":293,"children":295},{"className":294},[],[296],{"type":51,"value":297},"telemetry.intent",{"type":51,"value":299}," with ",{"type":45,"tag":76,"props":301,"children":303},{"className":302},[],[304],{"type":51,"value":305},"skill:agent-observability-experiment-analyzer[\u003Cinv_id>] — ",{"type":51,"value":307}," followed by a description of why the tool is being called. On the ",{"type":45,"tag":58,"props":309,"children":310},{},[311],{"type":51,"value":312},"first MCP tool call only",{"type":51,"value":314},", use ",{"type":45,"tag":76,"props":316,"children":318},{"className":317},[],[319],{"type":51,"value":320},"skill:agent-observability-experiment-analyzer:start[\u003Cinv_id>] — ",{"type":51,"value":322}," instead (note the ",{"type":45,"tag":76,"props":324,"children":326},{"className":325},[],[327],{"type":51,"value":328},":start",{"type":51,"value":330}," suffix). Example first call: ",{"type":45,"tag":76,"props":332,"children":334},{"className":333},[],[335],{"type":51,"value":336},"skill:agent-observability-experiment-analyzer:start[3a9f1c2b] — Phase 1: get experiment summary to orient analysis",{"type":45,"tag":338,"props":339,"children":341},"h1",{"id":340},"unified-experiment-analyzer",[342],{"type":51,"value":343},"Unified Experiment Analyzer",{"type":45,"tag":54,"props":345,"children":346},{},[347],{"type":51,"value":348},"Analyzes one or two LLM experiments. Supports four modes based on inputs:",{"type":45,"tag":350,"props":351,"children":352},"table",{},[353,372],{"type":45,"tag":354,"props":355,"children":356},"thead",{},[357],{"type":45,"tag":358,"props":359,"children":360},"tr",{},[361,367],{"type":45,"tag":362,"props":363,"children":364},"th",{},[365],{"type":51,"value":366},"Inputs",{"type":45,"tag":362,"props":368,"children":369},{},[370],{"type":51,"value":371},"Mode",{"type":45,"tag":373,"props":374,"children":375},"tbody",{},[376,390,403,416],{"type":45,"tag":358,"props":377,"children":378},{},[379,385],{"type":45,"tag":380,"props":381,"children":382},"td",{},[383],{"type":51,"value":384},"2 IDs, no question",{"type":45,"tag":380,"props":386,"children":387},{},[388],{"type":51,"value":389},"Comparative Exploratory",{"type":45,"tag":358,"props":391,"children":392},{},[393,398],{"type":45,"tag":380,"props":394,"children":395},{},[396],{"type":51,"value":397},"2 IDs + question",{"type":45,"tag":380,"props":399,"children":400},{},[401],{"type":51,"value":402},"Comparative Q&A",{"type":45,"tag":358,"props":404,"children":405},{},[406,411],{"type":45,"tag":380,"props":407,"children":408},{},[409],{"type":51,"value":410},"1 ID, no question",{"type":45,"tag":380,"props":412,"children":413},{},[414],{"type":51,"value":415},"Single Exploratory",{"type":45,"tag":358,"props":417,"children":418},{},[419,424],{"type":45,"tag":380,"props":420,"children":421},{},[422],{"type":51,"value":423},"1 ID + question",{"type":45,"tag":380,"props":425,"children":426},{},[427],{"type":51,"value":428},"Single Q&A",{"type":45,"tag":46,"props":430,"children":432},{"id":431},"usage",[433],{"type":51,"value":434},"Usage",{"type":45,"tag":436,"props":437,"children":441},"pre",{"className":438,"code":440,"language":51},[439],"language-text","\u002Fagent-observability-experiment-analyzer \u003Cexperiment_id_1> [experiment_id_2] [question text] [--output agent|file|notebook]\n",[442],{"type":45,"tag":76,"props":443,"children":445},{"__ignoreMap":444},"",[446],{"type":51,"value":440},{"type":45,"tag":54,"props":448,"children":449},{},[450],{"type":51,"value":451},"Arguments: $ARGUMENTS",{"type":45,"tag":46,"props":453,"children":455},{"id":454},"available-tools",[456],{"type":51,"value":457},"Available Tools",{"type":45,"tag":184,"props":459,"children":460},{},[461],{"type":45,"tag":54,"props":462,"children":463},{},[464,469,471,477],{"type":45,"tag":58,"props":465,"children":466},{},[467],{"type":51,"value":468},"Note:",{"type":51,"value":470}," Tool names below are shown with an example ",{"type":45,"tag":76,"props":472,"children":474},{"className":473},[],[475],{"type":51,"value":476},"mcp__\u003Cserver>__",{"type":51,"value":478}," prefix. The actual prefix depends on the environment and MCP server name — it may differ or be absent entirely. Always call tools using the exact name visible in your active tool list (see Backend Detection step 3).",{"type":45,"tag":350,"props":480,"children":481},{},[482,498],{"type":45,"tag":354,"props":483,"children":484},{},[485],{"type":45,"tag":358,"props":486,"children":487},{},[488,493],{"type":45,"tag":362,"props":489,"children":490},{},[491],{"type":51,"value":492},"Tool",{"type":45,"tag":362,"props":494,"children":495},{},[496],{"type":51,"value":497},"Purpose",{"type":45,"tag":373,"props":499,"children":500},{},[501,518,535,552,593,610],{"type":45,"tag":358,"props":502,"children":503},{},[504,513],{"type":45,"tag":380,"props":505,"children":506},{},[507],{"type":45,"tag":76,"props":508,"children":510},{"className":509},[],[511],{"type":51,"value":512},"mcp__datadog-llmo-mcp__get_llmobs_experiment_summary",{"type":45,"tag":380,"props":514,"children":515},{},[516],{"type":51,"value":517},"Get total events, error count, metrics stats, available dimensions",{"type":45,"tag":358,"props":519,"children":520},{},[521,530],{"type":45,"tag":380,"props":522,"children":523},{},[524],{"type":45,"tag":76,"props":525,"children":527},{"className":526},[],[528],{"type":51,"value":529},"mcp__datadog-llmo-mcp__list_llmobs_experiment_events",{"type":45,"tag":380,"props":531,"children":532},{},[533],{"type":51,"value":534},"Query events with filters, sorting, pagination",{"type":45,"tag":358,"props":536,"children":537},{},[538,547],{"type":45,"tag":380,"props":539,"children":540},{},[541],{"type":45,"tag":76,"props":542,"children":544},{"className":543},[],[545],{"type":51,"value":546},"mcp__datadog-llmo-mcp__get_llmobs_experiment_event",{"type":45,"tag":380,"props":548,"children":549},{},[550],{"type":51,"value":551},"Get full event details (input, output, expected_output, metrics)",{"type":45,"tag":358,"props":553,"children":554},{},[555,564],{"type":45,"tag":380,"props":556,"children":557},{},[558],{"type":45,"tag":76,"props":559,"children":561},{"className":560},[],[562],{"type":51,"value":563},"mcp__datadog-llmo-mcp__get_llmobs_experiment_metric_values",{"type":45,"tag":380,"props":565,"children":566},{},[567,569,575,577,583,585,591],{"type":51,"value":568},"Get metric stats overall and segmented by dimension. Use ",{"type":45,"tag":76,"props":570,"children":572},{"className":571},[],[573],{"type":51,"value":574},"segment_by_dimension",{"type":51,"value":576}," (not ",{"type":45,"tag":76,"props":578,"children":580},{"className":579},[],[581],{"type":51,"value":582},"segment_dimension",{"type":51,"value":584},") to segment; optionally ",{"type":45,"tag":76,"props":586,"children":588},{"className":587},[],[589],{"type":51,"value":590},"segment_dimension_value",{"type":51,"value":592}," to filter to a specific value.",{"type":45,"tag":358,"props":594,"children":595},{},[596,605],{"type":45,"tag":380,"props":597,"children":598},{},[599],{"type":45,"tag":76,"props":600,"children":602},{"className":601},[],[603],{"type":51,"value":604},"mcp__datadog-llmo-mcp__get_llmobs_experiment_dimension_values",{"type":45,"tag":380,"props":606,"children":607},{},[608],{"type":51,"value":609},"List unique values for a dimension with counts",{"type":45,"tag":358,"props":611,"children":612},{},[613,622],{"type":45,"tag":380,"props":614,"children":615},{},[616],{"type":45,"tag":76,"props":617,"children":619},{"className":618},[],[620],{"type":51,"value":621},"mcp__datadog-mcp-core__create_datadog_notebook",{"type":45,"tag":380,"props":623,"children":624},{},[625],{"type":51,"value":626},"Export report as a Datadog notebook",{"type":45,"tag":628,"props":629,"children":630},"hr",{},[],{"type":45,"tag":46,"props":632,"children":634},{"id":633},"phase-0-mode-output-resolution",[635],{"type":51,"value":636},"Phase 0 — Mode & Output Resolution",{"type":45,"tag":54,"props":638,"children":639},{},[640],{"type":51,"value":641},"Parse $ARGUMENTS:",{"type":45,"tag":66,"props":643,"children":644},{},[645,650,663],{"type":45,"tag":70,"props":646,"children":647},{},[648],{"type":51,"value":649},"Extract one or two UUID-format strings as experiment IDs (first = baseline\u002Fprimary, second = candidate).",{"type":45,"tag":70,"props":651,"children":652},{},[653,655,661],{"type":51,"value":654},"Extract ",{"type":45,"tag":76,"props":656,"children":658},{"className":657},[],[659],{"type":51,"value":660},"--output agent|file|notebook",{"type":51,"value":662}," flag if present.",{"type":45,"tag":70,"props":664,"children":665},{},[666],{"type":51,"value":667},"The remaining text (after IDs and flags) is the question, if any.",{"type":45,"tag":54,"props":669,"children":670},{},[671],{"type":45,"tag":58,"props":672,"children":673},{},[674],{"type":51,"value":675},"Mode determination:",{"type":45,"tag":219,"props":677,"children":678},{},[679,684,689,694],{"type":45,"tag":70,"props":680,"children":681},{},[682],{"type":51,"value":683},"2 IDs + question → Comparative Q&A",{"type":45,"tag":70,"props":685,"children":686},{},[687],{"type":51,"value":688},"2 IDs, no question → Comparative Exploratory",{"type":45,"tag":70,"props":690,"children":691},{},[692],{"type":51,"value":693},"1 ID + question → Single Q&A",{"type":45,"tag":70,"props":695,"children":696},{},[697],{"type":51,"value":698},"1 ID, no question → Single Exploratory",{"type":45,"tag":54,"props":700,"children":701},{},[702],{"type":45,"tag":58,"props":703,"children":704},{},[705],{"type":51,"value":706},"Output mode determination:",{"type":45,"tag":54,"props":708,"children":709},{},[710,712,718],{"type":51,"value":711},"If ",{"type":45,"tag":76,"props":713,"children":715},{"className":714},[],[716],{"type":51,"value":717},"--output",{"type":51,"value":719}," was provided in arguments, use that mode and skip asking.",{"type":45,"tag":54,"props":721,"children":722},{},[723,725,730,732,738],{"type":51,"value":724},"Otherwise, ask two ",{"type":45,"tag":58,"props":726,"children":727},{},[728],{"type":51,"value":729},"separate sequential",{"type":51,"value":731}," ",{"type":45,"tag":76,"props":733,"children":735},{"className":734},[],[736],{"type":51,"value":737},"AskUserQuestion",{"type":51,"value":739}," calls before proceeding — never combined into a single call:",{"type":45,"tag":66,"props":741,"children":742},{},[743,753],{"type":45,"tag":70,"props":744,"children":745},{},[746,751],{"type":45,"tag":58,"props":747,"children":748},{},[749],{"type":51,"value":750},"Analysis type",{"type":51,"value":752},": If no question text was provided in the arguments, ask whether the user wants exploratory analysis or has a specific question. Skip this call only if the user's intent is already clear from context (e.g. they typed a question alongside the IDs).",{"type":45,"tag":70,"props":754,"children":755},{},[756,761,763,768],{"type":45,"tag":58,"props":757,"children":758},{},[759],{"type":51,"value":760},"Output destination",{"type":51,"value":762},": If ",{"type":45,"tag":76,"props":764,"children":766},{"className":765},[],[767],{"type":51,"value":717},{"type":51,"value":769}," was not specified, ask where to deliver the report (chat, file, or Datadog notebook). Always ask this as its own standalone call.",{"type":45,"tag":54,"props":771,"children":772},{},[773],{"type":45,"tag":58,"props":774,"children":775},{},[776],{"type":51,"value":777},"Output modes:",{"type":45,"tag":66,"props":779,"children":780},{},[781,791,809],{"type":45,"tag":70,"props":782,"children":783},{},[784,789],{"type":45,"tag":58,"props":785,"children":786},{},[787],{"type":51,"value":788},"Agent (default):",{"type":51,"value":790}," Display the full report in the conversation.",{"type":45,"tag":70,"props":792,"children":793},{},[794,799,801,807],{"type":45,"tag":58,"props":795,"children":796},{},[797],{"type":51,"value":798},"File:",{"type":51,"value":800}," Before starting, propose a path:\n",{"type":45,"tag":76,"props":802,"children":804},{"className":803},[],[805],{"type":51,"value":806},"evals\u002Freports\u002FYYYY-MM-DD-\u003Cexperiment-slug>-analysis.md",{"type":51,"value":808},"\nPresent it to the user and let them confirm or adjust. Then proceed.",{"type":45,"tag":70,"props":810,"children":811},{},[812,817,819,824,826,832,834,843],{"type":45,"tag":58,"props":813,"children":814},{},[815],{"type":51,"value":816},"Notebook:",{"type":51,"value":818}," Use ",{"type":45,"tag":76,"props":820,"children":822},{"className":821},[],[823],{"type":51,"value":621},{"type":51,"value":825}," at the end. In pup mode, use ",{"type":45,"tag":76,"props":827,"children":829},{"className":828},[],[830],{"type":51,"value":831},"pup notebooks create --title \"TITLE\" --file \u002Ftmp\u002Fnb_cells.json",{"type":51,"value":833}," instead (see Tool Reference). If neither MCP nor pup is available, output these setup instructions instead of failing:\n",{"type":45,"tag":436,"props":835,"children":838},{"className":836,"code":837,"language":51},[439],"To enable Datadog notebook export, add the MCP server:\n  claude mcp add --transport http datadog-mcp https:\u002F\u002Fmcp.datadoghq.com\u002Fapi\u002Funstable\u002Fmcp-server\nSee: https:\u002F\u002Fdocs.datadoghq.com\u002Fbits_ai\u002Fmcp_server\u002Fsetup\u002F\n",[839],{"type":45,"tag":76,"props":840,"children":841},{"__ignoreMap":444},[842],{"type":51,"value":837},{"type":51,"value":844},"\nThen ask: \"Would you like to fall back to file or agent output instead?\"\nSee Phase 5 for full notebook call details.",{"type":45,"tag":54,"props":846,"children":847},{},[848,850,855],{"type":51,"value":849},"After resolving mode and output, proceed to Phase 1. There will be one additional ",{"type":45,"tag":76,"props":851,"children":853},{"className":852},[],[854],{"type":51,"value":737},{"type":51,"value":856}," interaction at Phase 1.5 before the deep analysis begins.",{"type":45,"tag":628,"props":858,"children":859},{},[],{"type":45,"tag":46,"props":861,"children":863},{"id":862},"phase-1-orient",[864],{"type":51,"value":865},"Phase 1 — Orient",{"type":45,"tag":54,"props":867,"children":868},{},[869,874,876,881],{"type":45,"tag":58,"props":870,"children":871},{},[872],{"type":51,"value":873},"Comparative:",{"type":51,"value":875}," Call ",{"type":45,"tag":76,"props":877,"children":879},{"className":878},[],[880],{"type":51,"value":101},{"type":51,"value":882}," for both experiments. Produce a side-by-side comparison:",{"type":45,"tag":219,"props":884,"children":885},{},[886,891,896,901,906],{"type":45,"tag":70,"props":887,"children":888},{},[889],{"type":51,"value":890},"Scale: total samples and error count for each",{"type":45,"tag":70,"props":892,"children":893},{},[894],{"type":51,"value":895},"Metrics: which metrics exist in each; which are shared",{"type":45,"tag":70,"props":897,"children":898},{},[899],{"type":51,"value":900},"Dimensions: which dimensions exist in each; which are shared",{"type":45,"tag":70,"props":902,"children":903},{},[904],{"type":51,"value":905},"Immediate red flags (errors present, missing metrics, sparse data)",{"type":45,"tag":70,"props":907,"children":908},{},[909],{"type":51,"value":910},"Obvious improvements or regressions visible at the summary level",{"type":45,"tag":54,"props":912,"children":913},{},[914,916,922,924,930,932,938,940,946],{"type":51,"value":915},"When ",{"type":45,"tag":76,"props":917,"children":919},{"className":918},[],[920],{"type":51,"value":921},"error_count > 0",{"type":51,"value":923},", call ",{"type":45,"tag":76,"props":925,"children":927},{"className":926},[],[928],{"type":51,"value":929},"get_llmobs_experiment_dimension_values",{"type":51,"value":931}," for ",{"type":45,"tag":76,"props":933,"children":935},{"className":934},[],[936],{"type":51,"value":937},"error_type",{"type":51,"value":939}," and report the breakdown by exception class (e.g. \"2 errors: ",{"type":45,"tag":76,"props":941,"children":943},{"className":942},[],[944],{"type":51,"value":945},"asyncio.exceptions.cancellederror",{"type":51,"value":947},"\"). Errors mean the executor threw an unhandled exception — no eval scores were produced for those samples. Do not report a percentage; report the count and type(s).",{"type":45,"tag":54,"props":949,"children":950},{},[951,956,957,962],{"type":45,"tag":58,"props":952,"children":953},{},[954],{"type":51,"value":955},"Single:",{"type":51,"value":875},{"type":45,"tag":76,"props":958,"children":960},{"className":959},[],[961],{"type":51,"value":101},{"type":51,"value":963}," for the experiment. Determine:",{"type":45,"tag":219,"props":965,"children":966},{},[967,979,1015,1020,1025],{"type":45,"tag":70,"props":968,"children":969},{},[970,972,977],{"type":51,"value":971},"Total samples, and error count (with ",{"type":45,"tag":76,"props":973,"children":975},{"className":974},[],[976],{"type":51,"value":937},{"type":51,"value":978}," breakdown if non-zero)",{"type":45,"tag":70,"props":980,"children":981},{},[982,984,990,992,998,1000,1006,1007,1013],{"type":51,"value":983},"Available metrics grouped by ",{"type":45,"tag":76,"props":985,"children":987},{"className":986},[],[988],{"type":51,"value":989},"metric_type",{"type":51,"value":991}," as returned by the summary (",{"type":45,"tag":76,"props":993,"children":995},{"className":994},[],[996],{"type":51,"value":997},"score",{"type":51,"value":999},", ",{"type":45,"tag":76,"props":1001,"children":1003},{"className":1002},[],[1004],{"type":51,"value":1005},"boolean",{"type":51,"value":999},{"type":45,"tag":76,"props":1008,"children":1010},{"className":1009},[],[1011],{"type":51,"value":1012},"categorical",{"type":51,"value":1014},"). Do not infer semantic groupings or categories from label name patterns or prefixes — the label string is not a reliable signal for what a metric measures.",{"type":45,"tag":70,"props":1016,"children":1017},{},[1018],{"type":51,"value":1019},"Classify each metric using the statistics already returned by the summary (mean, min, max). Do not infer metric meaning from label names or prefixes. Use the classifications defined in Phase 1.5 when referencing metrics throughout the report.",{"type":45,"tag":70,"props":1021,"children":1022},{},[1023],{"type":51,"value":1024},"Available dimensions for segmentation",{"type":45,"tag":70,"props":1026,"children":1027},{},[1028],{"type":51,"value":1029},"Any immediate red flags",{"type":45,"tag":628,"props":1031,"children":1032},{},[],{"type":45,"tag":46,"props":1034,"children":1036},{"id":1035},"phase-15-metrics-selection",[1037],{"type":51,"value":1038},"Phase 1.5 — Metrics Selection",{"type":45,"tag":54,"props":1040,"children":1041},{},[1042,1044,1049],{"type":51,"value":1043},"After completing Phase 1, run the following three steps before any ",{"type":45,"tag":76,"props":1045,"children":1047},{"className":1046},[],[1048],{"type":51,"value":737},{"type":51,"value":1050},".",{"type":45,"tag":54,"props":1052,"children":1053},{},[1054,1059],{"type":45,"tag":58,"props":1055,"children":1056},{},[1057],{"type":51,"value":1058},"Step 1 — Classify every metric",{"type":51,"value":1060}," using summary statistics only (no additional tool calls):",{"type":45,"tag":350,"props":1062,"children":1063},{},[1064,1085],{"type":45,"tag":354,"props":1065,"children":1066},{},[1067],{"type":45,"tag":358,"props":1068,"children":1069},{},[1070,1075,1080],{"type":45,"tag":362,"props":1071,"children":1072},{},[1073],{"type":51,"value":1074},"Class",{"type":45,"tag":362,"props":1076,"children":1077},{},[1078],{"type":51,"value":1079},"Condition",{"type":45,"tag":362,"props":1081,"children":1082},{},[1083],{"type":51,"value":1084},"Meaning",{"type":45,"tag":373,"props":1086,"children":1087},{},[1088,1114,1140,1174,1200],{"type":45,"tag":358,"props":1089,"children":1090},{},[1091,1100,1109],{"type":45,"tag":380,"props":1092,"children":1093},{},[1094],{"type":45,"tag":76,"props":1095,"children":1097},{"className":1096},[],[1098],{"type":51,"value":1099},"always_zero",{"type":45,"tag":380,"props":1101,"children":1102},{},[1103],{"type":45,"tag":76,"props":1104,"children":1106},{"className":1105},[],[1107],{"type":51,"value":1108},"max == 0",{"type":45,"tag":380,"props":1110,"children":1111},{},[1112],{"type":51,"value":1113},"Feature disabled or not implemented — no signal",{"type":45,"tag":358,"props":1115,"children":1116},{},[1117,1126,1135],{"type":45,"tag":380,"props":1118,"children":1119},{},[1120],{"type":45,"tag":76,"props":1121,"children":1123},{"className":1122},[],[1124],{"type":51,"value":1125},"perfect",{"type":45,"tag":380,"props":1127,"children":1128},{},[1129],{"type":45,"tag":76,"props":1130,"children":1132},{"className":1131},[],[1133],{"type":51,"value":1134},"min == 1",{"type":45,"tag":380,"props":1136,"children":1137},{},[1138],{"type":51,"value":1139},"Always passes — no diagnostic signal",{"type":45,"tag":358,"props":1141,"children":1142},{},[1143,1152,1169],{"type":45,"tag":380,"props":1144,"children":1145},{},[1146],{"type":45,"tag":76,"props":1147,"children":1149},{"className":1148},[],[1150],{"type":51,"value":1151},"saturated",{"type":45,"tag":380,"props":1153,"children":1154},{},[1155,1161,1163],{"type":45,"tag":76,"props":1156,"children":1158},{"className":1157},[],[1159],{"type":51,"value":1160},"mean ≥ 0.99",{"type":51,"value":1162}," and ",{"type":45,"tag":76,"props":1164,"children":1166},{"className":1165},[],[1167],{"type":51,"value":1168},"min \u003C 1",{"type":45,"tag":380,"props":1170,"children":1171},{},[1172],{"type":51,"value":1173},"Rarely fails — low diagnostic value",{"type":45,"tag":358,"props":1175,"children":1176},{},[1177,1186,1195],{"type":45,"tag":380,"props":1178,"children":1179},{},[1180],{"type":45,"tag":76,"props":1181,"children":1183},{"className":1182},[],[1184],{"type":51,"value":1185},"struggling",{"type":45,"tag":380,"props":1187,"children":1188},{},[1189],{"type":45,"tag":76,"props":1190,"children":1192},{"className":1191},[],[1193],{"type":51,"value":1194},"mean \u003C 0.70",{"type":45,"tag":380,"props":1196,"children":1197},{},[1198],{"type":51,"value":1199},"Meaningful failure rate — highest diagnostic value",{"type":45,"tag":358,"props":1201,"children":1202},{},[1203,1212,1228],{"type":45,"tag":380,"props":1204,"children":1205},{},[1206],{"type":45,"tag":76,"props":1207,"children":1209},{"className":1208},[],[1210],{"type":51,"value":1211},"interesting",{"type":45,"tag":380,"props":1213,"children":1214},{},[1215,1221,1222],{"type":45,"tag":76,"props":1216,"children":1218},{"className":1217},[],[1219],{"type":51,"value":1220},"0.70 ≤ mean \u003C 0.99",{"type":51,"value":1162},{"type":45,"tag":76,"props":1223,"children":1225},{"className":1224},[],[1226],{"type":51,"value":1227},"min \u003C max",{"type":45,"tag":380,"props":1229,"children":1230},{},[1231],{"type":51,"value":1232},"Partial failures — moderate diagnostic value",{"type":45,"tag":54,"props":1234,"children":1235},{},[1236,1241],{"type":45,"tag":58,"props":1237,"children":1238},{},[1239],{"type":51,"value":1240},"Step 2 — Print the full metric table to chat",{"type":51,"value":1242}," before asking any question. This gives the user complete visibility — never truncated by option limits. Format:",{"type":45,"tag":436,"props":1244,"children":1247},{"className":1245,"code":1246,"language":51},[439],"Found N metrics. Full breakdown:\n\n| Metric | Mean | Class |\n|--------|------|-------|\n| \u003Clabel> | \u003Cmean> | ⚠️ Struggling |\n| \u003Clabel> | \u003Cmean> | Interesting |\n| \u003Clabel> | \u003Cmean> | Saturated |\n| \u003Clabel> | 1.000 | Perfect (no signal) |\n| \u003Clabel> | 0.000 | Always zero (disabled?) |\n",[1248],{"type":45,"tag":76,"props":1249,"children":1250},{"__ignoreMap":444},[1251],{"type":51,"value":1246},{"type":45,"tag":54,"props":1253,"children":1254},{},[1255,1257,1262],{"type":51,"value":1256},"Flag any ",{"type":45,"tag":76,"props":1258,"children":1260},{"className":1259},[],[1261],{"type":51,"value":1099},{"type":51,"value":1263}," metrics with a note — e.g. \"N metrics always score 0 and appear to be disabled features; they will be excluded from suggested groupings.\"",{"type":45,"tag":54,"props":1265,"children":1266},{},[1267,1272],{"type":45,"tag":58,"props":1268,"children":1269},{},[1270],{"type":51,"value":1271},"Step 3 — AskUserQuestion",{"type":51,"value":1273}," with options built entirely from the computed classes:",{"type":45,"tag":54,"props":1275,"children":1276},{},[1277,1279,1284],{"type":51,"value":1278},"Generate options dynamically based on what is actually present in the data. Do ",{"type":45,"tag":58,"props":1280,"children":1281},{},[1282],{"type":51,"value":1283},"not",{"type":51,"value":1285}," invent option names from label prefixes.",{"type":45,"tag":219,"props":1287,"children":1288},{},[1289,1322,1332,1342],{"type":45,"tag":70,"props":1290,"children":1291},{},[1292,1297,1299,1305,1307,1313,1315,1320],{"type":45,"tag":58,"props":1293,"children":1294},{},[1295],{"type":51,"value":1296},"\"Struggling metrics (N) — Recommended\"",{"type":51,"value":1298},": only shown if N ≥ 1. Description explicitly lists each metric label and its mean (e.g. \"",{"type":45,"tag":76,"props":1300,"children":1302},{"className":1301},[],[1303],{"type":51,"value":1304},"open_answer",{"type":51,"value":1306}," 0.33, ",{"type":45,"tag":76,"props":1308,"children":1310},{"className":1309},[],[1311],{"type":51,"value":1312},"c_permanence",{"type":51,"value":1314}," 0.68\"). This is the grounded suggestion — based on observed pass rates, not label names. If there are no struggling metrics, replace this option with ",{"type":45,"tag":58,"props":1316,"children":1317},{},[1318],{"type":51,"value":1319},"\"Lowest-performing metrics (N)\"",{"type":51,"value":1321}," covering the bottom N by mean.",{"type":45,"tag":70,"props":1323,"children":1324},{},[1325,1330],{"type":45,"tag":58,"props":1326,"children":1327},{},[1328],{"type":51,"value":1329},"\"Interesting + struggling (N)\"",{"type":51,"value":1331},": shown only if there are interesting-class metrics in addition to struggling ones. Description lists them with means.",{"type":45,"tag":70,"props":1333,"children":1334},{},[1335,1340],{"type":45,"tag":58,"props":1336,"children":1337},{},[1338],{"type":51,"value":1339},"\"All metrics (N)\"",{"type":51,"value":1341},": always shown. Note in the description that always-zero and perfect metrics add noise but are included.",{"type":45,"tag":70,"props":1343,"children":1344},{},[1345,1350,1352],{"type":45,"tag":58,"props":1346,"children":1347},{},[1348],{"type":51,"value":1349},"\"A specific metric\"",{"type":51,"value":1351},": always shown. Description says: ",{"type":45,"tag":1353,"props":1354,"children":1355},"em",{},[1356],{"type":51,"value":1357},"\"Choose one from the table printed above.\"",{"type":45,"tag":54,"props":1359,"children":1360},{},[1361,1366,1368,1373,1375,1380,1382,1388,1390,1395,1397,1402,1403,1408,1410,1415,1416,1421],{"type":45,"tag":58,"props":1362,"children":1363},{},[1364],{"type":51,"value":1365},"If the user selects \"A specific metric\"",{"type":51,"value":1367},", ask a second ",{"type":45,"tag":76,"props":1369,"children":1371},{"className":1370},[],[1372],{"type":51,"value":737},{"type":51,"value":1374}," that shows the ",{"type":45,"tag":58,"props":1376,"children":1377},{},[1378],{"type":51,"value":1379},"4 metrics with the lowest mean",{"type":51,"value":1381}," as labeled options (label = metric name, description = ",{"type":45,"tag":76,"props":1383,"children":1385},{"className":1384},[],[1386],{"type":51,"value":1387},"mean: X.XX — class",{"type":51,"value":1389},"). In the question text, explicitly say: ",{"type":45,"tag":1353,"props":1391,"children":1392},{},[1393],{"type":51,"value":1394},"\"Or type any metric name from the table above into 'Other'.\"",{"type":51,"value":1396}," The ",{"type":45,"tag":76,"props":1398,"children":1400},{"className":1399},[],[1401],{"type":51,"value":1099},{"type":51,"value":1162},{"type":45,"tag":76,"props":1404,"children":1406},{"className":1405},[],[1407],{"type":51,"value":1125},{"type":51,"value":1409}," metrics must not appear in the 4 options (they have no diagnostic value); restrict the 4 to ",{"type":45,"tag":76,"props":1411,"children":1413},{"className":1412},[],[1414],{"type":51,"value":1185},{"type":51,"value":1162},{"type":45,"tag":76,"props":1417,"children":1419},{"className":1418},[],[1420],{"type":51,"value":1211},{"type":51,"value":1422}," classes only. After the user picks one, restrict all analysis in Phases 2–4 to that single metric only.",{"type":45,"tag":54,"props":1424,"children":1425},{},[1426],{"type":45,"tag":58,"props":1427,"children":1428},{},[1429],{"type":51,"value":1430},"Scope enforcement:",{"type":45,"tag":219,"props":1432,"children":1433},{},[1434,1439],{"type":45,"tag":70,"props":1435,"children":1436},{},[1437],{"type":51,"value":1438},"If the user accepts \"all\", proceed with all metrics (including constant ones, but note their low signal value).",{"type":45,"tag":70,"props":1440,"children":1441},{},[1442,1444,1450],{"type":51,"value":1443},"If the user selects a grouping or a specific metric, restrict all analysis in Phases 2–4 strictly to that selection. Do not call ",{"type":45,"tag":76,"props":1445,"children":1447},{"className":1446},[],[1448],{"type":51,"value":1449},"get_llmobs_experiment_metric_values",{"type":51,"value":1451}," for any metric outside the selection.",{"type":45,"tag":628,"props":1453,"children":1454},{},[],{"type":45,"tag":46,"props":1456,"children":1458},{"id":1457},"phase-2-signal-discovery-ui-links",[1459],{"type":51,"value":1460},"Phase 2 — Signal Discovery + UI Links",{"type":45,"tag":54,"props":1462,"children":1463},{},[1464,1468],{"type":45,"tag":58,"props":1465,"children":1466},{},[1467],{"type":51,"value":873},{"type":51,"value":1469}," Using only the metrics selected in Phase 1.5 (intersected with shared metrics) and shared dimensions, identify:",{"type":45,"tag":219,"props":1471,"children":1472},{},[1473,1478,1483,1488,1493],{"type":45,"tag":70,"props":1474,"children":1475},{},[1476],{"type":51,"value":1477},"Segments where the candidate outperforms the baseline",{"type":45,"tag":70,"props":1479,"children":1480},{},[1481],{"type":51,"value":1482},"Segments where the candidate regresses",{"type":45,"tag":70,"props":1484,"children":1485},{},[1486],{"type":51,"value":1487},"Error types present in one but rare in the other",{"type":45,"tag":70,"props":1489,"children":1490},{},[1491],{"type":51,"value":1492},"Distribution shifts or coverage gaps",{"type":45,"tag":70,"props":1494,"children":1495},{},[1496],{"type":51,"value":1497},"Tradeoffs (e.g., higher recall, lower precision)",{"type":45,"tag":54,"props":1499,"children":1500},{},[1501],{"type":51,"value":1502},"Generate Datadog comparison UI links:",{"type":45,"tag":219,"props":1504,"children":1505},{},[1506,1517,1543,1568,1578],{"type":45,"tag":70,"props":1507,"children":1508},{},[1509,1511],{"type":51,"value":1510},"Base URL: ",{"type":45,"tag":76,"props":1512,"children":1514},{"className":1513},[],[1515],{"type":51,"value":1516},"https:\u002F\u002Fapp.datadoghq.com\u002Fllm\u002Fexperiment-comparison",{"type":45,"tag":70,"props":1518,"children":1519},{},[1520,1522,1528,1529,1535,1537],{"type":51,"value":1521},"Required params: ",{"type":45,"tag":76,"props":1523,"children":1525},{"className":1524},[],[1526],{"type":51,"value":1527},"baselineExperimentId",{"type":51,"value":999},{"type":45,"tag":76,"props":1530,"children":1532},{"className":1531},[],[1533],{"type":51,"value":1534},"experimentIds",{"type":51,"value":1536}," (candidate%2Cbaseline), ",{"type":45,"tag":76,"props":1538,"children":1540},{"className":1539},[],[1541],{"type":51,"value":1542},"tableView=all",{"type":45,"tag":70,"props":1544,"children":1545},{},[1546,1548,1554,1555,1561,1562],{"type":51,"value":1547},"Optional (include if discoverable): ",{"type":45,"tag":76,"props":1549,"children":1551},{"className":1550},[],[1552],{"type":51,"value":1553},"project",{"type":51,"value":999},{"type":45,"tag":76,"props":1556,"children":1558},{"className":1557},[],[1559],{"type":51,"value":1560},"compareDatasetId",{"type":51,"value":999},{"type":45,"tag":76,"props":1563,"children":1565},{"className":1564},[],[1566],{"type":51,"value":1567},"selectedEvaluation",{"type":45,"tag":70,"props":1569,"children":1570},{},[1571,1576],{"type":45,"tag":76,"props":1572,"children":1574},{"className":1573},[],[1575],{"type":51,"value":1567},{"type":51,"value":1577}," priority: overall\u002Foverall_score\u002Frubric metric → primary metric → first shared metric",{"type":45,"tag":70,"props":1579,"children":1580},{},[1581],{"type":51,"value":1582},"Generate 2–4 links: primary comparison, regression view, calibration view (if applicable), worst-segment view (only if supported — never fabricate filters)",{"type":45,"tag":54,"props":1584,"children":1585},{},[1586,1590],{"type":45,"tag":58,"props":1587,"children":1588},{},[1589],{"type":51,"value":955},{"type":51,"value":1591}," Measure per-metric performance across all dimensions for only the metrics selected in Phase 1.5. Identify:",{"type":45,"tag":219,"props":1593,"children":1594},{},[1595,1600,1605],{"type":45,"tag":70,"props":1596,"children":1597},{},[1598],{"type":51,"value":1599},"Worst-performing segments (by metric × dimension)",{"type":45,"tag":70,"props":1601,"children":1602},{},[1603],{"type":51,"value":1604},"Any segments with surprising pass rates",{"type":45,"tag":70,"props":1606,"children":1607},{},[1608],{"type":51,"value":1609},"Overall pass rates and variance",{"type":45,"tag":54,"props":1611,"children":1612},{},[1613],{"type":51,"value":1614},"Generate Datadog experiment UI link:",{"type":45,"tag":219,"props":1616,"children":1617},{},[1618],{"type":45,"tag":70,"props":1619,"children":1620},{},[1621],{"type":45,"tag":76,"props":1622,"children":1624},{"className":1623},[],[1625],{"type":51,"value":1626},"https:\u002F\u002Fapp.datadoghq.com\u002Fllm\u002Fexperiments\u002F{experiment_id}",{"type":45,"tag":628,"props":1628,"children":1629},{},[],{"type":45,"tag":46,"props":1631,"children":1633},{"id":1632},"phase-3-deep-dives",[1634],{"type":51,"value":1635},"Phase 3 — Deep Dives",{"type":45,"tag":54,"props":1637,"children":1638},{},[1639,1641,1646],{"type":51,"value":1640},"Run all necessary deep dives automatically. Do not ask for approval or pause. Scope all deep dives strictly to the metrics selected in Phase 1.5 — do not call ",{"type":45,"tag":76,"props":1642,"children":1644},{"className":1643},[],[1645],{"type":51,"value":1449},{"type":51,"value":1451},{"type":45,"tag":54,"props":1648,"children":1649},{},[1650,1655],{"type":45,"tag":58,"props":1651,"children":1652},{},[1653],{"type":51,"value":1654},"Q&A modes:",{"type":51,"value":1656}," Focus deep dives on what is needed to answer the question directly. Pull specific samples, segment by relevant dimensions, inspect examples.",{"type":45,"tag":54,"props":1658,"children":1659},{},[1660,1665],{"type":45,"tag":58,"props":1661,"children":1662},{},[1663],{"type":51,"value":1664},"Exploratory modes:",{"type":51,"value":1666}," Investigate the most interesting signals broadly:",{"type":45,"tag":219,"props":1668,"children":1669},{},[1670,1675,1680,1685],{"type":45,"tag":70,"props":1671,"children":1672},{},[1673],{"type":51,"value":1674},"Per-segment and per-class delta analysis (comparative) or pass-rate analysis (single)",{"type":45,"tag":70,"props":1676,"children":1677},{},[1678],{"type":51,"value":1679},"Error overlap vs. unique failure mode analysis",{"type":45,"tag":70,"props":1681,"children":1682},{},[1683],{"type":51,"value":1684},"Sampling and qualitative inspection of representative failures (2–5 per issue)",{"type":45,"tag":70,"props":1686,"children":1687},{},[1688],{"type":51,"value":1689},"Clustered error theme analysis",{"type":45,"tag":54,"props":1691,"children":1692},{},[1693],{"type":51,"value":1694},"Rules:",{"type":45,"tag":219,"props":1696,"children":1697},{},[1698,1703,1708],{"type":45,"tag":70,"props":1699,"children":1700},{},[1701],{"type":51,"value":1702},"Prefer cheap, high-signal analyses first; do not stop early.",{"type":45,"tag":70,"props":1704,"children":1705},{},[1706],{"type":51,"value":1707},"Mask or redact PII in all outputs.",{"type":45,"tag":70,"props":1709,"children":1710},{},[1711],{"type":51,"value":1712},"Avoid destructive actions.",{"type":45,"tag":54,"props":1714,"children":1715},{},[1716,1718,1724,1726,1732,1734,1740,1742,1748,1749,1755,1756,1762,1763,1769,1770,1776,1777,1783,1784,1790,1791,1797,1798,1804],{"type":51,"value":1717},"For each sampled event, generate a direct span link:\n",{"type":45,"tag":76,"props":1719,"children":1721},{"className":1720},[],[1722],{"type":51,"value":1723},"https:\u002F\u002Fapp.datadoghq.com\u002Fllm\u002Fexperiments\u002F{experiment_id}?selectedTab=overview&sp=[{\"p\":{\"experimentId\":\"{experiment_id}\",\"spanId\":\"{span_id}\"},\"i\":\"experiment-details\"}]&spanId={span_id}",{"type":51,"value":1725},"\nThe ",{"type":45,"tag":76,"props":1727,"children":1729},{"className":1728},[],[1730],{"type":51,"value":1731},"sp",{"type":51,"value":1733}," query parameter value must be percent-encoded before rendering (e.g. ",{"type":45,"tag":76,"props":1735,"children":1737},{"className":1736},[],[1738],{"type":51,"value":1739},"[",{"type":51,"value":1741}," → ",{"type":45,"tag":76,"props":1743,"children":1745},{"className":1744},[],[1746],{"type":51,"value":1747},"%5B",{"type":51,"value":999},{"type":45,"tag":76,"props":1750,"children":1752},{"className":1751},[],[1753],{"type":51,"value":1754},"{",{"type":51,"value":1741},{"type":45,"tag":76,"props":1757,"children":1759},{"className":1758},[],[1760],{"type":51,"value":1761},"%7B",{"type":51,"value":999},{"type":45,"tag":76,"props":1764,"children":1766},{"className":1765},[],[1767],{"type":51,"value":1768},"\"",{"type":51,"value":1741},{"type":45,"tag":76,"props":1771,"children":1773},{"className":1772},[],[1774],{"type":51,"value":1775},"%22",{"type":51,"value":999},{"type":45,"tag":76,"props":1778,"children":1780},{"className":1779},[],[1781],{"type":51,"value":1782},"}",{"type":51,"value":1741},{"type":45,"tag":76,"props":1785,"children":1787},{"className":1786},[],[1788],{"type":51,"value":1789},"%7D",{"type":51,"value":999},{"type":45,"tag":76,"props":1792,"children":1794},{"className":1793},[],[1795],{"type":51,"value":1796},"]",{"type":51,"value":1741},{"type":45,"tag":76,"props":1799,"children":1801},{"className":1800},[],[1802],{"type":51,"value":1803},"%5D",{"type":51,"value":245},{"type":45,"tag":54,"props":1806,"children":1807},{},[1808,1810,1816],{"type":51,"value":1809},"For each Deep Dive segment, generate a direct link to view those samples in the (candidate) experiment:\n",{"type":45,"tag":76,"props":1811,"children":1813},{"className":1812},[],[1814],{"type":51,"value":1815},"https:\u002F\u002Fapp.datadoghq.com\u002Fllm\u002Fexperiments\u002F{experiment_id}?selectedTab=overview&filter[{dimension}]={value}",{"type":51,"value":1817},"\nIf you are not confident the filter URL format works for this dimension, omit the filter params and link to the experiment root instead. Never fabricate filter URLs.",{"type":45,"tag":628,"props":1819,"children":1820},{},[],{"type":45,"tag":46,"props":1822,"children":1824},{"id":1823},"phase-4-synthesis",[1825],{"type":51,"value":1826},"Phase 4 — Synthesis",{"type":45,"tag":54,"props":1828,"children":1829},{},[1830],{"type":45,"tag":58,"props":1831,"children":1832},{},[1833],{"type":51,"value":1834},"Comparative Exploratory:",{"type":45,"tag":219,"props":1836,"children":1837},{},[1838,1843,1848,1853,1858],{"type":45,"tag":70,"props":1839,"children":1840},{},[1841],{"type":51,"value":1842},"Clear wins where the candidate improves on the baseline",{"type":45,"tag":70,"props":1844,"children":1845},{},[1846],{"type":51,"value":1847},"Clear regressions or risks the candidate introduces",{"type":45,"tag":70,"props":1849,"children":1850},{},[1851],{"type":51,"value":1852},"Neutral or unchanged areas",{"type":45,"tag":70,"props":1854,"children":1855},{},[1856],{"type":51,"value":1857},"Root-cause hypotheses (1–4), tied to evidence",{"type":45,"tag":70,"props":1859,"children":1860},{},[1861],{"type":51,"value":1862},"Prioritized recommendations: ship as-is \u002F block \u002F gate by segment \u002F combine behaviors",{"type":45,"tag":54,"props":1864,"children":1865},{},[1866],{"type":45,"tag":58,"props":1867,"children":1868},{},[1869],{"type":51,"value":1870},"Comparative Q&A:",{"type":45,"tag":219,"props":1872,"children":1873},{},[1874,1879,1884],{"type":45,"tag":70,"props":1875,"children":1876},{},[1877],{"type":51,"value":1878},"Direct answer to the question with a clear verdict",{"type":45,"tag":70,"props":1880,"children":1881},{},[1882],{"type":51,"value":1883},"Supporting evidence (metrics, percentages, event examples)",{"type":45,"tag":70,"props":1885,"children":1886},{},[1887],{"type":51,"value":1888},"Relevant context (e.g., caveats, data limitations)",{"type":45,"tag":54,"props":1890,"children":1891},{},[1892],{"type":45,"tag":58,"props":1893,"children":1894},{},[1895],{"type":51,"value":1896},"Single Exploratory:",{"type":45,"tag":219,"props":1898,"children":1899},{},[1900,1905,1910,1915],{"type":45,"tag":70,"props":1901,"children":1902},{},[1903],{"type":51,"value":1904},"Overall performance assessment",{"type":45,"tag":70,"props":1906,"children":1907},{},[1908],{"type":51,"value":1909},"Worst-performing segments and root causes",{"type":45,"tag":70,"props":1911,"children":1912},{},[1913],{"type":51,"value":1914},"Hypotheses for why failures occur",{"type":45,"tag":70,"props":1916,"children":1917},{},[1918],{"type":51,"value":1919},"Recommended next experiments",{"type":45,"tag":54,"props":1921,"children":1922},{},[1923],{"type":45,"tag":58,"props":1924,"children":1925},{},[1926],{"type":51,"value":1927},"Single Q&A:",{"type":45,"tag":219,"props":1929,"children":1930},{},[1931,1935],{"type":45,"tag":70,"props":1932,"children":1933},{},[1934],{"type":51,"value":1878},{"type":45,"tag":70,"props":1936,"children":1937},{},[1938],{"type":51,"value":1939},"Supporting evidence from the experiment data",{"type":45,"tag":54,"props":1941,"children":1942},{},[1943],{"type":51,"value":1944},"All modes: open with a one-line issue type tally — e.g. \"3 agent issues, 1 evaluator\u002Fdataset issue, 1 ambiguous\" — before the detailed findings. Use quantified deltas\u002Frates wherever possible. Redact PII.",{"type":45,"tag":54,"props":1946,"children":1947},{},[1948,1968],{"type":45,"tag":58,"props":1949,"children":1950},{},[1951,1953,1959,1960,1966],{"type":51,"value":1952},"Always produce both ",{"type":45,"tag":76,"props":1954,"children":1956},{"className":1955},[],[1957],{"type":51,"value":1958},"## Summary & Recommendations",{"type":51,"value":1162},{"type":45,"tag":76,"props":1961,"children":1963},{"className":1962},[],[1964],{"type":51,"value":1965},"## Synthesis",{"type":51,"value":1967}," sections regardless of experiment complexity, how many metrics exist, or how quickly the answer is apparent.",{"type":51,"value":1969}," Do not skip Summary because the findings are simple or obvious. Do not skip Synthesis because you've already covered the findings in Deep Dives. These two sections are the most portable output of the analysis — they are what a reader encounters first and last.",{"type":45,"tag":628,"props":1971,"children":1972},{},[],{"type":45,"tag":46,"props":1974,"children":1976},{"id":1975},"phase-5-output-delivery",[1977],{"type":51,"value":1978},"Phase 5 — Output Delivery",{"type":45,"tag":54,"props":1980,"children":1981},{},[1982,1987],{"type":45,"tag":58,"props":1983,"children":1984},{},[1985],{"type":51,"value":1986},"Agent:",{"type":51,"value":1988}," Present the full report in the conversation using the report format below.",{"type":45,"tag":54,"props":1990,"children":1991},{},[1992,1996,1998,2004],{"type":45,"tag":58,"props":1993,"children":1994},{},[1995],{"type":51,"value":798},{"type":51,"value":1997}," Write the report to the pre-confirmed path. Confirm with: \"Report saved to ",{"type":45,"tag":76,"props":1999,"children":2001},{"className":2000},[],[2002],{"type":51,"value":2003},"\u003Cpath>",{"type":51,"value":2005},".\"",{"type":45,"tag":54,"props":2007,"children":2008},{},[2009,2013,2014,2019],{"type":45,"tag":58,"props":2010,"children":2011},{},[2012],{"type":51,"value":816},{"type":51,"value":875},{"type":45,"tag":76,"props":2015,"children":2017},{"className":2016},[],[2018],{"type":51,"value":621},{"type":51,"value":2020}," with the following parameters:",{"type":45,"tag":219,"props":2022,"children":2023},{},[2024,2142,2261],{"type":45,"tag":70,"props":2025,"children":2026},{},[2027,2036,2038],{"type":45,"tag":58,"props":2028,"children":2029},{},[2030],{"type":45,"tag":76,"props":2031,"children":2033},{"className":2032},[],[2034],{"type":51,"value":2035},"name",{"type":51,"value":2037}," (by mode):",{"type":45,"tag":350,"props":2039,"children":2040},{},[2041,2056],{"type":45,"tag":354,"props":2042,"children":2043},{},[2044],{"type":45,"tag":358,"props":2045,"children":2046},{},[2047,2051],{"type":45,"tag":362,"props":2048,"children":2049},{},[2050],{"type":51,"value":371},{"type":45,"tag":362,"props":2052,"children":2053},{},[2054],{"type":51,"value":2055},"Name",{"type":45,"tag":373,"props":2057,"children":2058},{},[2059,2075,2091,2107,2123],{"type":45,"tag":358,"props":2060,"children":2061},{},[2062,2066],{"type":45,"tag":380,"props":2063,"children":2064},{},[2065],{"type":51,"value":389},{"type":45,"tag":380,"props":2067,"children":2068},{},[2069],{"type":45,"tag":76,"props":2070,"children":2072},{"className":2071},[],[2073],{"type":51,"value":2074},"Experiment Analysis: {baseline_short} (Baseline) vs {candidate_short} (Candidate) — YYYY-MM-DD",{"type":45,"tag":358,"props":2076,"children":2077},{},[2078,2082],{"type":45,"tag":380,"props":2079,"children":2080},{},[2081],{"type":51,"value":402},{"type":45,"tag":380,"props":2083,"children":2084},{},[2085],{"type":45,"tag":76,"props":2086,"children":2088},{"className":2087},[],[2089],{"type":51,"value":2090},"Experiment Q&A: {baseline_short} vs {candidate_short} — YYYY-MM-DD",{"type":45,"tag":358,"props":2092,"children":2093},{},[2094,2098],{"type":45,"tag":380,"props":2095,"children":2096},{},[2097],{"type":51,"value":415},{"type":45,"tag":380,"props":2099,"children":2100},{},[2101],{"type":45,"tag":76,"props":2102,"children":2104},{"className":2103},[],[2105],{"type":51,"value":2106},"Experiment Analysis: {experiment_short} — YYYY-MM-DD",{"type":45,"tag":358,"props":2108,"children":2109},{},[2110,2114],{"type":45,"tag":380,"props":2111,"children":2112},{},[2113],{"type":51,"value":428},{"type":45,"tag":380,"props":2115,"children":2116},{},[2117],{"type":45,"tag":76,"props":2118,"children":2120},{"className":2119},[],[2121],{"type":51,"value":2122},"Experiment Q&A: {experiment_short} — YYYY-MM-DD",{"type":45,"tag":358,"props":2124,"children":2125},{},[2126,2139],{"type":45,"tag":380,"props":2127,"children":2128},{},[2129,2131,2137],{"type":51,"value":2130},"where ",{"type":45,"tag":76,"props":2132,"children":2134},{"className":2133},[],[2135],{"type":51,"value":2136},"short",{"type":51,"value":2138}," = first 8 characters of the UUID.",{"type":45,"tag":380,"props":2140,"children":2141},{},[],{"type":45,"tag":70,"props":2143,"children":2144},{},[2145,2154,2156,2247,2251,2253,2259],{"type":45,"tag":58,"props":2146,"children":2147},{},[2148],{"type":45,"tag":76,"props":2149,"children":2151},{"className":2150},[],[2152],{"type":51,"value":2153},"cells",{"type":51,"value":2155},": one cell per report section — do NOT put the entire report in a single cell. Structure:",{"type":45,"tag":219,"props":2157,"children":2158},{},[2159,2205,2210,2215,2220,2225,2242],{"type":45,"tag":70,"props":2160,"children":2161},{},[2162,2164,2169,2171,2177,2179,2184,2186,2191,2193,2198,2200],{"type":51,"value":2163},"Cell 1 — ",{"type":45,"tag":58,"props":2165,"children":2166},{},[2167],{"type":51,"value":2168},"Summary & Recommendations",{"type":51,"value":2170}," containing three ",{"type":45,"tag":76,"props":2172,"children":2174},{"className":2173},[],[2175],{"type":51,"value":2176},"###",{"type":51,"value":2178}," subheaders: ",{"type":45,"tag":58,"props":2180,"children":2181},{},[2182],{"type":51,"value":2183},"Experiment",{"type":51,"value":2185}," (link + executive summary), ",{"type":45,"tag":58,"props":2187,"children":2188},{},[2189],{"type":51,"value":2190},"Key Findings",{"type":51,"value":2192}," (bullets), ",{"type":45,"tag":58,"props":2194,"children":2195},{},[2196],{"type":51,"value":2197},"Recommendations",{"type":51,"value":2199}," (numbered list) — ",{"type":45,"tag":58,"props":2201,"children":2202},{},[2203],{"type":51,"value":2204},"always present, always first, never skipped regardless of experiment complexity",{"type":45,"tag":70,"props":2206,"children":2207},{},[2208],{"type":51,"value":2209},"Cell 2 — Orientation table",{"type":45,"tag":70,"props":2211,"children":2212},{},[2213],{"type":51,"value":2214},"Cell 3 — What Changed (comparative modes only; omit for single)",{"type":45,"tag":70,"props":2216,"children":2217},{},[2218],{"type":51,"value":2219},"Cell 4 — Signals \u002F Answer to Question",{"type":45,"tag":70,"props":2221,"children":2222},{},[2223],{"type":51,"value":2224},"Cells 5…N — one cell per Deep Dive Finding",{"type":45,"tag":70,"props":2226,"children":2227},{},[2228,2230,2235,2237],{"type":51,"value":2229},"Cell N+1 — ",{"type":45,"tag":58,"props":2231,"children":2232},{},[2233],{"type":51,"value":2234},"Synthesis",{"type":51,"value":2236}," (issue tally, Overall Performance Assessment, Worst-Performing Segments, Root Cause Hypothesis, Recommended Next Experiments) — ",{"type":45,"tag":58,"props":2238,"children":2239},{},[2240],{"type":51,"value":2241},"always present, always second-to-last",{"type":45,"tag":70,"props":2243,"children":2244},{},[2245],{"type":51,"value":2246},"Cell N+2 — UI Links",{"type":45,"tag":2248,"props":2249,"children":2250},"br",{},[],{"type":51,"value":2252},"Omit the ",{"type":45,"tag":76,"props":2254,"children":2256},{"className":2255},[],[2257],{"type":51,"value":2258},"# Experiment Analysis Report",{"type":51,"value":2260}," top-level heading from all cells — it is already shown as the notebook title.",{"type":45,"tag":70,"props":2262,"children":2263},{},[2264,2273,2275],{"type":45,"tag":58,"props":2265,"children":2266},{},[2267],{"type":45,"tag":76,"props":2268,"children":2270},{"className":2269},[],[2271],{"type":51,"value":2272},"time",{"type":51,"value":2274},": ",{"type":45,"tag":76,"props":2276,"children":2278},{"className":2277},[],[2279],{"type":51,"value":2280},"{ \"live_span\": \"1h\" }",{"type":45,"tag":54,"props":2282,"children":2283},{},[2284,2286],{"type":51,"value":2285},"After the notebook is created, output the URL in chat: ",{"type":45,"tag":76,"props":2287,"children":2289},{"className":2288},[],[2290],{"type":51,"value":2291},"\"Report exported to notebook: \u003Curl>\"",{"type":45,"tag":54,"props":2293,"children":2294},{},[2295],{"type":51,"value":2296},"If the tool is unavailable, follow the fallback instructions in Phase 0.",{"type":45,"tag":628,"props":2298,"children":2299},{},[],{"type":45,"tag":46,"props":2301,"children":2303},{"id":2302},"phase-6-conversational-follow-up",[2304],{"type":51,"value":2305},"Phase 6 — Conversational Follow-up",{"type":45,"tag":54,"props":2307,"children":2308},{},[2309],{"type":51,"value":2310},"After delivering the report, append a follow-up section:",{"type":45,"tag":436,"props":2312,"children":2315},{"className":2313,"code":2314,"language":51},[439],"---\n## Want to explore further?\n\nHere are a few directions based on the findings:\n\n1. [Specific question derived from actual findings — e.g., \"Want me to dig deeper into why the SQL scenarios regressed in the candidate?\"]\n2. [Another specific follow-up — e.g., \"Should I compare error patterns between the two failing clusters?\"]\n3. [A third option if relevant]\n4. [If failures or regressions were found: \"To investigate production failures driving these results, run `\u002Fagent-observability-trace-rca` on the same ml_app.\"]\n\nDo you have any other questions about this analysis?\n",[2316],{"type":45,"tag":76,"props":2317,"children":2318},{"__ignoreMap":444},[2319],{"type":51,"value":2314},{"type":45,"tag":54,"props":2321,"children":2322},{},[2323],{"type":51,"value":2324},"Stay active after the report. Answer follow-up questions using the same MCP tools, referencing findings already gathered. Do not re-run analyses you've already performed unless new questions require it.",{"type":45,"tag":628,"props":2326,"children":2327},{},[],{"type":45,"tag":46,"props":2329,"children":2331},{"id":2330},"report-format",[2332],{"type":51,"value":2333},"Report Format",{"type":45,"tag":54,"props":2335,"children":2336},{},[2337],{"type":51,"value":2338},"Link rules:",{"type":45,"tag":219,"props":2340,"children":2341},{},[2342,2359],{"type":45,"tag":70,"props":2343,"children":2344},{},[2345,2350,2352,2358],{"type":45,"tag":58,"props":2346,"children":2347},{},[2348],{"type":51,"value":2349},"Experiment IDs",{"type":51,"value":2351},": Wherever a full experiment UUID appears, render it as a Markdown link to ",{"type":45,"tag":76,"props":2353,"children":2355},{"className":2354},[],[2356],{"type":51,"value":2357},"https:\u002F\u002Fapp.datadoghq.com\u002Fllm\u002Fexperiments\u002F{full_uuid}",{"type":51,"value":1050},{"type":45,"tag":70,"props":2360,"children":2361},{},[2362,2367,2369,2374,2376,2382,2384,2390,2397],{"type":45,"tag":58,"props":2363,"children":2364},{},[2365],{"type":51,"value":2366},"Comparative table column headers",{"type":51,"value":2368},": In the Orientation table and in every subsequent table that has Baseline\u002FCandidate columns, wrap the ",{"type":45,"tag":1353,"props":2370,"children":2371},{},[2372],{"type":51,"value":2373},"entire",{"type":51,"value":2375}," column header as a link — not just the short ID. Format: ",{"type":45,"tag":76,"props":2377,"children":2379},{"className":2378,"short-id":444},[],[2380],{"type":51,"value":2381},"[Baseline \\",{"type":51,"value":2383},"`]({baseline_url})",{"type":45,"tag":76,"props":2385,"children":2387},{"className":2386},[],[2388],{"type":51,"value":2389},"and",{"type":45,"tag":2391,"props":2392,"children":2394},"a",{"href":2393},"%7Bcandidate_url%7D",[2395],{"type":51,"value":2396},"Candidate `{short_id}`",{"type":51,"value":2398},"`. This makes the full header cell clickable, not just the ID portion.",{"type":45,"tag":436,"props":2400,"children":2404},{"className":2401,"code":2402,"language":2403,"meta":444,"style":444},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Experiment Analysis Report\n\n> **Question:** {original question text}\n> _(Q&A modes only — omit for Exploratory modes)_\n\n## Summary & Recommendations\n\n### Experiment\n\n[Comparative: [`{baseline_short}`]({baseline_url}) (Baseline) vs [`{candidate_short}`]({candidate_url}) (Candidate) — [Compare]({compare_url}) — Single: [`{experiment_short}`]({experiment_url})]\n\n[2–3 sentence executive summary. Open with \"This is a **{Mode}** analysis...\" where {Mode} is one of: Comparative Exploratory, Comparative Q&A, Single Exploratory, Single Q&A. Include experiment(s) purpose, scale, and the headline finding with specific numbers.]\n\n[If the report uses opaque dimension values (e.g. category labels like b1\u002Fb2\u002Fb3\u002Fbx), add a `#### Dataset Categories` sub-subsection here — one bullet per value with name bolded and a brief description. Omit if all dimension values are self-explanatory.]\n\n### Key Findings\n\n- **{Finding 1}**: one-line description with numbers (e.g. \"+4.2pp on `tool_accuracy` across all segments\")\n- **{Finding 2}**: one-line description\n- **{Finding 3}** (if present): one-line description\n[For Q&A modes: one-line verdict bullet + one-line rationale bullet]\n\n### Recommendations\n\n1. **{Recommendation 1}**: specific, actionable next step tied to a finding\n2. **{Recommendation 2}**: specific, actionable next step\n3. **{Recommendation 3}** (if present): specific, actionable next step\n[Omit this subsection for Q&A modes unless a clear action follows from the answer.]\n\n## Orientation\n\n[Side-by-side table for comparative; summary table for single. Include: samples, errors (count + `error_type` breakdown if non-zero, otherwise \"none\"), metrics, dimensions. Experiment IDs in column headers must be Markdown links.]\n\n\n## What Changed\n\n[Comparative modes only. Table of differences between baseline and candidate: model, toolset\u002Fskill profile,\ndataset, evaluator schema, and any other metadata differences detectable from the summary data.\nIf no differences are detectable, write: \"No configuration differences detected between experiments.\"]\n\n## [Signals | Answer to Question]\n\n[For exploratory: ranked table of signals\u002Fsegments with metric deltas and impact counts.]\n[For Q&A: direct answer with verdict, then supporting evidence.]\n\n## Deep Dive Findings\n\n### [Issue\u002FFinding Title]\n\n**Segment**: `[dimension=value]` | **Impact**: N samples | **Severity**: metric pass rate = X% | [View samples](https:\u002F\u002Fapp.datadoghq.com\u002Fllm\u002Fexperiments\u002F{experiment_id}?selectedTab=overview&filter[{dimension}]={value})\n\n**Issue type**: `Agent` — the evaluator is sound; the agent output is the problem. | `Evaluator\u002FDataset` — the agent output may be correct; the rubric, ground truth labels, or scoring logic is suspect. | `Ambiguous` — cannot determine from available evidence whether the agent or evaluator is at fault; flag for manual inspection.\n\n**What's happening**: [1–2 sentences: key observation and metric impact only]\n\n**Representative examples**:\n- [Span link]: [input → output → expected, what went wrong]\n\n**Root cause hypothesis**: [Category]: [Explanation tied to evidence]\n\n**Recommendation**: [Specific, actionable next step]\n\n---\n[Repeat for each major issue]\n\n## Synthesis\n\n[Required in all modes. Comes after all Deep Dive Findings, before UI Links.]\n\n**Issue tally**: [N agent issues, N evaluator\u002Fdataset issues, N ambiguous]\n\n### Overall Performance Assessment\n[2–4 sentences on overall quality: what the experiment shows, whether the app\u002Fmodel is production-ready on this task, key numbers.]\n\n### Worst-Performing Segments\n[Bullet list: which dimension values or conditions most reliably predict failure. Include metric values.]\n\n### Root Cause Hypothesis\n[The single most likely root cause across all findings. If multiple independent root causes, list them ranked by impact. Each hypothesis must be tied to specific evidence, not to label names or general reasoning.]\n\n### Recommended Next Experiments\n[2–4 concrete, specific follow-up experiments. Each should be actionable: e.g. \"Re-run with `max_turns=40` to test whether turn exhaustion is the primary driver, not model quality\" not \"Investigate turn limits further.\"]\n\n## UI Links\n\n[All generated Datadog UI links with labels]\n","markdown",[2405],{"type":45,"tag":76,"props":2406,"children":2407},{"__ignoreMap":444},[2408,2426,2436,2469,2493,2501,2515,2523,2537,2545,2692,2700,2727,2735,2762,2770,2783,2791,2836,2861,2887,2896,2904,2917,2925,2952,2979,3006,3015,3023,3036,3044,3070,3078,3086,3099,3107,3116,3125,3134,3142,3155,3163,3172,3181,3189,3202,3210,3223,3231,3328,3336,3411,3419,3441,3449,3471,3484,3492,3531,3539,3561,3569,3578,3587,3595,3608,3616,3625,3633,3655,3663,3676,3685,3693,3706,3715,3723,3736,3745,3753,3766,3793,3801,3814,3822],{"type":45,"tag":2409,"props":2410,"children":2413},"span",{"class":2411,"line":2412},"line",1,[2414,2420],{"type":45,"tag":2409,"props":2415,"children":2417},{"style":2416},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[2418],{"type":51,"value":2419},"# ",{"type":45,"tag":2409,"props":2421,"children":2423},{"style":2422},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[2424],{"type":51,"value":2425},"Experiment Analysis Report\n",{"type":45,"tag":2409,"props":2427,"children":2429},{"class":2411,"line":2428},2,[2430],{"type":45,"tag":2409,"props":2431,"children":2433},{"emptyLinePlaceholder":2432},true,[2434],{"type":51,"value":2435},"\n",{"type":45,"tag":2409,"props":2437,"children":2439},{"class":2411,"line":2438},3,[2440,2446,2452,2458,2463],{"type":45,"tag":2409,"props":2441,"children":2443},{"style":2442},"--shiki-light:#FF5370;--shiki-light-font-style:italic;--shiki-default:#FF9CAC;--shiki-default-font-style:italic;--shiki-dark:#FF9CAC;--shiki-dark-font-style:italic",[2444],{"type":51,"value":2445},">",{"type":45,"tag":2409,"props":2447,"children":2449},{"style":2448},"--shiki-light:#39ADB5;--shiki-light-font-weight:bold;--shiki-default:#89DDFF;--shiki-default-font-weight:bold;--shiki-dark:#89DDFF;--shiki-dark-font-weight:bold",[2450],{"type":51,"value":2451}," **",{"type":45,"tag":2409,"props":2453,"children":2455},{"style":2454},"--shiki-light:#E53935;--shiki-light-font-weight:bold;--shiki-default:#F07178;--shiki-default-font-weight:bold;--shiki-dark:#F07178;--shiki-dark-font-weight:bold",[2456],{"type":51,"value":2457},"Question:",{"type":45,"tag":2409,"props":2459,"children":2460},{"style":2448},[2461],{"type":51,"value":2462},"**",{"type":45,"tag":2409,"props":2464,"children":2466},{"style":2465},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[2467],{"type":51,"value":2468}," {original question text}\n",{"type":45,"tag":2409,"props":2470,"children":2472},{"class":2411,"line":2471},4,[2473,2477,2482,2488],{"type":45,"tag":2409,"props":2474,"children":2475},{"style":2442},[2476],{"type":51,"value":2445},{"type":45,"tag":2409,"props":2478,"children":2479},{"style":2465},[2480],{"type":51,"value":2481}," _",{"type":45,"tag":2409,"props":2483,"children":2485},{"style":2484},"--shiki-light:#E53935;--shiki-light-font-style:italic;--shiki-default:#F07178;--shiki-default-font-style:italic;--shiki-dark:#F07178;--shiki-dark-font-style:italic",[2486],{"type":51,"value":2487},"(Q&A modes only — omit for Exploratory modes)",{"type":45,"tag":2409,"props":2489,"children":2490},{"style":2465},[2491],{"type":51,"value":2492},"_\n",{"type":45,"tag":2409,"props":2494,"children":2496},{"class":2411,"line":2495},5,[2497],{"type":45,"tag":2409,"props":2498,"children":2499},{"emptyLinePlaceholder":2432},[2500],{"type":51,"value":2435},{"type":45,"tag":2409,"props":2502,"children":2504},{"class":2411,"line":2503},6,[2505,2510],{"type":45,"tag":2409,"props":2506,"children":2507},{"style":2416},[2508],{"type":51,"value":2509},"## ",{"type":45,"tag":2409,"props":2511,"children":2512},{"style":2422},[2513],{"type":51,"value":2514},"Summary & Recommendations\n",{"type":45,"tag":2409,"props":2516,"children":2518},{"class":2411,"line":2517},7,[2519],{"type":45,"tag":2409,"props":2520,"children":2521},{"emptyLinePlaceholder":2432},[2522],{"type":51,"value":2435},{"type":45,"tag":2409,"props":2524,"children":2526},{"class":2411,"line":2525},8,[2527,2532],{"type":45,"tag":2409,"props":2528,"children":2529},{"style":2416},[2530],{"type":51,"value":2531},"### ",{"type":45,"tag":2409,"props":2533,"children":2534},{"style":2422},[2535],{"type":51,"value":2536},"Experiment\n",{"type":45,"tag":2409,"props":2538,"children":2540},{"class":2411,"line":2539},9,[2541],{"type":45,"tag":2409,"props":2542,"children":2543},{"emptyLinePlaceholder":2432},[2544],{"type":51,"value":2435},{"type":45,"tag":2409,"props":2546,"children":2548},{"class":2411,"line":2547},10,[2549,2555,2559,2564,2570,2574,2579,2585,2590,2595,2599,2603,2608,2612,2616,2621,2625,2630,2634,2639,2643,2648,2652,2657,2661,2665,2670,2674,2678,2683,2687],{"type":45,"tag":2409,"props":2550,"children":2552},{"style":2551},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[2553],{"type":51,"value":2554},"[Comparative: ",{"type":45,"tag":2409,"props":2556,"children":2557},{"style":2416},[2558],{"type":51,"value":1739},{"type":45,"tag":2409,"props":2560,"children":2561},{"style":2416},[2562],{"type":51,"value":2563},"`",{"type":45,"tag":2409,"props":2565,"children":2567},{"style":2566},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[2568],{"type":51,"value":2569},"{baseline_short}",{"type":45,"tag":2409,"props":2571,"children":2572},{"style":2416},[2573],{"type":51,"value":2563},{"type":45,"tag":2409,"props":2575,"children":2576},{"style":2416},[2577],{"type":51,"value":2578},"](",{"type":45,"tag":2409,"props":2580,"children":2582},{"style":2581},"--shiki-light:#E53935;--shiki-light-text-decoration:underline;--shiki-default:#F07178;--shiki-default-text-decoration:underline;--shiki-dark:#F07178;--shiki-dark-text-decoration:underline",[2583],{"type":51,"value":2584},"{baseline_url}",{"type":45,"tag":2409,"props":2586,"children":2587},{"style":2416},[2588],{"type":51,"value":2589},")",{"type":45,"tag":2409,"props":2591,"children":2592},{"style":2551},[2593],{"type":51,"value":2594}," (Baseline) vs ",{"type":45,"tag":2409,"props":2596,"children":2597},{"style":2416},[2598],{"type":51,"value":1739},{"type":45,"tag":2409,"props":2600,"children":2601},{"style":2416},[2602],{"type":51,"value":2563},{"type":45,"tag":2409,"props":2604,"children":2605},{"style":2566},[2606],{"type":51,"value":2607},"{candidate_short}",{"type":45,"tag":2409,"props":2609,"children":2610},{"style":2416},[2611],{"type":51,"value":2563},{"type":45,"tag":2409,"props":2613,"children":2614},{"style":2416},[2615],{"type":51,"value":2578},{"type":45,"tag":2409,"props":2617,"children":2618},{"style":2581},[2619],{"type":51,"value":2620},"{candidate_url}",{"type":45,"tag":2409,"props":2622,"children":2623},{"style":2416},[2624],{"type":51,"value":2589},{"type":45,"tag":2409,"props":2626,"children":2627},{"style":2551},[2628],{"type":51,"value":2629}," (Candidate) — ",{"type":45,"tag":2409,"props":2631,"children":2632},{"style":2416},[2633],{"type":51,"value":1739},{"type":45,"tag":2409,"props":2635,"children":2636},{"style":2566},[2637],{"type":51,"value":2638},"Compare",{"type":45,"tag":2409,"props":2640,"children":2641},{"style":2416},[2642],{"type":51,"value":2578},{"type":45,"tag":2409,"props":2644,"children":2645},{"style":2581},[2646],{"type":51,"value":2647},"{compare_url}",{"type":45,"tag":2409,"props":2649,"children":2650},{"style":2416},[2651],{"type":51,"value":2589},{"type":45,"tag":2409,"props":2653,"children":2654},{"style":2551},[2655],{"type":51,"value":2656}," — Single: ",{"type":45,"tag":2409,"props":2658,"children":2659},{"style":2416},[2660],{"type":51,"value":1739},{"type":45,"tag":2409,"props":2662,"children":2663},{"style":2416},[2664],{"type":51,"value":2563},{"type":45,"tag":2409,"props":2666,"children":2667},{"style":2566},[2668],{"type":51,"value":2669},"{experiment_short}",{"type":45,"tag":2409,"props":2671,"children":2672},{"style":2416},[2673],{"type":51,"value":2563},{"type":45,"tag":2409,"props":2675,"children":2676},{"style":2416},[2677],{"type":51,"value":2578},{"type":45,"tag":2409,"props":2679,"children":2680},{"style":2581},[2681],{"type":51,"value":2682},"{experiment_url}",{"type":45,"tag":2409,"props":2684,"children":2685},{"style":2416},[2686],{"type":51,"value":2589},{"type":45,"tag":2409,"props":2688,"children":2689},{"style":2551},[2690],{"type":51,"value":2691},"]\n",{"type":45,"tag":2409,"props":2693,"children":2695},{"class":2411,"line":2694},11,[2696],{"type":45,"tag":2409,"props":2697,"children":2698},{"emptyLinePlaceholder":2432},[2699],{"type":51,"value":2435},{"type":45,"tag":2409,"props":2701,"children":2703},{"class":2411,"line":2702},12,[2704,2709,2713,2718,2722],{"type":45,"tag":2409,"props":2705,"children":2706},{"style":2551},[2707],{"type":51,"value":2708},"[2–3 sentence executive summary. Open with \"This is a ",{"type":45,"tag":2409,"props":2710,"children":2711},{"style":2448},[2712],{"type":51,"value":2462},{"type":45,"tag":2409,"props":2714,"children":2715},{"style":2454},[2716],{"type":51,"value":2717},"{Mode}",{"type":45,"tag":2409,"props":2719,"children":2720},{"style":2448},[2721],{"type":51,"value":2462},{"type":45,"tag":2409,"props":2723,"children":2724},{"style":2551},[2725],{"type":51,"value":2726}," analysis...\" where {Mode} is one of: Comparative Exploratory, Comparative Q&A, Single Exploratory, Single Q&A. Include experiment(s) purpose, scale, and the headline finding with specific numbers.]\n",{"type":45,"tag":2409,"props":2728,"children":2730},{"class":2411,"line":2729},13,[2731],{"type":45,"tag":2409,"props":2732,"children":2733},{"emptyLinePlaceholder":2432},[2734],{"type":51,"value":2435},{"type":45,"tag":2409,"props":2736,"children":2738},{"class":2411,"line":2737},14,[2739,2744,2748,2753,2757],{"type":45,"tag":2409,"props":2740,"children":2741},{"style":2551},[2742],{"type":51,"value":2743},"[If the report uses opaque dimension values (e.g. category labels like b1\u002Fb2\u002Fb3\u002Fbx), add a ",{"type":45,"tag":2409,"props":2745,"children":2746},{"style":2416},[2747],{"type":51,"value":2563},{"type":45,"tag":2409,"props":2749,"children":2750},{"style":2566},[2751],{"type":51,"value":2752},"#### Dataset Categories",{"type":45,"tag":2409,"props":2754,"children":2755},{"style":2416},[2756],{"type":51,"value":2563},{"type":45,"tag":2409,"props":2758,"children":2759},{"style":2551},[2760],{"type":51,"value":2761}," sub-subsection here — one bullet per value with name bolded and a brief description. Omit if all dimension values are self-explanatory.]\n",{"type":45,"tag":2409,"props":2763,"children":2765},{"class":2411,"line":2764},15,[2766],{"type":45,"tag":2409,"props":2767,"children":2768},{"emptyLinePlaceholder":2432},[2769],{"type":51,"value":2435},{"type":45,"tag":2409,"props":2771,"children":2773},{"class":2411,"line":2772},16,[2774,2778],{"type":45,"tag":2409,"props":2775,"children":2776},{"style":2416},[2777],{"type":51,"value":2531},{"type":45,"tag":2409,"props":2779,"children":2780},{"style":2422},[2781],{"type":51,"value":2782},"Key Findings\n",{"type":45,"tag":2409,"props":2784,"children":2786},{"class":2411,"line":2785},17,[2787],{"type":45,"tag":2409,"props":2788,"children":2789},{"emptyLinePlaceholder":2432},[2790],{"type":51,"value":2435},{"type":45,"tag":2409,"props":2792,"children":2794},{"class":2411,"line":2793},18,[2795,2800,2804,2809,2813,2818,2822,2827,2831],{"type":45,"tag":2409,"props":2796,"children":2797},{"style":2416},[2798],{"type":51,"value":2799},"-",{"type":45,"tag":2409,"props":2801,"children":2802},{"style":2448},[2803],{"type":51,"value":2451},{"type":45,"tag":2409,"props":2805,"children":2806},{"style":2454},[2807],{"type":51,"value":2808},"{Finding 1}",{"type":45,"tag":2409,"props":2810,"children":2811},{"style":2448},[2812],{"type":51,"value":2462},{"type":45,"tag":2409,"props":2814,"children":2815},{"style":2551},[2816],{"type":51,"value":2817},": one-line description with numbers (e.g. \"+4.2pp on ",{"type":45,"tag":2409,"props":2819,"children":2820},{"style":2416},[2821],{"type":51,"value":2563},{"type":45,"tag":2409,"props":2823,"children":2824},{"style":2566},[2825],{"type":51,"value":2826},"tool_accuracy",{"type":45,"tag":2409,"props":2828,"children":2829},{"style":2416},[2830],{"type":51,"value":2563},{"type":45,"tag":2409,"props":2832,"children":2833},{"style":2551},[2834],{"type":51,"value":2835}," across all segments\")\n",{"type":45,"tag":2409,"props":2837,"children":2838},{"class":2411,"line":32},[2839,2843,2847,2852,2856],{"type":45,"tag":2409,"props":2840,"children":2841},{"style":2416},[2842],{"type":51,"value":2799},{"type":45,"tag":2409,"props":2844,"children":2845},{"style":2448},[2846],{"type":51,"value":2451},{"type":45,"tag":2409,"props":2848,"children":2849},{"style":2454},[2850],{"type":51,"value":2851},"{Finding 2}",{"type":45,"tag":2409,"props":2853,"children":2854},{"style":2448},[2855],{"type":51,"value":2462},{"type":45,"tag":2409,"props":2857,"children":2858},{"style":2551},[2859],{"type":51,"value":2860},": one-line description\n",{"type":45,"tag":2409,"props":2862,"children":2864},{"class":2411,"line":2863},20,[2865,2869,2873,2878,2882],{"type":45,"tag":2409,"props":2866,"children":2867},{"style":2416},[2868],{"type":51,"value":2799},{"type":45,"tag":2409,"props":2870,"children":2871},{"style":2448},[2872],{"type":51,"value":2451},{"type":45,"tag":2409,"props":2874,"children":2875},{"style":2454},[2876],{"type":51,"value":2877},"{Finding 3}",{"type":45,"tag":2409,"props":2879,"children":2880},{"style":2448},[2881],{"type":51,"value":2462},{"type":45,"tag":2409,"props":2883,"children":2884},{"style":2551},[2885],{"type":51,"value":2886}," (if present): one-line description\n",{"type":45,"tag":2409,"props":2888,"children":2890},{"class":2411,"line":2889},21,[2891],{"type":45,"tag":2409,"props":2892,"children":2893},{"style":2551},[2894],{"type":51,"value":2895},"[For Q&A modes: one-line verdict bullet + one-line rationale bullet]\n",{"type":45,"tag":2409,"props":2897,"children":2899},{"class":2411,"line":2898},22,[2900],{"type":45,"tag":2409,"props":2901,"children":2902},{"emptyLinePlaceholder":2432},[2903],{"type":51,"value":2435},{"type":45,"tag":2409,"props":2905,"children":2907},{"class":2411,"line":2906},23,[2908,2912],{"type":45,"tag":2409,"props":2909,"children":2910},{"style":2416},[2911],{"type":51,"value":2531},{"type":45,"tag":2409,"props":2913,"children":2914},{"style":2422},[2915],{"type":51,"value":2916},"Recommendations\n",{"type":45,"tag":2409,"props":2918,"children":2920},{"class":2411,"line":2919},24,[2921],{"type":45,"tag":2409,"props":2922,"children":2923},{"emptyLinePlaceholder":2432},[2924],{"type":51,"value":2435},{"type":45,"tag":2409,"props":2926,"children":2928},{"class":2411,"line":2927},25,[2929,2934,2938,2943,2947],{"type":45,"tag":2409,"props":2930,"children":2931},{"style":2416},[2932],{"type":51,"value":2933},"1.",{"type":45,"tag":2409,"props":2935,"children":2936},{"style":2448},[2937],{"type":51,"value":2451},{"type":45,"tag":2409,"props":2939,"children":2940},{"style":2454},[2941],{"type":51,"value":2942},"{Recommendation 1}",{"type":45,"tag":2409,"props":2944,"children":2945},{"style":2448},[2946],{"type":51,"value":2462},{"type":45,"tag":2409,"props":2948,"children":2949},{"style":2551},[2950],{"type":51,"value":2951},": specific, actionable next step tied to a finding\n",{"type":45,"tag":2409,"props":2953,"children":2955},{"class":2411,"line":2954},26,[2956,2961,2965,2970,2974],{"type":45,"tag":2409,"props":2957,"children":2958},{"style":2416},[2959],{"type":51,"value":2960},"2.",{"type":45,"tag":2409,"props":2962,"children":2963},{"style":2448},[2964],{"type":51,"value":2451},{"type":45,"tag":2409,"props":2966,"children":2967},{"style":2454},[2968],{"type":51,"value":2969},"{Recommendation 2}",{"type":45,"tag":2409,"props":2971,"children":2972},{"style":2448},[2973],{"type":51,"value":2462},{"type":45,"tag":2409,"props":2975,"children":2976},{"style":2551},[2977],{"type":51,"value":2978},": specific, actionable next step\n",{"type":45,"tag":2409,"props":2980,"children":2982},{"class":2411,"line":2981},27,[2983,2988,2992,2997,3001],{"type":45,"tag":2409,"props":2984,"children":2985},{"style":2416},[2986],{"type":51,"value":2987},"3.",{"type":45,"tag":2409,"props":2989,"children":2990},{"style":2448},[2991],{"type":51,"value":2451},{"type":45,"tag":2409,"props":2993,"children":2994},{"style":2454},[2995],{"type":51,"value":2996},"{Recommendation 3}",{"type":45,"tag":2409,"props":2998,"children":2999},{"style":2448},[3000],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3002,"children":3003},{"style":2551},[3004],{"type":51,"value":3005}," (if present): specific, actionable next step\n",{"type":45,"tag":2409,"props":3007,"children":3009},{"class":2411,"line":3008},28,[3010],{"type":45,"tag":2409,"props":3011,"children":3012},{"style":2551},[3013],{"type":51,"value":3014},"[Omit this subsection for Q&A modes unless a clear action follows from the answer.]\n",{"type":45,"tag":2409,"props":3016,"children":3018},{"class":2411,"line":3017},29,[3019],{"type":45,"tag":2409,"props":3020,"children":3021},{"emptyLinePlaceholder":2432},[3022],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3024,"children":3026},{"class":2411,"line":3025},30,[3027,3031],{"type":45,"tag":2409,"props":3028,"children":3029},{"style":2416},[3030],{"type":51,"value":2509},{"type":45,"tag":2409,"props":3032,"children":3033},{"style":2422},[3034],{"type":51,"value":3035},"Orientation\n",{"type":45,"tag":2409,"props":3037,"children":3039},{"class":2411,"line":3038},31,[3040],{"type":45,"tag":2409,"props":3041,"children":3042},{"emptyLinePlaceholder":2432},[3043],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3045,"children":3047},{"class":2411,"line":3046},32,[3048,3053,3057,3061,3065],{"type":45,"tag":2409,"props":3049,"children":3050},{"style":2551},[3051],{"type":51,"value":3052},"[Side-by-side table for comparative; summary table for single. Include: samples, errors (count + ",{"type":45,"tag":2409,"props":3054,"children":3055},{"style":2416},[3056],{"type":51,"value":2563},{"type":45,"tag":2409,"props":3058,"children":3059},{"style":2566},[3060],{"type":51,"value":937},{"type":45,"tag":2409,"props":3062,"children":3063},{"style":2416},[3064],{"type":51,"value":2563},{"type":45,"tag":2409,"props":3066,"children":3067},{"style":2551},[3068],{"type":51,"value":3069}," breakdown if non-zero, otherwise \"none\"), metrics, dimensions. Experiment IDs in column headers must be Markdown links.]\n",{"type":45,"tag":2409,"props":3071,"children":3073},{"class":2411,"line":3072},33,[3074],{"type":45,"tag":2409,"props":3075,"children":3076},{"emptyLinePlaceholder":2432},[3077],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3079,"children":3081},{"class":2411,"line":3080},34,[3082],{"type":45,"tag":2409,"props":3083,"children":3084},{"emptyLinePlaceholder":2432},[3085],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3087,"children":3089},{"class":2411,"line":3088},35,[3090,3094],{"type":45,"tag":2409,"props":3091,"children":3092},{"style":2416},[3093],{"type":51,"value":2509},{"type":45,"tag":2409,"props":3095,"children":3096},{"style":2422},[3097],{"type":51,"value":3098},"What Changed\n",{"type":45,"tag":2409,"props":3100,"children":3102},{"class":2411,"line":3101},36,[3103],{"type":45,"tag":2409,"props":3104,"children":3105},{"emptyLinePlaceholder":2432},[3106],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3108,"children":3110},{"class":2411,"line":3109},37,[3111],{"type":45,"tag":2409,"props":3112,"children":3113},{"style":2551},[3114],{"type":51,"value":3115},"[Comparative modes only. Table of differences between baseline and candidate: model, toolset\u002Fskill profile,\n",{"type":45,"tag":2409,"props":3117,"children":3119},{"class":2411,"line":3118},38,[3120],{"type":45,"tag":2409,"props":3121,"children":3122},{"style":2551},[3123],{"type":51,"value":3124},"dataset, evaluator schema, and any other metadata differences detectable from the summary data.\n",{"type":45,"tag":2409,"props":3126,"children":3128},{"class":2411,"line":3127},39,[3129],{"type":45,"tag":2409,"props":3130,"children":3131},{"style":2551},[3132],{"type":51,"value":3133},"If no differences are detectable, write: \"No configuration differences detected between experiments.\"]\n",{"type":45,"tag":2409,"props":3135,"children":3137},{"class":2411,"line":3136},40,[3138],{"type":45,"tag":2409,"props":3139,"children":3140},{"emptyLinePlaceholder":2432},[3141],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3143,"children":3145},{"class":2411,"line":3144},41,[3146,3150],{"type":45,"tag":2409,"props":3147,"children":3148},{"style":2416},[3149],{"type":51,"value":2509},{"type":45,"tag":2409,"props":3151,"children":3152},{"style":2422},[3153],{"type":51,"value":3154},"[Signals | Answer to Question]\n",{"type":45,"tag":2409,"props":3156,"children":3158},{"class":2411,"line":3157},42,[3159],{"type":45,"tag":2409,"props":3160,"children":3161},{"emptyLinePlaceholder":2432},[3162],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3164,"children":3166},{"class":2411,"line":3165},43,[3167],{"type":45,"tag":2409,"props":3168,"children":3169},{"style":2551},[3170],{"type":51,"value":3171},"[For exploratory: ranked table of signals\u002Fsegments with metric deltas and impact counts.]\n",{"type":45,"tag":2409,"props":3173,"children":3175},{"class":2411,"line":3174},44,[3176],{"type":45,"tag":2409,"props":3177,"children":3178},{"style":2551},[3179],{"type":51,"value":3180},"[For Q&A: direct answer with verdict, then supporting evidence.]\n",{"type":45,"tag":2409,"props":3182,"children":3184},{"class":2411,"line":3183},45,[3185],{"type":45,"tag":2409,"props":3186,"children":3187},{"emptyLinePlaceholder":2432},[3188],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3190,"children":3192},{"class":2411,"line":3191},46,[3193,3197],{"type":45,"tag":2409,"props":3194,"children":3195},{"style":2416},[3196],{"type":51,"value":2509},{"type":45,"tag":2409,"props":3198,"children":3199},{"style":2422},[3200],{"type":51,"value":3201},"Deep Dive Findings\n",{"type":45,"tag":2409,"props":3203,"children":3205},{"class":2411,"line":3204},47,[3206],{"type":45,"tag":2409,"props":3207,"children":3208},{"emptyLinePlaceholder":2432},[3209],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3211,"children":3213},{"class":2411,"line":3212},48,[3214,3218],{"type":45,"tag":2409,"props":3215,"children":3216},{"style":2416},[3217],{"type":51,"value":2531},{"type":45,"tag":2409,"props":3219,"children":3220},{"style":2422},[3221],{"type":51,"value":3222},"[Issue\u002FFinding Title]\n",{"type":45,"tag":2409,"props":3224,"children":3226},{"class":2411,"line":3225},49,[3227],{"type":45,"tag":2409,"props":3228,"children":3229},{"emptyLinePlaceholder":2432},[3230],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3232,"children":3234},{"class":2411,"line":3233},50,[3235,3239,3244,3248,3252,3256,3261,3265,3270,3274,3279,3283,3288,3292,3297,3301,3306,3310,3315,3319,3323],{"type":45,"tag":2409,"props":3236,"children":3237},{"style":2448},[3238],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3240,"children":3241},{"style":2454},[3242],{"type":51,"value":3243},"Segment",{"type":45,"tag":2409,"props":3245,"children":3246},{"style":2448},[3247],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3249,"children":3250},{"style":2551},[3251],{"type":51,"value":2274},{"type":45,"tag":2409,"props":3253,"children":3254},{"style":2416},[3255],{"type":51,"value":2563},{"type":45,"tag":2409,"props":3257,"children":3258},{"style":2566},[3259],{"type":51,"value":3260},"[dimension=value]",{"type":45,"tag":2409,"props":3262,"children":3263},{"style":2416},[3264],{"type":51,"value":2563},{"type":45,"tag":2409,"props":3266,"children":3267},{"style":2551},[3268],{"type":51,"value":3269}," | ",{"type":45,"tag":2409,"props":3271,"children":3272},{"style":2448},[3273],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3275,"children":3276},{"style":2454},[3277],{"type":51,"value":3278},"Impact",{"type":45,"tag":2409,"props":3280,"children":3281},{"style":2448},[3282],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3284,"children":3285},{"style":2551},[3286],{"type":51,"value":3287},": N samples | ",{"type":45,"tag":2409,"props":3289,"children":3290},{"style":2448},[3291],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3293,"children":3294},{"style":2454},[3295],{"type":51,"value":3296},"Severity",{"type":45,"tag":2409,"props":3298,"children":3299},{"style":2448},[3300],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3302,"children":3303},{"style":2551},[3304],{"type":51,"value":3305},": metric pass rate = X% | ",{"type":45,"tag":2409,"props":3307,"children":3308},{"style":2416},[3309],{"type":51,"value":1739},{"type":45,"tag":2409,"props":3311,"children":3312},{"style":2566},[3313],{"type":51,"value":3314},"View samples",{"type":45,"tag":2409,"props":3316,"children":3317},{"style":2416},[3318],{"type":51,"value":2578},{"type":45,"tag":2409,"props":3320,"children":3321},{"style":2581},[3322],{"type":51,"value":1815},{"type":45,"tag":2409,"props":3324,"children":3325},{"style":2416},[3326],{"type":51,"value":3327},")\n",{"type":45,"tag":2409,"props":3329,"children":3331},{"class":2411,"line":3330},51,[3332],{"type":45,"tag":2409,"props":3333,"children":3334},{"emptyLinePlaceholder":2432},[3335],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3337,"children":3339},{"class":2411,"line":3338},52,[3340,3344,3349,3353,3357,3361,3366,3370,3375,3379,3384,3388,3393,3397,3402,3406],{"type":45,"tag":2409,"props":3341,"children":3342},{"style":2448},[3343],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3345,"children":3346},{"style":2454},[3347],{"type":51,"value":3348},"Issue type",{"type":45,"tag":2409,"props":3350,"children":3351},{"style":2448},[3352],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3354,"children":3355},{"style":2551},[3356],{"type":51,"value":2274},{"type":45,"tag":2409,"props":3358,"children":3359},{"style":2416},[3360],{"type":51,"value":2563},{"type":45,"tag":2409,"props":3362,"children":3363},{"style":2566},[3364],{"type":51,"value":3365},"Agent",{"type":45,"tag":2409,"props":3367,"children":3368},{"style":2416},[3369],{"type":51,"value":2563},{"type":45,"tag":2409,"props":3371,"children":3372},{"style":2551},[3373],{"type":51,"value":3374}," — the evaluator is sound; the agent output is the problem. | ",{"type":45,"tag":2409,"props":3376,"children":3377},{"style":2416},[3378],{"type":51,"value":2563},{"type":45,"tag":2409,"props":3380,"children":3381},{"style":2566},[3382],{"type":51,"value":3383},"Evaluator\u002FDataset",{"type":45,"tag":2409,"props":3385,"children":3386},{"style":2416},[3387],{"type":51,"value":2563},{"type":45,"tag":2409,"props":3389,"children":3390},{"style":2551},[3391],{"type":51,"value":3392}," — the agent output may be correct; the rubric, ground truth labels, or scoring logic is suspect. | ",{"type":45,"tag":2409,"props":3394,"children":3395},{"style":2416},[3396],{"type":51,"value":2563},{"type":45,"tag":2409,"props":3398,"children":3399},{"style":2566},[3400],{"type":51,"value":3401},"Ambiguous",{"type":45,"tag":2409,"props":3403,"children":3404},{"style":2416},[3405],{"type":51,"value":2563},{"type":45,"tag":2409,"props":3407,"children":3408},{"style":2551},[3409],{"type":51,"value":3410}," — cannot determine from available evidence whether the agent or evaluator is at fault; flag for manual inspection.\n",{"type":45,"tag":2409,"props":3412,"children":3414},{"class":2411,"line":3413},53,[3415],{"type":45,"tag":2409,"props":3416,"children":3417},{"emptyLinePlaceholder":2432},[3418],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3420,"children":3422},{"class":2411,"line":3421},54,[3423,3427,3432,3436],{"type":45,"tag":2409,"props":3424,"children":3425},{"style":2448},[3426],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3428,"children":3429},{"style":2454},[3430],{"type":51,"value":3431},"What's happening",{"type":45,"tag":2409,"props":3433,"children":3434},{"style":2448},[3435],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3437,"children":3438},{"style":2551},[3439],{"type":51,"value":3440},": [1–2 sentences: key observation and metric impact only]\n",{"type":45,"tag":2409,"props":3442,"children":3444},{"class":2411,"line":3443},55,[3445],{"type":45,"tag":2409,"props":3446,"children":3447},{"emptyLinePlaceholder":2432},[3448],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3450,"children":3452},{"class":2411,"line":3451},56,[3453,3457,3462,3466],{"type":45,"tag":2409,"props":3454,"children":3455},{"style":2448},[3456],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3458,"children":3459},{"style":2454},[3460],{"type":51,"value":3461},"Representative examples",{"type":45,"tag":2409,"props":3463,"children":3464},{"style":2448},[3465],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3467,"children":3468},{"style":2551},[3469],{"type":51,"value":3470},":\n",{"type":45,"tag":2409,"props":3472,"children":3474},{"class":2411,"line":3473},57,[3475,3479],{"type":45,"tag":2409,"props":3476,"children":3477},{"style":2416},[3478],{"type":51,"value":2799},{"type":45,"tag":2409,"props":3480,"children":3481},{"style":2551},[3482],{"type":51,"value":3483}," [Span link]: [input → output → expected, what went wrong]\n",{"type":45,"tag":2409,"props":3485,"children":3487},{"class":2411,"line":3486},58,[3488],{"type":45,"tag":2409,"props":3489,"children":3490},{"emptyLinePlaceholder":2432},[3491],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3493,"children":3495},{"class":2411,"line":3494},59,[3496,3500,3505,3509,3513,3517,3522,3526],{"type":45,"tag":2409,"props":3497,"children":3498},{"style":2448},[3499],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3501,"children":3502},{"style":2454},[3503],{"type":51,"value":3504},"Root cause hypothesis",{"type":45,"tag":2409,"props":3506,"children":3507},{"style":2448},[3508],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3510,"children":3511},{"style":2551},[3512],{"type":51,"value":2274},{"type":45,"tag":2409,"props":3514,"children":3515},{"style":2416},[3516],{"type":51,"value":1739},{"type":45,"tag":2409,"props":3518,"children":3519},{"style":2566},[3520],{"type":51,"value":3521},"Category",{"type":45,"tag":2409,"props":3523,"children":3524},{"style":2416},[3525],{"type":51,"value":1796},{"type":45,"tag":2409,"props":3527,"children":3528},{"style":2551},[3529],{"type":51,"value":3530},": [Explanation tied to evidence]\n",{"type":45,"tag":2409,"props":3532,"children":3534},{"class":2411,"line":3533},60,[3535],{"type":45,"tag":2409,"props":3536,"children":3537},{"emptyLinePlaceholder":2432},[3538],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3540,"children":3542},{"class":2411,"line":3541},61,[3543,3547,3552,3556],{"type":45,"tag":2409,"props":3544,"children":3545},{"style":2448},[3546],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3548,"children":3549},{"style":2454},[3550],{"type":51,"value":3551},"Recommendation",{"type":45,"tag":2409,"props":3553,"children":3554},{"style":2448},[3555],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3557,"children":3558},{"style":2551},[3559],{"type":51,"value":3560},": [Specific, actionable next step]\n",{"type":45,"tag":2409,"props":3562,"children":3564},{"class":2411,"line":3563},62,[3565],{"type":45,"tag":2409,"props":3566,"children":3567},{"emptyLinePlaceholder":2432},[3568],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3570,"children":3572},{"class":2411,"line":3571},63,[3573],{"type":45,"tag":2409,"props":3574,"children":3575},{"style":2416},[3576],{"type":51,"value":3577},"---\n",{"type":45,"tag":2409,"props":3579,"children":3581},{"class":2411,"line":3580},64,[3582],{"type":45,"tag":2409,"props":3583,"children":3584},{"style":2551},[3585],{"type":51,"value":3586},"[Repeat for each major issue]\n",{"type":45,"tag":2409,"props":3588,"children":3590},{"class":2411,"line":3589},65,[3591],{"type":45,"tag":2409,"props":3592,"children":3593},{"emptyLinePlaceholder":2432},[3594],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3596,"children":3598},{"class":2411,"line":3597},66,[3599,3603],{"type":45,"tag":2409,"props":3600,"children":3601},{"style":2416},[3602],{"type":51,"value":2509},{"type":45,"tag":2409,"props":3604,"children":3605},{"style":2422},[3606],{"type":51,"value":3607},"Synthesis\n",{"type":45,"tag":2409,"props":3609,"children":3611},{"class":2411,"line":3610},67,[3612],{"type":45,"tag":2409,"props":3613,"children":3614},{"emptyLinePlaceholder":2432},[3615],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3617,"children":3619},{"class":2411,"line":3618},68,[3620],{"type":45,"tag":2409,"props":3621,"children":3622},{"style":2551},[3623],{"type":51,"value":3624},"[Required in all modes. Comes after all Deep Dive Findings, before UI Links.]\n",{"type":45,"tag":2409,"props":3626,"children":3628},{"class":2411,"line":3627},69,[3629],{"type":45,"tag":2409,"props":3630,"children":3631},{"emptyLinePlaceholder":2432},[3632],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3634,"children":3636},{"class":2411,"line":3635},70,[3637,3641,3646,3650],{"type":45,"tag":2409,"props":3638,"children":3639},{"style":2448},[3640],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3642,"children":3643},{"style":2454},[3644],{"type":51,"value":3645},"Issue tally",{"type":45,"tag":2409,"props":3647,"children":3648},{"style":2448},[3649],{"type":51,"value":2462},{"type":45,"tag":2409,"props":3651,"children":3652},{"style":2551},[3653],{"type":51,"value":3654},": [N agent issues, N evaluator\u002Fdataset issues, N ambiguous]\n",{"type":45,"tag":2409,"props":3656,"children":3658},{"class":2411,"line":3657},71,[3659],{"type":45,"tag":2409,"props":3660,"children":3661},{"emptyLinePlaceholder":2432},[3662],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3664,"children":3666},{"class":2411,"line":3665},72,[3667,3671],{"type":45,"tag":2409,"props":3668,"children":3669},{"style":2416},[3670],{"type":51,"value":2531},{"type":45,"tag":2409,"props":3672,"children":3673},{"style":2422},[3674],{"type":51,"value":3675},"Overall Performance Assessment\n",{"type":45,"tag":2409,"props":3677,"children":3679},{"class":2411,"line":3678},73,[3680],{"type":45,"tag":2409,"props":3681,"children":3682},{"style":2551},[3683],{"type":51,"value":3684},"[2–4 sentences on overall quality: what the experiment shows, whether the app\u002Fmodel is production-ready on this task, key numbers.]\n",{"type":45,"tag":2409,"props":3686,"children":3688},{"class":2411,"line":3687},74,[3689],{"type":45,"tag":2409,"props":3690,"children":3691},{"emptyLinePlaceholder":2432},[3692],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3694,"children":3696},{"class":2411,"line":3695},75,[3697,3701],{"type":45,"tag":2409,"props":3698,"children":3699},{"style":2416},[3700],{"type":51,"value":2531},{"type":45,"tag":2409,"props":3702,"children":3703},{"style":2422},[3704],{"type":51,"value":3705},"Worst-Performing Segments\n",{"type":45,"tag":2409,"props":3707,"children":3709},{"class":2411,"line":3708},76,[3710],{"type":45,"tag":2409,"props":3711,"children":3712},{"style":2551},[3713],{"type":51,"value":3714},"[Bullet list: which dimension values or conditions most reliably predict failure. Include metric values.]\n",{"type":45,"tag":2409,"props":3716,"children":3718},{"class":2411,"line":3717},77,[3719],{"type":45,"tag":2409,"props":3720,"children":3721},{"emptyLinePlaceholder":2432},[3722],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3724,"children":3726},{"class":2411,"line":3725},78,[3727,3731],{"type":45,"tag":2409,"props":3728,"children":3729},{"style":2416},[3730],{"type":51,"value":2531},{"type":45,"tag":2409,"props":3732,"children":3733},{"style":2422},[3734],{"type":51,"value":3735},"Root Cause Hypothesis\n",{"type":45,"tag":2409,"props":3737,"children":3739},{"class":2411,"line":3738},79,[3740],{"type":45,"tag":2409,"props":3741,"children":3742},{"style":2551},[3743],{"type":51,"value":3744},"[The single most likely root cause across all findings. If multiple independent root causes, list them ranked by impact. Each hypothesis must be tied to specific evidence, not to label names or general reasoning.]\n",{"type":45,"tag":2409,"props":3746,"children":3748},{"class":2411,"line":3747},80,[3749],{"type":45,"tag":2409,"props":3750,"children":3751},{"emptyLinePlaceholder":2432},[3752],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3754,"children":3756},{"class":2411,"line":3755},81,[3757,3761],{"type":45,"tag":2409,"props":3758,"children":3759},{"style":2416},[3760],{"type":51,"value":2531},{"type":45,"tag":2409,"props":3762,"children":3763},{"style":2422},[3764],{"type":51,"value":3765},"Recommended Next Experiments\n",{"type":45,"tag":2409,"props":3767,"children":3769},{"class":2411,"line":3768},82,[3770,3775,3779,3784,3788],{"type":45,"tag":2409,"props":3771,"children":3772},{"style":2551},[3773],{"type":51,"value":3774},"[2–4 concrete, specific follow-up experiments. Each should be actionable: e.g. \"Re-run with ",{"type":45,"tag":2409,"props":3776,"children":3777},{"style":2416},[3778],{"type":51,"value":2563},{"type":45,"tag":2409,"props":3780,"children":3781},{"style":2566},[3782],{"type":51,"value":3783},"max_turns=40",{"type":45,"tag":2409,"props":3785,"children":3786},{"style":2416},[3787],{"type":51,"value":2563},{"type":45,"tag":2409,"props":3789,"children":3790},{"style":2551},[3791],{"type":51,"value":3792}," to test whether turn exhaustion is the primary driver, not model quality\" not \"Investigate turn limits further.\"]\n",{"type":45,"tag":2409,"props":3794,"children":3796},{"class":2411,"line":3795},83,[3797],{"type":45,"tag":2409,"props":3798,"children":3799},{"emptyLinePlaceholder":2432},[3800],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3802,"children":3804},{"class":2411,"line":3803},84,[3805,3809],{"type":45,"tag":2409,"props":3806,"children":3807},{"style":2416},[3808],{"type":51,"value":2509},{"type":45,"tag":2409,"props":3810,"children":3811},{"style":2422},[3812],{"type":51,"value":3813},"UI Links\n",{"type":45,"tag":2409,"props":3815,"children":3817},{"class":2411,"line":3816},85,[3818],{"type":45,"tag":2409,"props":3819,"children":3820},{"emptyLinePlaceholder":2432},[3821],{"type":51,"value":2435},{"type":45,"tag":2409,"props":3823,"children":3825},{"class":2411,"line":3824},86,[3826],{"type":45,"tag":2409,"props":3827,"children":3828},{"style":2551},[3829],{"type":51,"value":3830},"[All generated Datadog UI links with labels]\n",{"type":45,"tag":628,"props":3832,"children":3833},{},[],{"type":45,"tag":46,"props":3835,"children":3837},{"id":3836},"operating-rules",[3838],{"type":51,"value":3839},"Operating Rules",{"type":45,"tag":219,"props":3841,"children":3842},{},[3843,3848,3853,3858,3863],{"type":45,"tag":70,"props":3844,"children":3845},{},[3846],{"type":51,"value":3847},"Do not assume anything about the experiment (model, task, metrics, schema, dimensions). Infer everything by inspecting the data.",{"type":45,"tag":70,"props":3849,"children":3850},{},[3851],{"type":51,"value":3852},"Ground all conclusions in specific evidence: event IDs, counts, percentages.",{"type":45,"tag":70,"props":3854,"children":3855},{},[3856],{"type":51,"value":3857},"Show math: include counts and rates, not just qualitative claims.",{"type":45,"tag":70,"props":3859,"children":3860},{},[3861],{"type":51,"value":3862},"Avoid speculative explanations not supported by observed evidence.",{"type":45,"tag":70,"props":3864,"children":3865},{},[3866],{"type":51,"value":3867},"Mask or redact PII in all user-visible output.",{"type":45,"tag":628,"props":3869,"children":3870},{},[],{"type":45,"tag":46,"props":3872,"children":3874},{"id":3873},"tool-reference",[3875],{"type":51,"value":3876},"Tool Reference",{"type":45,"tag":54,"props":3878,"children":3879},{},[3880,3882,3886],{"type":51,"value":3881},"This appendix applies only in ",{"type":45,"tag":58,"props":3883,"children":3884},{},[3885],{"type":51,"value":88},{"type":51,"value":3887},". In MCP mode, use the tool names in the workflow sections directly.",{"type":45,"tag":3889,"props":3890,"children":3892},"h3",{"id":3891},"experiments",[3893],{"type":51,"value":3894},"Experiments",{"type":45,"tag":350,"props":3896,"children":3897},{},[3898,3914],{"type":45,"tag":354,"props":3899,"children":3900},{},[3901],{"type":45,"tag":358,"props":3902,"children":3903},{},[3904,3909],{"type":45,"tag":362,"props":3905,"children":3906},{},[3907],{"type":51,"value":3908},"MCP Tool",{"type":45,"tag":362,"props":3910,"children":3911},{},[3912],{"type":51,"value":3913},"pup Command",{"type":45,"tag":373,"props":3915,"children":3916},{},[3917,3938,3969,3990,4011],{"type":45,"tag":358,"props":3918,"children":3919},{},[3920,3929],{"type":45,"tag":380,"props":3921,"children":3922},{},[3923],{"type":45,"tag":76,"props":3924,"children":3926},{"className":3925},[],[3927],{"type":51,"value":3928},"get_llmobs_experiment_summary(experiment_id)",{"type":45,"tag":380,"props":3930,"children":3931},{},[3932],{"type":45,"tag":76,"props":3933,"children":3935},{"className":3934},[],[3936],{"type":51,"value":3937},"pup llm-obs experiments summary EXPERIMENT_ID",{"type":45,"tag":358,"props":3939,"children":3940},{},[3941,3950],{"type":45,"tag":380,"props":3942,"children":3943},{},[3944],{"type":45,"tag":76,"props":3945,"children":3947},{"className":3946},[],[3948],{"type":51,"value":3949},"list_llmobs_experiment_events(experiment_id, ...)",{"type":45,"tag":380,"props":3951,"children":3952},{},[3953,3959,3961,3967],{"type":45,"tag":76,"props":3954,"children":3956},{"className":3955},[],[3957],{"type":51,"value":3958},"pup llm-obs experiments events list EXPERIMENT_ID [--filter-metric-label L] [--sort-by-metric M] [--sort-direction asc|desc] [--limit N]",{"type":51,"value":3960}," — confirm filter\u002Fsort flag names with ",{"type":45,"tag":76,"props":3962,"children":3964},{"className":3963},[],[3965],{"type":51,"value":3966},"pup llm-obs experiments events list --help",{"type":51,"value":3968}," before use",{"type":45,"tag":358,"props":3970,"children":3971},{},[3972,3981],{"type":45,"tag":380,"props":3973,"children":3974},{},[3975],{"type":45,"tag":76,"props":3976,"children":3978},{"className":3977},[],[3979],{"type":51,"value":3980},"get_llmobs_experiment_event(experiment_id, event_id)",{"type":45,"tag":380,"props":3982,"children":3983},{},[3984],{"type":45,"tag":76,"props":3985,"children":3987},{"className":3986},[],[3988],{"type":51,"value":3989},"pup llm-obs experiments events get EXPERIMENT_ID EVENT_ID",{"type":45,"tag":358,"props":3991,"children":3992},{},[3993,4002],{"type":45,"tag":380,"props":3994,"children":3995},{},[3996],{"type":45,"tag":76,"props":3997,"children":3999},{"className":3998},[],[4000],{"type":51,"value":4001},"get_llmobs_experiment_metric_values(experiment_id, metric_label, ...)",{"type":45,"tag":380,"props":4003,"children":4004},{},[4005],{"type":45,"tag":76,"props":4006,"children":4008},{"className":4007},[],[4009],{"type":51,"value":4010},"pup llm-obs experiments metric-values EXPERIMENT_ID --metric-label L [--segment-by-dimension D] [--segment-dimension-value V]",{"type":45,"tag":358,"props":4012,"children":4013},{},[4014,4023],{"type":45,"tag":380,"props":4015,"children":4016},{},[4017],{"type":45,"tag":76,"props":4018,"children":4020},{"className":4019},[],[4021],{"type":51,"value":4022},"get_llmobs_experiment_dimension_values(experiment_id, dimension_key)",{"type":45,"tag":380,"props":4024,"children":4025},{},[4026],{"type":45,"tag":76,"props":4027,"children":4029},{"className":4028},[],[4030],{"type":51,"value":4031},"pup llm-obs experiments dimension-values EXPERIMENT_ID --dimension-key K",{"type":45,"tag":3889,"props":4033,"children":4035},{"id":4034},"notebooks",[4036],{"type":51,"value":4037},"Notebooks",{"type":45,"tag":350,"props":4039,"children":4040},{},[4041,4055],{"type":45,"tag":354,"props":4042,"children":4043},{},[4044],{"type":45,"tag":358,"props":4045,"children":4046},{},[4047,4051],{"type":45,"tag":362,"props":4048,"children":4049},{},[4050],{"type":51,"value":3908},{"type":45,"tag":362,"props":4052,"children":4053},{},[4054],{"type":51,"value":3913},{"type":45,"tag":373,"props":4056,"children":4057},{},[4058],{"type":45,"tag":358,"props":4059,"children":4060},{},[4061,4070],{"type":45,"tag":380,"props":4062,"children":4063},{},[4064],{"type":45,"tag":76,"props":4065,"children":4067},{"className":4066},[],[4068],{"type":51,"value":4069},"create_datadog_notebook(name, cells, ...)",{"type":45,"tag":380,"props":4071,"children":4072},{},[4073,4078,4080],{"type":45,"tag":76,"props":4074,"children":4076},{"className":4075},[],[4077],{"type":51,"value":831},{"type":51,"value":4079}," — confirm exact flags with ",{"type":45,"tag":76,"props":4081,"children":4083},{"className":4082},[],[4084],{"type":51,"value":4085},"pup notebooks create --help",{"type":45,"tag":54,"props":4087,"children":4088},{},[4089],{"type":51,"value":4090},"The cells file is a JSON array of cell objects:",{"type":45,"tag":436,"props":4092,"children":4096},{"className":4093,"code":4094,"language":4095,"meta":444,"style":444},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[{\"attributes\": {\"definition\": {\"type\": \"markdown\", \"text\": \"## Section\\n\\nContent.\"}}, \"type\": \"notebook_cells\"}]\n","json",[4097],{"type":45,"tag":76,"props":4098,"children":4099},{"__ignoreMap":444},[4100],{"type":45,"tag":2409,"props":4101,"children":4102},{"class":2411,"line":2412},[4103,4108,4112,4118,4122,4127,4132,4136,4141,4145,4149,4153,4157,4163,4167,4171,4176,4180,4184,4189,4193,4197,4201,4205,4209,4214,4219,4224,4228,4233,4237,4241,4245,4249,4253,4258,4262],{"type":45,"tag":2409,"props":4104,"children":4105},{"style":2416},[4106],{"type":51,"value":4107},"[{",{"type":45,"tag":2409,"props":4109,"children":4110},{"style":2416},[4111],{"type":51,"value":1768},{"type":45,"tag":2409,"props":4113,"children":4115},{"style":4114},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[4116],{"type":51,"value":4117},"attributes",{"type":45,"tag":2409,"props":4119,"children":4120},{"style":2416},[4121],{"type":51,"value":1768},{"type":45,"tag":2409,"props":4123,"children":4124},{"style":2416},[4125],{"type":51,"value":4126},":",{"type":45,"tag":2409,"props":4128,"children":4129},{"style":2416},[4130],{"type":51,"value":4131}," {",{"type":45,"tag":2409,"props":4133,"children":4134},{"style":2416},[4135],{"type":51,"value":1768},{"type":45,"tag":2409,"props":4137,"children":4138},{"style":2422},[4139],{"type":51,"value":4140},"definition",{"type":45,"tag":2409,"props":4142,"children":4143},{"style":2416},[4144],{"type":51,"value":1768},{"type":45,"tag":2409,"props":4146,"children":4147},{"style":2416},[4148],{"type":51,"value":4126},{"type":45,"tag":2409,"props":4150,"children":4151},{"style":2416},[4152],{"type":51,"value":4131},{"type":45,"tag":2409,"props":4154,"children":4155},{"style":2416},[4156],{"type":51,"value":1768},{"type":45,"tag":2409,"props":4158,"children":4160},{"style":4159},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[4161],{"type":51,"value":4162},"type",{"type":45,"tag":2409,"props":4164,"children":4165},{"style":2416},[4166],{"type":51,"value":1768},{"type":45,"tag":2409,"props":4168,"children":4169},{"style":2416},[4170],{"type":51,"value":4126},{"type":45,"tag":2409,"props":4172,"children":4173},{"style":2416},[4174],{"type":51,"value":4175}," \"",{"type":45,"tag":2409,"props":4177,"children":4178},{"style":2566},[4179],{"type":51,"value":2403},{"type":45,"tag":2409,"props":4181,"children":4182},{"style":2416},[4183],{"type":51,"value":1768},{"type":45,"tag":2409,"props":4185,"children":4186},{"style":2416},[4187],{"type":51,"value":4188},",",{"type":45,"tag":2409,"props":4190,"children":4191},{"style":2416},[4192],{"type":51,"value":4175},{"type":45,"tag":2409,"props":4194,"children":4195},{"style":4159},[4196],{"type":51,"value":51},{"type":45,"tag":2409,"props":4198,"children":4199},{"style":2416},[4200],{"type":51,"value":1768},{"type":45,"tag":2409,"props":4202,"children":4203},{"style":2416},[4204],{"type":51,"value":4126},{"type":45,"tag":2409,"props":4206,"children":4207},{"style":2416},[4208],{"type":51,"value":4175},{"type":45,"tag":2409,"props":4210,"children":4211},{"style":2566},[4212],{"type":51,"value":4213},"## Section",{"type":45,"tag":2409,"props":4215,"children":4216},{"style":2551},[4217],{"type":51,"value":4218},"\\n\\n",{"type":45,"tag":2409,"props":4220,"children":4221},{"style":2566},[4222],{"type":51,"value":4223},"Content.",{"type":45,"tag":2409,"props":4225,"children":4226},{"style":2416},[4227],{"type":51,"value":1768},{"type":45,"tag":2409,"props":4229,"children":4230},{"style":2416},[4231],{"type":51,"value":4232},"}},",{"type":45,"tag":2409,"props":4234,"children":4235},{"style":2416},[4236],{"type":51,"value":4175},{"type":45,"tag":2409,"props":4238,"children":4239},{"style":4114},[4240],{"type":51,"value":4162},{"type":45,"tag":2409,"props":4242,"children":4243},{"style":2416},[4244],{"type":51,"value":1768},{"type":45,"tag":2409,"props":4246,"children":4247},{"style":2416},[4248],{"type":51,"value":4126},{"type":45,"tag":2409,"props":4250,"children":4251},{"style":2416},[4252],{"type":51,"value":4175},{"type":45,"tag":2409,"props":4254,"children":4255},{"style":2566},[4256],{"type":51,"value":4257},"notebook_cells",{"type":45,"tag":2409,"props":4259,"children":4260},{"style":2416},[4261],{"type":51,"value":1768},{"type":45,"tag":2409,"props":4263,"children":4264},{"style":2416},[4265],{"type":51,"value":4266},"}]\n",{"type":45,"tag":219,"props":4268,"children":4269},{},[4270],{"type":45,"tag":70,"props":4271,"children":4272},{},[4273],{"type":51,"value":4274},"Never show internal tool calls, schemas, or implementation details to the user.",{"type":45,"tag":4276,"props":4277,"children":4278},"style",{},[4279],{"type":51,"value":4280},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":4282,"total":3080},[4283,4298,4312,4323,4339,4347,4363],{"slug":4284,"name":4284,"fn":4285,"description":4286,"org":4287,"tags":4288,"stars":28,"repoUrl":29,"updatedAt":4297},"agent-install","install Datadog Agent on Kubernetes","Install the Datadog Agent on Kubernetes using the Datadog Operator — required before enabling Single Step Instrumentation (SSI), which automatically instruments applications for APM without code changes. Only use if no Datadog Agent is deployed on the cluster yet.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4289,4290,4293,4296],{"name":20,"slug":21,"type":15},{"name":4291,"slug":4292,"type":15},"Deployment","deployment",{"name":4294,"slug":4295,"type":15},"Kubernetes","kubernetes",{"name":13,"slug":14,"type":15},"2026-04-15T04:57:27.489805",{"slug":4299,"name":4299,"fn":4300,"description":4301,"org":4302,"tags":4303,"stars":28,"repoUrl":29,"updatedAt":4311},"agent-observability-auto-experiment","run iterative code improvements using Datadog data","Run an iterative code-improvement hill-climb against real Datadog LLM-Obs data, locally, with Claude Code as the agent. Establishes a baseline eval, makes one focused change, re-scores with the same harness, keeps the change if it improves the score in the goal's direction (labeling within-noise gains tentative), and repeats. Use when the user says \"run an auto experiment\", \"hill-climb this code\", \"iteratively improve X and measure the delta\", \"optimize this prompt\u002Ffile against my traces\", \"auto-optimize against LLM-Obs\", or wants the local equivalent of the auto_experiments worker. Works from a local dataset file, an ml_app, a dataset_id, or a list of trace_ids.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4304,4305,4308,4309,4310],{"name":20,"slug":21,"type":15},{"name":4306,"slug":4307,"type":15},"Debugging","debugging",{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-07-31T05:52:13.711906",{"slug":4313,"name":4313,"fn":4314,"description":4315,"org":4316,"tags":4317,"stars":28,"repoUrl":29,"updatedAt":4322},"agent-observability-eval-bootstrap","bootstrap evaluators from production traces","Bootstrap evaluators from production traces — by default propose online LLM-judge evaluators and, after you confirm, create them in Datadog as disabled drafts (never auto-enabled); on request emit Python SDK code or a framework-agnostic JSON spec instead. Use when user says \"bootstrap evaluators\", \"generate evaluators\", \"create evals from traces\", \"eval bootstrap\", \"write evaluators\", \"build eval suite\", \"publish evaluators\", or wants to generate BaseEvaluator\u002FLLMJudge code or online judge configs from production LLM trace data. Works with ml_app and optional RCA report or failure hypothesis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4318,4319,4320,4321],{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-06-19T09:04:19.259734",{"slug":4324,"name":4324,"fn":4325,"description":4326,"org":4327,"tags":4328,"stars":28,"repoUrl":29,"updatedAt":4338},"agent-observability-eval-pipeline","run agent observability and evaluation pipelines","End-to-end Agent Observability pipeline for an instrumented ml_app — classify production traces, root-cause failures, bootstrap evaluators, then (optionally) sample + publish a dataset, generate + run an experiment, and analyze results. Six narrated phases with a standardized banner and a \"continue\" checkpoint between each. Pure orchestration over the agent-observability sub-skills (`agent-observability-session-classify`, `agent-observability-trace-rca`, `agent-observability-eval-bootstrap`, `agent-observability-experiment-py-bootstrap`, `agent-observability-experiment-analyzer`). Use when user says \"run the eval pipeline\", \"go from traces to evals\", \"bootstrap evals end to end\", \"classify then RCA then bootstrap\", \"build an eval set from scratch\", \"onboard me to datasets and experiments\", \"walk me through experiments\", \"I have an ml_app, now what\", \"Agent Observability onboarding\", \"guided experiment setup\", \"from traces to experiments\", or wants a deterministic, narrated tour from production data through evaluators, datasets, and experiments. Stop early with `--stop-after \u003Cphase>` to short-circuit at evaluators or dataset, or resume mid-flow with `--start-at \u003Cphase>`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4329,4332,4335,4336,4337],{"name":4330,"slug":4331,"type":15},"Agents","agents",{"name":4333,"slug":4334,"type":15},"Data Pipeline","data-pipeline",{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},"2026-06-19T09:04:17.231423",{"slug":4,"name":4,"fn":5,"description":6,"org":4340,"tags":4341,"stars":28,"repoUrl":29,"updatedAt":30},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4342,4343,4344,4345,4346],{"name":26,"slug":27,"type":15},{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":4348,"name":4348,"fn":4349,"description":4350,"org":4351,"tags":4352,"stars":28,"repoUrl":29,"updatedAt":4362},"agent-observability-experiment-py-bootstrap","generate Python experiment clients for LLM observability","Generates a self-contained Python experiment client that uses the ddtrace.llmobs SDK. Emits either a runnable .py script or a Jupyter .ipynb notebook matching the canonical DataDog reference notebook style. Use when the user says \"generate Python experiment\", \"write an SDK experiment\", \"create a ddtrace experiment\", \"Python notebook experiment\", \"use the Agent Observability SDK\", or has `ddtrace` installed and wants idiomatic SDK code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4353,4354,4357,4358,4359],{"name":20,"slug":21,"type":15},{"name":4355,"slug":4356,"type":15},"Jupyter","jupyter",{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":4360,"slug":4361,"type":15},"Python","python","2026-06-19T09:04:22.640384",{"slug":4364,"name":4364,"fn":4365,"description":4366,"org":4367,"tags":4368,"stars":28,"repoUrl":29,"updatedAt":4376},"agent-observability-replay-trace","iterate on LLM traces with local code","Use when a developer wants to iterate on ONE specific Agent Observability \u002F LLM Obs trace whose output they didn't like — re-running that trace against their LOCAL code, seeing a concise diff of the old vs new output, and looping (change code → replay → diff) until satisfied. Invoked as \u002Fagent-observability-replay-trace \u003Ctrace-id> [changes to test]. Signals: \"replay this trace\"; \"iterate on a trace\"; \"this trace's output is wrong, fix it and re-run\"; \"re-run trace \u003Cid> with \u003Cchange>\"; pasting a trace id from the Agent Observability UI with a description of what to fix. It fetches the trace via the datadog-llmo MCP or the pup CLI, edits code, re-runs the app to emit a NEW trace, and diffs the two — no local server, no browser. For agents traced with ddtrace \u002F LLM Obs (Python first-class), with JSON-serializable entry input. Do NOT use for: scored Experiments or the browser \"Replay\" button (that's agent-observability-replay-experiment), building an experiment from a dataset\u002FCSV, writing evaluators, root-causing failed traces, or RUM\u002FHTTP session replay.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4369,4370,4371,4372,4373],{"name":20,"slug":21,"type":15},{"name":4306,"slug":4307,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":4374,"slug":4375,"type":15},"Tracing","tracing","2026-07-31T05:52:08.594182",{"items":4378,"total":3088},[4379,4386,4394,4401,4409,4417,4425,4433,4445,4457,4469,4489],{"slug":4284,"name":4284,"fn":4285,"description":4286,"org":4380,"tags":4381,"stars":28,"repoUrl":29,"updatedAt":4297},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4382,4383,4384,4385],{"name":20,"slug":21,"type":15},{"name":4291,"slug":4292,"type":15},{"name":4294,"slug":4295,"type":15},{"name":13,"slug":14,"type":15},{"slug":4299,"name":4299,"fn":4300,"description":4301,"org":4387,"tags":4388,"stars":28,"repoUrl":29,"updatedAt":4311},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4389,4390,4391,4392,4393],{"name":20,"slug":21,"type":15},{"name":4306,"slug":4307,"type":15},{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":4313,"name":4313,"fn":4314,"description":4315,"org":4395,"tags":4396,"stars":28,"repoUrl":29,"updatedAt":4322},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4397,4398,4399,4400],{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":4324,"name":4324,"fn":4325,"description":4326,"org":4402,"tags":4403,"stars":28,"repoUrl":29,"updatedAt":4338},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4404,4405,4406,4407,4408],{"name":4330,"slug":4331,"type":15},{"name":4333,"slug":4334,"type":15},{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":4410,"tags":4411,"stars":28,"repoUrl":29,"updatedAt":30},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4412,4413,4414,4415,4416],{"name":26,"slug":27,"type":15},{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":4348,"name":4348,"fn":4349,"description":4350,"org":4418,"tags":4419,"stars":28,"repoUrl":29,"updatedAt":4362},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4420,4421,4422,4423,4424],{"name":20,"slug":21,"type":15},{"name":4355,"slug":4356,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":4360,"slug":4361,"type":15},{"slug":4364,"name":4364,"fn":4365,"description":4366,"org":4426,"tags":4427,"stars":28,"repoUrl":29,"updatedAt":4376},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4428,4429,4430,4431,4432],{"name":20,"slug":21,"type":15},{"name":4306,"slug":4307,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":4374,"slug":4375,"type":15},{"slug":4434,"name":4434,"fn":4435,"description":4436,"org":4437,"tags":4438,"stars":28,"repoUrl":29,"updatedAt":4444},"agent-observability-session-classify","evaluate user intent satisfaction in sessions","Classify whether user intent was satisfied in a Datadog Agent Observability trace or session. Three modes: (1) session_id — classify a single CMD+I assistant session with RUM; (2) trace_id — classify a single Agent Observability trace without RUM; (3) ml_app — sample and classify multiple sessions or traces from a given LLM app. Output is compact by default (verdict + one-sentence reason). Use when evaluating satisfaction, classifying sessions\u002Ftraces, labeling data, or generating signal for agent-observability-eval-pipeline or agent-observability-trace-rca.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4439,4440,4441,4442,4443],{"name":26,"slug":27,"type":15},{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-06-19T09:04:26.341497",{"slug":4446,"name":4446,"fn":4447,"description":4448,"org":4449,"tags":4450,"stars":28,"repoUrl":29,"updatedAt":4456},"agent-observability-trace-rca","diagnose LLM application failures from traces","Root cause analysis on production LLM traces. Diagnoses why an LLM application is failing — works from eval judge verdicts, runtime errors, or structural anomalies depending on what signals are present. Walks the span tree from symptom to root cause. Use when user says \"what's wrong with my app\", \"why is my eval failing\", \"analyze errors\", \"root cause analysis\", \"diagnose failures\", or wants to understand production failure patterns.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4451,4452,4453,4454,4455],{"name":20,"slug":21,"type":15},{"name":4306,"slug":4307,"type":15},{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-06-19T09:04:24.316244",{"slug":4458,"name":4458,"fn":4459,"description":4460,"org":4461,"tags":4462,"stars":28,"repoUrl":29,"updatedAt":4468},"agent-skills","use Datadog observability skills","Datadog skills for AI agents. Essential monitoring, logging, tracing and observability.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4463,4464,4467],{"name":20,"slug":21,"type":15},{"name":4465,"slug":4466,"type":15},"Monitoring","monitoring",{"name":13,"slug":14,"type":15},"2026-04-06T18:08:33.337476",{"slug":4470,"name":4470,"fn":4471,"description":4472,"org":4473,"tags":4474,"stars":28,"repoUrl":29,"updatedAt":4488},"datadog-app","build and manage Datadog applications","Guides developers building Datadog Apps with TypeScript, React, the @datadog\u002Fapps scaffolder, and @datadog\u002Fvite-plugin. Use when a user wants to scaffold, run, debug, upgrade, build, upload, publish, upload without publishing (draft upload), add an upload-no-publish script, set up CI\u002FCD, use OAuth or API\u002Fapplication key auth, trigger\u002Fpoll Workflow Automation, choose DDSQL or Action Catalog for backend data access, or query app datastores with DDSQL, including backend function troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4475,4476,4479,4482,4485],{"name":20,"slug":21,"type":15},{"name":4477,"slug":4478,"type":15},"Frontend","frontend",{"name":4480,"slug":4481,"type":15},"React","react",{"name":4483,"slug":4484,"type":15},"TypeScript","typescript",{"name":4486,"slug":4487,"type":15},"Vite","vite","2026-06-18T08:01:32.562331",{"slug":4490,"name":4490,"fn":4491,"description":4492,"org":4493,"tags":4494,"stars":28,"repoUrl":29,"updatedAt":4503},"dd-apm","query Datadog APM traces","APM - install, onboard, instrument, enable, set up, configure, traces, services, dependencies, performance analysis. Use for any request involving Datadog APM setup, instrumentation (SSI, ddtrace, agent install), or analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4495,4496,4499,4500],{"name":20,"slug":21,"type":15},{"name":4497,"slug":4498,"type":15},"Distributed Tracing","distributed-tracing",{"name":13,"slug":14,"type":15},{"name":4501,"slug":4502,"type":15},"Performance","performance","2026-04-06T18:08:34.575282"]