К основному содержанию
скилл CX Codex GP ChatGPT официальный · OpenAI

dynamo-router-starter — скилл для Codex: что делает и как установить

Настраивает режимы маршрутизации Dynamo, переключает трафик на KV-кэш и запускает дымовой тест эндпоинта инференса через скрипт проверки.

Установить в Codex · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add openai/plugins --skill dynamo-router-starter -a codex
Открыть на GitHub

Что делает dynamo-router-starter

Скилл помогает поднять или обновить маршрутизатор Dynamo локально через CLI либо в кластере Kubernetes. Поддерживаются алгоритмы round-robin, kv, least-loaded, device-aware-weighted, direct и random. При работе с Kubernetes агент меняет переменные окружения фронтенд-сервиса, выставляя нужный DYN_ROUTER_MODE.

Для проверки готовности скилл выполняет скрипт scripts/check_router_health.py. Скрипт обращается к /v1/models и отсылает тестовый запрос /v1/chat/completions, чтобы убедиться в доступности модели. Если воркеры не передают события KV-кэша, режим kv зависнет: в таком случае требуется явно отключить ожидание событий параметром DYN_ROUTER_USE_KV_EVENTS=false.

Для запуска нужны Python 3.10+ с пакетом dynamo, доступ к фронтенду и хотя бы один работающий воркер с загруженной моделью. Одиночный дымовой тест не оценивает производительность, поэтому замерять пропускную способность им нельзя.

Какие задачи решает

  • Запустить локальный фронтенд Dynamo с выбранным алгоритмом распределения
  • Настроить маршрутизацию с учётом KV-кэша в Kubernetes
  • Проверить доступность эндпоинта инференса дымовым тестом
  • Переключить KV-маршрутизатор в приближённый режим без событий воркеров

Примеры запросов агенту

  • Запусти локальный роутер Dynamo в режиме round-robin на порту 8000 и проверь эндпоинт
  • Сконфигурируй KV-маршрутизацию для сервиса в Kubernetes и запусти скрипт проверки здоровья
  • Включи приближённый режим KV без ожидания событий от воркеров

Как установить dynamo-router-starter

1Через Skills CLI (Vercel)

npx skills add openai/plugins --skill dynamo-router-starter -a codex

2Вручную: положить файлы

.agents/skills/dynamo-router-starter/SKILL.md

Для всех проектов — ~/.agents/skills/

По шагам, с командами для каждой платформы: Скиллы Codex: как установить, где лежат и как вызвать

Вопросы о dynamo-router-starter

Как установить dynamo-router-starter в Codex?

Выполните команду npx skills add openai/plugins --skill dynamo-router-starter -a codex. Файл скилла разместится по пути .agents/skills/dynamo-router-starter/SKILL.md.

Что делает dynamo-router-starter?

Скилл настраивает режимы балансировки фронтенда Dynamo и проверяет работоспособность инференса через скрипт scripts/check_router_health.py.

Что делать, если маршрутизатор зависает в режиме KV?

Такое происходит, когда воркеры не публикуют события KV-кэша. Чтобы избежать ожидания, установите переменную DYN_ROUTER_USE_KV_EVENTS в значение false.

Исходный текст

SKILL.md · Apache-2.0
---
name: dynamo-router-starter
description: Start or patch Dynamo router modes and run router endpoint smoke checks. Use for round-robin, KV-aware, least-loaded, or device-aware routing setup; use recipe-runner for recipe deployment and troubleshoot for failure diagnosis.
license: Apache-2.0
metadata:
  author: Dan Gil <[email protected]>
  tags:
    - dynamo
    - router
    - smoke-test
    - bring-up
---

# Dynamo Router Starter

<!--
SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: CC-BY-4.0
-->

## Purpose

Make Dynamo routing feel easy by getting a baseline router mode running, enabling
KV-aware routing when appropriate, and proving the endpoint works. Keep the user
focused on exact commands and success signals, not router internals.

## Prerequisites

- Python 3.10+ with the `dynamo` package importable (`python3 -m dynamo.frontend --help` works).
- For Kubernetes runs: `kubectl` configured with access to the target namespace and a deployed Dynamo recipe.
- Network reachability to the frontend service (port-forward or direct).
- A model already loaded into at least one worker (`/v1/models` returns at least one entry).

## Required Inputs

Collect or infer:

- local Python/CLI or Kubernetes recipe path
- desired mode: `round-robin`, `kv`, `least-loaded`, `device-aware-weighted`, `direct`, or `random`
- frontend port or Kubernetes frontend service
- whether workers publish KV events; if not, use approximate KV mode
- model name for smoke requests, if `/v1/models` cannot discover it

## Instructions

### 1. Establish A Baseline

For local bring-up with already registered workers:

```bash
python3 -m dynamo.frontend --router-mode round-robin --http-port 8000
```

For Kubernetes, inspect the selected recipe `deploy.yaml` and locate the
frontend service. If the recipe is not already deployed, use
`dynamo-recipe-runner` first.

### 2. Enable KV Routing

For local frontend:

```bash
python3 -m dynamo.frontend --router-mode kv --http-port 8000
```

For Kubernetes, patch only the frontend service env:

```yaml
envs:
  - name: DYN_ROUTER_MODE
    value: kv
```

If backend workers are not publishing KV cache events, set approximate mode
instead of leaving the router waiting for events:

```yaml
envs:
  - name: DYN_ROUTER_USE_KV_EVENTS
    value: "false"
```

### 3. Smoke Test

After port-forwarding the frontend service or starting local frontend, run:

```bash
python3 scripts/check_router_health.py \
  --base-url http://127.0.0.1:8000
```

This must verify `/v1/models` and, when a model is discoverable, one
`/v1/chat/completions` request.

### 4. Compare Modes Carefully

When comparing round-robin vs KV routing:

- use the same model, workers, prompt set, concurrency, and sampling settings
- send repeated-prefix prompts if demonstrating KV reuse
- label the result as a smoke comparison unless enough benchmark samples were collected
- do not claim throughput improvement from a single chat request

If the endpoint is unhealthy or workers are missing, switch to
`dynamo-troubleshoot`.

## Available Scripts

| Script | Purpose | Arguments |
|---|---|---|
| `scripts/check_router_health.py` | Smoke-test `/v1/models` and one chat completion against a Dynamo frontend | `--base-url`, `--retries`, `--timeout` |

Invoke via the agentskills.io `run_script()` protocol:

```python
run_script("scripts/check_router_health.py", args=["--base-url", "http://127.0.0.1:8000"])
```

## Examples

Local KV-routed frontend on port 8000, then smoke-test it:

```bash
python3 -m dynamo.frontend --router-mode kv --http-port 8000 &
python3 scripts/check_router_health.py --base-url http://127.0.0.1:8000
```

Kubernetes-deployed frontend reachable via port-forward:

```bash
kubectl port-forward svc/qwen-vllm-disagg-frontend 8000:8000 -n dynamo-demo &
python3 scripts/check_router_health.py --base-url http://127.0.0.1:8000 --retries 3
```

Equivalent through the agent protocol:

```python
run_script("scripts/check_router_health.py", args=["--base-url", "http://127.0.0.1:8000", "--retries", "3"])
```

## Output Contract

Return:

- mode selected and why
- local command or Kubernetes env patch
- frontend service or URL
- smoke-test result
- any limitation, such as approximate KV mode or missing worker KV events
- next command to run for a fuller comparison

## Limitations

- Smoke test is one chat completion; it is not a benchmark. Use `dynamo-benchmark` for throughput/latency numbers.
- KV-aware mode without worker KV-event publication degrades to approximate mode; this skill flags but does not fix the underlying worker config.
- Mode comparisons require matched workloads; cross-mode latency claims need separate benchmark runs.

## Troubleshooting

| Symptom | Likely cause | Next step |
|---|---|---|
| `/v1/models` returns empty list | No worker registered with the frontend | Verify worker pods are Ready; confirm they connect to the same etcd/NATS |
| Smoke chat request times out | Frontend up, workers not serving | Switch to `dynamo-troubleshoot`; inspect worker logs |
| KV mode hangs | Workers do not publish KV cache events | Set `DYN_ROUTER_USE_KV_EVENTS=false` (approximate mode) |
| Connection refused on port-forward | Port-forward dropped or wrong service name | Re-run port-forward; verify the frontend service name matches the recipe |

## Benchmark

See `BENCHMARK.md` for the NVCARPS-EVAL performance report (auto-generated by the NVSkills CI pipeline). To refresh, re-run `/nvskills-ci` on an upstream PR touching this skill.

## References

- Read `references/router-modes.md` for the compact mode/env map.
- Use `scripts/check_router_health.py` for endpoint smoke tests.

© Dan Gil · Apache-2.0 · openai/plugins

Похожие скиллы

Все скиллы по теме «ИИ и ML» →
skill-creator официальный anthropics Помогает создать новый скилл, доработать существующий и проверить результат через тестовые промпты и оценки. 414 180установок writing-for-agents Matt Pocock Помогает писать скиллы и документы с инструкциями для агентов. Пригодится при правках AGENTS.md, CLAUDE.md и связанных справочных файлов. 466 719установок media-use heygen-com Находит и генерирует ассеты для видео в HyperFrames — музыку, дикторский голос, аватары и эффекты. Сохраняет всё локально в assets. CX Codex +1 1 100 000установок mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. 130 949установок subagent-driven-development Jesse Vincent Скилл выполняет план через отдельных субагентов для каждой задачи и проверяет результат после каждого шага. Подходит для независимых задач в одной сессии. CX Codex 237 746установок orchestration stablyai Координирует воркеров Orca через DAG задач, циклы супервизора и цепочки сообщений. Пригодится для распределения сложной работы между агентами. CX Codex +1 350 300установок

Из того же набора593

Весь набор →
physical-ai-infrastructure-setup-and-resilient-scaling Скилл помогает подготовить и проверять инфраструктуру NVIDIA Physical AI для генерации синтетических данных на MicroK8s или Azure AKS. Он также охватывает развёртывание OSMO и восстановление после сбоев. CX Codex GP ChatGPT ★ 7 604звёзд репо omniverse-usd-performance-tuning Оркестратор для разбора медленной загрузки, нехватки памяти и низкого FPS в USD-сценах. Ведёт агента по цепочке фаз от профилирования до отчёта. CX Codex GP ChatGPT ★ 7 604звёзд репо omniverse-realtime-viewer Направляет агента при сборке 3D-вьюеров OpenUSD на базе NVIDIA Omniverse. Помогает выбрать архитектурный путь и подключить нужные рецепты рендеринга. CX Codex GP ChatGPT ★ 7 604звёзд репо omniverse-cad-to-simready Координирует путь от CAD-модели или другого исходного ассета до SimReady USD и пакета. Нужен для конвертации, назначения материалов и физики, проверки и подготовки ассета. CX Codex GP ChatGPT ★ 7 604звёзд репо dynamo-interconnect-check Проверяет, что транспорт NIXL/UCX/NCCL в развёртывании Dynamo действительно работает. Нужен перед тем, как доверять цифрам disaggregated-обслуживания. CX Codex GP ChatGPT ★ 7 604звёзд репо cuopt-user-rules Скилл задаёт агенту правила, как помогать с NVIDIA cuOpt: маршрутизация, LP, MILP, QP, установка и сервер. CX Codex GP ChatGPT ★ 7 604звёзд репо aiq-research Направляет исследовательские запросы к бэкенду NVIDIA AI-Q Blueprint и собирает отчёты со ссылками на источники. Пригодится для запуска глубокого ресерча прямо через агента. CX Codex GP ChatGPT ★ 7 604звёзд репо aiq-deploy Скилл разворачивает и проверяет инфраструктуру NVIDIA AI-Q Blueprint, а также помогает остановить сервисы и разобрать сбои. CX Codex GP ChatGPT ★ 7 604звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой