eagle3-triage

A troubleshooting guide for failed EAGLE3 pipeline runs. EAGLE3 is an offline machine-learning workflow with stages for data creation, hidden-state extraction, training, and benchmarking.

In plain words
What is it for?
Use it when an EAGLE3 run fails or when adding support for a new model architecture.
Why use it?
It helps identify which of the four stages failed before suggesting a fix. It uses experiment details and logs to investigate issues such as server startup failures, memory limits, dependencies, and unsupported models.

Skill for Claude CodeCodex

Part of the modelopt plugin — 18 skills shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/nvidia/model-optimizer/eagle3-triage
Any agent
npx skills add NVIDIA/Model-Optimizer --skill eagle3-triage
Clone the repo
git clone --depth 1 https://github.com/NVIDIA/Model-Optimizer

Made for: Claude Code, Codex.

Or install modelopt, the plugin that ships this one along with the rest of its 18 skills.

Per session 73 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,264 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00073 $0.02264
Opus 5 $0.00036 $0.01132
Sonnet 5 $0.00015 $0.00453
Haiku 4.5 $0.00007 $0.00226

Measured 3d ago against content hash 05b8947a0081, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

eagle3-triage scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/modelopt/skills/eagle3-triage/SKILL.md · 169 lines

How it starts

The opening of the file, as written. The whole thing — 169 lines — stays where its author put it; the contents beside it link to each section on GitHub.

EAGLE3 Pipeline Triage

Diagnose failures in the 4-step EAGLE3 offline pipeline. This skill walks through each step, identifies the failure point, and provides actionable fixes.

Pipeline Overview

Step Script Purpose Common failure area
task_0 common/vllm/query.sh Data synthesis via vLLM server Server startup, model loading, OOM
task_1 common/eagle3/dump_offline_data_vllm.sh (or _hf.sh / .sh) Dump hidden states Backend selection, OOM, unsupported arch
task_2 common/eagle3/train_eagle.sh Train EAGLE3 draft head Dependencies, training crash, export
task_3 common/specdec_bench/quick_check.sh Benchmark acceptance rate Engine startup, draft model loading

Step 0 — Locate the experiment

Ask the user for one of:

  • Experiment directory (e.g., the --job-dir passed to launch.py or slurm.py)
  • The model name / YAML they ran

Find recent experiments under the job directory:

ls -td experiments/cicd/cicd_* | head -10
# or wherever --job-dir was pointed

Each experiment directory contains one subdirectory per task (task_0 through task_3), each with a log file whose name varies by launch mode (Slurm: sbatch_*.out, local Docker: *.log).

Step 1 — Fetch logs for the failed task

Match the log files generally and read the tail of each — errors appear at the end:

find experiments/<exp_id>/ -type f \( -name '*.out' -o -name '*.log' \) | sort | while read -r f; do
  echo "=== $f ==="; tail -200 "$f"; echo
done

Look for the first task with a non-zero exit code or error message.

Step 2 — Diagnose by step

task_0 failures (Data Synthesis)

How it works: Launches a vLLM OpenAI-compatible server, polls /health until ready, then runs query.py to generate synthetic prompt/response pairs. Output goes to /scratchspace/data/.

Error pattern Root cause Fix
Server never becomes healthy (hangs at health check) Model too large for allocated GPUs, or vLLM startup crash Check BF16 weight size vs total allocated GPU memory; increase TP and/or nodes.
CUDA out of memory during model load Insufficient GPU memory Reduce --max-model-len or increase --tensor-parallel-size
trust_remote_code error Model requires custom code but flag not set Add --trust-remote-code before the -- separator in task_0 args
Vocab / tokenizer error Missing tokenizer cache (e.g., GPT-OSS-20B needs TIKTOKEN_RS_CACHE_DIR) Set TIKTOKEN_RS_CACHE_DIR to a pre-populated cache path in the environment
Architecture not supported vLLM version doesn't support this model Try a newer vLLM container (vllm/vllm-openai:latest)
CANCELLED ... DUE TO TIME LIMIT Job wall-clock limit too short Increase Slurm --time. Note: afterany deps let task_1 still start.
Empty /scratchspace/data/ query.py ran but produced no output Check --data path exists and contains prompts. Check query.py logs.

Read the full file on GitHub · 169 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 169 lines · 73 tokens per session scan A 05b8947a0081

Subscribe to this mod's changes

eagle3-triage is a skill published in the GitHub repository NVIDIA/Model-Optimizer (3,675 stars, last pushed yesterday), licensed Apache-2.0. It adds 73 tokens to every session and 2,264 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

agent-platform-model-registry

Agent Platform Model Registry Management. Use when you need to upload, list, describe, update, or delete machine learning models (and their versions) in the Agent Platform Model Registry. Don't use for model training, model deployment to endpoints, or managing non-Agent Platform models.

google/skills · 60 tokens

bigquery-ai-ml

Leverages BigQuery's built-in machine learning and GenAI capabilities for advanced data analytics. Use when you need to write SQL queries that perform time-series forecasting, predict values, detect outliers or anomalies, find key drivers, perform semantic search or vector search, classify text, calculate similarity…

google/skills · 104 tokens

ondb

A logical analysis and reasoning tool for AI. Use when decomposing documents into structured knowledge, querying entities and relations, validating consistency, or indexing files. Trigger on "remember", "what do I know about", "link X to Y", "show dependencies", "analyze this document", entity CRUD, or cross-skill…

x-cmd/x-cmd · 71 tokens

neuron-evaluation-engineer

Create and run AI evaluations with datasets, assertions, and output drivers in Neuron AI. Use this skill whenever the user mentions evaluation, testing AI systems, creating evaluators, dataset-driven testing, assertion-based validation, or wants to measure AI system performance. Also trigger for tasks involving…

neuron-core/neuron-ai · 77 tokens

mixed-precision

Use FP16/BF16 mixed precision to accelerate training and reduce memory. Use when optimizing GPU performance.

aiming-lab/AutoResearchClaw · 25 tokens

sparse-autoencoder-training

Provides guidance for training and analyzing Sparse Autoencoders (SAEs) using SAELens to decompose neural network activations into interpretable features. Use when discovering interpretable features, analyzing superposition, or studying monosemantic representations in language models.

Orchestra-Research/AI-Research-SKILLs · 58 tokens