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.
npx skills add google-ai-edge/litert-samples --skill on-device-verificationgit clone --depth 1 https://github.com/google-ai-edge/litert-samplesWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/google-ai-edge/litert-samples/on-device-verification)<a href="https://agentmods.dev/skills/google-ai-edge/litert-samples/on-device-verification"><img src="https://agentmods.dev/badge/skills/google-ai-edge/litert-samples/on-device-verification/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/google-ai-edge/litert-samples/on-device-verification"><img src="https://agentmods.dev/badge/skills/google-ai-edge/litert-samples/on-device-verification.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium analysis-evasion · line 1 Suspicious Unicode normalization or mixed-script contentFix: Review the flagged content for security risks. Ensure no credentials, secrets, or sensitive data are exposed.
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00099 | $0.03449 |
| Opus 5.5 | $0.00040 | $0.01380 |
| Sonnet 5.5 | $0.00020 | $0.00690 |
| Haiku 4.5 | $0.00010 | $0.00345 |
Grade A, and why
on-device-verification 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 9d 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.
How it starts
The opening of the file, as written. The whole thing — 199 lines — stays where its author put it; the contents beside it link to each section on GitHub.
On-device verification
A device result is done when three things hold:
- the model compiles and runs on the accelerator you claim it runs on,
- the output matches the source model numerically and on a task-level gate,
- the record names the device, the runtime version, and the residency line. A number without those is not reproducible and not a result.
Host-side checks (the CompiledModel checker used in gpu-clean-conversion)
exercise the host GPU. The device has its own shader compiler, its own
precision behavior, and its own memory ceiling — every failure mode in the
table below was hit by a model that had already passed on the host. The
Python API below runs on the host only (ai-edge-litert ships wheels for
Linux, macOS and Windows); on a phone the same inputs go through the app's
inference class or a push-run-pull binary (last bullet of "Watch for").
Loop
1. Dump references from the source model, once. Fixed inputs — one
real sample plus fixed-seed random — saved as .npy next to the recipe
(dump_*_ref.py). These are ground truth for every later step; regenerate
them only when the source model changes.
2. Run the same inputs on the host runtime, CPU then GPU, then on the
device. One argument switches the accelerator (ai-edge-litert 2.2.0, 2.3.0):
from ai_edge_litert.compiled_model import CompiledModel
from ai_edge_litert.hardware_accelerator import HardwareAccelerator
model = CompiledModel.from_file(
"model.tflite", hardware_accel=HardwareAccelerator.GPU) # or .CPU
The device-CPU run is the control. If it already diverges from the source
dump, the problem is the conversion, not the GPU — go back to
gpu-clean-conversion. A full worked example of the A/B lives in this
repo at samples/litert/speech_recognition/convert/verify_tflite.py (its
ai_edge_torch.compiled_model import no longer resolves with litert-torch
0.9.4; read it as ai_edge_litert.compiled_model).
Ask for the strict accelerator. Compiling with
HardwareAccelerator.CPU | HardwareAccelerator.GPU permits partial
delegation and hides fallback; use the combined mode only to discover
which ops fell back after a strict GPU compile fails. Strict is per
graph, not per op: when the GPU cannot compile the graph, from_file raises
(Some ops are not accelerated. Add kLiteRtHwAcceleratorCpu … in 2.3.0);
when the delegate declines one node while building (TopK requires src tensor C dimension to be divisible by 4), that node runs on the CPU with
only the log line, the call returns, and is_fully_accelerated() still
reads true (measured with the 2.2.0 and 2.3.0 wheels on a Mac). The log is
the residency signal.
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.
- 9d ago Changed · +11 lines 7c6bd938f9dd
- 12d ago Changed · +8 lines 41641962037c
- 14d ago Changed · +2 lines 619a1aa91250
- 22d ago Changed · +16 lines 61dc06091afd
- 2mo ago First seen · 162 lines · 99 tokens per session scan A 4a9209062d80
on-device-verification is a skill published in the GitHub repository google-ai-edge/litert-samples (477 stars, last pushed today), licensed Apache-2.0. It adds 99 tokens to every session and 3,449 once invoked, about $0.0004 per session on Opus 5.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.
Other skills, from other repositories
guardrails-developer-create-guardrails
Helps developers create a NeMo Guardrails configuration for an LLM application. Use when users want to build, scaffold, configure, test, or iterate on input, output, retrieval, dialog, execution, Colang, or catalog-based guardrails. Trigger keywords - create guardrails, build guardrails, scaffold config, write rails…
recorded-tests
Decides when a code change requires a recorded/VCR test, whether a test belongs in tests/recorded/ or the plain unit suite under tests/, and how to structure it in either place. Use when adding, reviewing, or relocating tests that involve LLM calls, streaming, cassettes, snapshots, or provider traffic, and when…
cli-eval
Create and run evaluation suites, watch live benchmark progress, view scorecards, compare model performance, and integrate eval runs with CI workflows from the CLI.
emerging-techniques-model-merging
Merge multiple fine-tuned models using mergekit to combine capabilities without retraining. Use when creating specialized models by blending domain-specific expertise (math + coding + chat), improving performance beyond single models, or experimenting rapidly with model variants. Covers SLERP, TIES-Merging, DARE, Task…
darwinian-evolver
Evolve prompts/regex/SQL/code with Imbue's evolution loop.
dummy-dataset
Generate realistic dummy datasets for testing with customizable columns, constraints, and output formats (CSV, JSON, SQL, Python script). Use when creating test data, building mock datasets, or generating sample data for development and demos.