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 HorizonRobotics/OE-Skills --skill horizon-routergit clone --depth 1 https://github.com/HorizonRobotics/OE-SkillsWrote 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/horizonrobotics/oe-skills/horizon-router)<a href="https://agentmods.dev/skills/horizonrobotics/oe-skills/horizon-router"><img src="https://agentmods.dev/badge/skills/horizonrobotics/oe-skills/horizon-router/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/horizonrobotics/oe-skills/horizon-router"><img src="https://agentmods.dev/badge/skills/horizonrobotics/oe-skills/horizon-router.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00046 | $0.05815 |
| Opus 5 | $0.00023 | $0.02908 |
| Sonnet 5 | $0.00009 | $0.01163 |
| Haiku 4.5 | $0.00005 | $0.00581 |
Grade A, and why
horizon-router 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 12d 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 — 329 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Horizon Router
OpenExplorer / Horizon 工具链的顶层路由入口。
当请求涉及量化、编译、部署、板端推理、性能/精度评估,或用户提供了 .onnx、.bc、.hbm、.pt 等模型文件时,从本 Skill 进入。
路由前必须先读取 .horizon/skill-index.json,通过其中每个 Skill 的 description 字段理解能力边界,再决定路由到哪个子 Skill。不要凭名字猜测。
⛔ 关键规则(最高优先级)
全链路部署规范优先于子 Skill
当用户需求涉及「量化 → 编译 → 部署」完整链路时,references/deployment-workflow.md 中的全链路部署规范是最高权威。如果子 Skill 的默认行为与全链路规范冲突,以全链路规范为准。常见冲突场景:
| 全链路规范要求 | 子 Skill 默认值 | 处理方式 |
|---|---|---|
calibration_type: histogram |
HMCT 默认 max |
按全链路规范,使用 histogram |
all_node_type: float16(nash-p) |
HMCT 默认 int8 |
按全链路规范,使用 fp16 + conv int8 |
remove_node_type: [Quantize, Dequantize] |
hbdk-compile 默认 [Quantize] |
按全链路规范,同时删除两者 |
| 部署交付物 = UCP 推理代码 | hbm_infer SDK 即可完成验证 | 按全链路规范,UCP 代码才是部署交付物 |
原则:子 Skill 服务于单步操作,全链路规范服务于端到端目标。端到端任务中,单步的"合理默认"可能不符合全链路要求。
量化配置默认原则
除非用户明确要求混合精度调优,或当前任务已通过评测确认全 int8 精度不达标,否则涉及量化配置的任务(QAT 适配、导出、全流程代码生成)应默认使用全 int8 配置。
- 禁止在没有精度不达标证据的情况下,主动将算子升高到 int16 或 fp16
- 如果全 int8 精度不达标,应先路由到
j6-plugin-precision-tuning,按敏感度分析结果决定哪些算子需要升高精度,而不是凭经验预设混合精度 - 用户明确说"用混合精度"或"int8 不够"时,才跳过全 int8 默认
长时间任务的等待策略
当 agent 启动了耗时较长的后台任务(敏感度分析、HBDK 编译、QAT 训练等,通常 >3 分钟)时,必须使用以下策略之一等待完成,禁止反复轮询:
策略 A:后台启动 + 等待通知(推荐)
1. 编写包含完整处理逻辑的脚本(脚本自身负责生成最终结果文件)
2. 使用 Bash run_in_background: true 启动脚本
3. 回复"任务已在后台运行,等待完成通知",然后停止——不执行任何进度检查
4. 收到系统自动通知后,读取脚本输出的结果文件
策略 B:单次超时等待
如果必须用 wait 或前台运行,设置足够长的 timeout(如 600000ms),一次等到结束:
# 一次等到完成,不中途检查
python3 long_running_script.py # timeout: 600000
⛔ 禁止行为(会导致 API 崩溃)
# ❌ 以下模式会触发重复调用检测,导致 400 错误终止:
Bash: tail -c 1000 tuning_run.log # 第1次
Bash: tail -c 1000 tuning_run.log # 第2次
Bash: tail -c 1000 tuning_run.log # 第3次 → 崩溃!
# ❌ 即使参数微调也会被检测:
Bash: tail -n 5 tuning_run.log
Bash: tail -n 10 tuning_run.log
Bash: wc -l tuning_run.log # 仍然可能触发
原因:API 层面会检测短时间内相似的工具调用。连续 3 次语义相近的命令即可能触发保护机制。后台任务完成时系统会自动通知,无需主动检查。
连续失败时的策略切换
当同一操作连续失败 2 次时,必须切换策略,禁止继续重试同一方法:
What ships with it
14 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- board-detection/SKILL.md 6.8 KB
- oe-llm-package-detection/SKILL.md 10 KB
- oe-llm-package-install/install.sh 9.9 KB runs code
- oe-llm-package-install/SKILL.md 7.2 KB
- oe-package-detection/SKILL.md 7.8 KB
- oe-package-install/install.sh 10 KB runs code
- oe-package-install/SKILL.md 7.3 KB
- references/batch-task-strategy.md 4.6 KB
- references/board-cleanup.md 1.2 KB
- references/deployment-workflow.md 8.9 KB
- references/hmct-workflow-guide.md 7.5 KB
- references/llmcompression-operations.md 7.6 KB
- references/routing-tables.md 14 KB
- references/work-principles.md 1.8 KB
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.
- 12d ago First seen · 329 lines · 46 tokens per session scan A fc16f8d4ae06
horizon-router is a skill published in the GitHub repository HorizonRobotics/OE-Skills (19 stars, last pushed 2mo ago), licensed Apache-2.0. It adds 46 tokens to every session and 5,815 once invoked, about $0.0002 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.
Other skills, from other repositories
spark-environment-setup
Set up a working ML training/inference environment on NVIDIA DGX Spark (GB10, aarch64, CUDA 13). Use when installing PyTorch/Unsloth/TRL/vLLM on DGX Spark, hitting libcudart or wheel-ABI errors on aarch64, or choosing between NGC containers and bare pip installs.
spark-memory-thermal-ops
Manage unified memory and thermals during long-running ML jobs on NVIDIA DGX Spark. Use when planning memory headroom for a training run on GB10, when a job OOMs on unified memory, or when monitoring temperature and power during multi-hour training.
spark-training-gotchas
Preflight and diagnose the ten known failure modes for ML training on NVIDIA DGX Spark. Use when a training run on DGX Spark fails to start, OOMs below the 128GB limit, slows down mid-run, or before any multi-hour training job on GB10.
llama-cpp
Runs LLM inference on CPU, Apple Silicon, and consumer GPUs without NVIDIA hardware. Use for edge deployment, M1/M2/M3 Macs, AMD/Intel GPUs, or when CUDA is unavailable. Supports GGUF quantization (1.5-8 bit) for reduced memory and 4-10× speedup vs PyTorch on CPU.
minicpm5-deploy-vllm-ascend
Deploy MiniCPM5-2B with vLLM on Huawei Ascend NPU using vLLM-Ascend. Use when the user mentions vLLM-Ascend, Ascend NPU, Huawei Ascend, CANN, torchnpu, davinci devices, or wants an OpenAI-compatible MiniCPM5 server on Ascend hardware.
minicpm5-deploy-litert
Run MiniCPM5-2B or MiniCPM5-1B on-device with Google's LiteRT-LM runtime — the litert-lm CLI or its OpenAI-compatible server on a desktop, the Kotlin API or the AI Edge Gallery app on Android, the same .litertlm bundle on CPU or GPU. Use when the user says "LiteRT", "LiteRT-LM", "litertlm", ".litertlm", "Android"…