Graphsignal — скилл

GPU-профайлер для ИИ-агентов: агент запускает vLLM или SGLang под graphsignal-run, читает метрики и подбирает флаги для скорости

  • 276 ★ репозитория
  • Последний коммит
  • Apache-2.0
Скилл

Расширенный доступ

Почему такой уровень

  • Агент ставит пакеты, запускает серверы моделей на GPU и подгружает CUPTI или ROCm в процесс нагрузки
  • Конечная точка `/signals` без аутентификации показывает командные строки процессов и ресурсы, при открытии за пределы `127.0.0.1` их увидит вся сеть
Все причины и проверки

graphsignal/graphsignal

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/graphsignal

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Агент ставит пакеты, запускает серверы моделей на GPU и подгружает CUPTI или ROCm в процесс нагрузки
  • Конечная точка `/signals` без аутентификации показывает командные строки процессов и ресурсы, при открытии за пределы `127.0.0.1` их увидит вся сеть

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Graphsignal — профайлер графических процессоров, рассчитанный на управление агентом. Он работает отдельным процессом рядом с движком вывода (vLLM, SGLang, TensorRT-LLM, PyTorch или любым приложением на GPU) и отдает все измерения через локальный JSON API. Агент запускает нагрузку, измеряет, смотрит данные, меняет флаги или код и измеряет снова. Скилл самодостаточен: файл `SKILL.md` кладут в каталог навыков, и агент сам ставит профайлер, запускает нагрузку под ним и читает результат. Запрос звучит как «оптимизируй задержку этого сервера vLLM». Для ручной установки есть `uv tool install 'graphsignal[cu12]'` или `pip install 'graphsignal[cu12]'`, для CUDA 13 берется расширение cu13. Нагрузку оборачивают командой, например `graphsignal-run vllm serve <модель> --port 8001`. Профайлер собирает время ядер и графов CUDA через CUPTI или ROCm, передачи памяти и синхронизацию, телеметрию NVML и AMD SMI (загрузка, память, питание, температура, частоты, NVLink и PCIe, ошибки XID и ECC), метрики процессов, метрики движка из Prometheus и ошибки из консоли. Конечная точка `/signals` на `127.0.0.1:18259` отдает JSON, `/metrics` ту же статистику в формате Prometheus, а `graphsignal-top` показывает живой терминальный вид. Для точной разметки кода есть заголовок C++ `probe.h`.

Для кого. Инженерам по инференсу и MLOps, которые запускают модели на своих GPU и хотят поручить агенту цикл профилирования и подбора флагов.

Подходит, если

  • Сервер vLLM или SGLang отвечает медленнее ожидаемого, и нужно понять, какие ядра и синхронизации занимают время
  • Хочется поручить агенту подобрать флаги запуска и сразу измерить результат каждой правки
  • Надо вывести метрики GPU и движка в Prometheus и Grafana с таблицей самых тяжелых ядер
  • Движок падает, а причину прячет консоль: нужны ошибки и трассировки в одном JSON
  • Требуется замерить отдельный кусок кода или ядро через вставки `probe.h`

Не подходит, если

  • На машине нет GPU NVIDIA или AMD: профайлер собирает данные CUPTI, NVML, ROCm и AMD SMI
  • Нужен профайлер с графическим интерфейсом для ручного анализа: основной канал здесь JSON и терминал
  • Профилируется Windows или macOS: расширения cu12 и cu13 работают только в Linux
  • Требуется подробная трассировка по каждому ядру AMD в продакшене: этот режим заметно замедляет работу

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

Используй graphsignal: оптимизируй задержку на токен для этого сервера vLLM и покажи, какие ядра заняли больше всего времени до и после правок

Ограничения

  • Расширения `cu12` и `cu13` для профилирования GPU работают только в Linux. Для NVIDIA нужны CUDA 12 или 13, для AMD ROCm.
  • Режим `--cuda-graph-trace node` и трассировка `--rocm-kernel-trace all` предназначены для разбора причин и дают заметные накладные расходы, в продакшене их не оставляют.
  • Адрес `--listen-host 0.0.0.0` открывает конечную точку без аутентификации всей сети, ограничивать доступ нужно сетевыми правилами.
  • Раз за запуск профайлер спрашивает у `api.graphsignal.com` о новой версии, отключается переменной `GRAPHSIGNAL_DISABLE_VERSION_CHECK=1`.

Как отключить. Запускайте нагрузку без обертки `graphsignal-run`, и профайлер перестанет работать. Скилл уберите, удалив `~/.claude/skills/graphsignal`. Пакет снимает `uv tool uninstall graphsignal` или `pip uninstall graphsignal`. Переменная `GRAPHSIGNAL_API_KEY` включает загрузку данных на сервер, не задавайте ее без необходимости.

Частые вопросы

Как поставить скилл Graphsignal в Claude Code?

Выполните `mkdir -p ~/.claude/skills/graphsignal`, затем скачайте SKILL.md командой `curl -fsSL https://raw.githubusercontent.com/graphsignal/graphsignal/main/SKILL.md -o ~/.claude/skills/graphsignal/SKILL.md`. Другим агентам достаточно указать на этот файл.

Как запустить профилирование?

Оберните обычную команду запуска: `graphsignal-run vllm serve <модель> --port 8001`. Работает с любой командой, например `graphsignal-run python my_app.py`. Затем читайте `http://127.0.0.1:18259/signals`.

Какие движки поддерживаются?

Метрики движка берутся из Prometheus у vLLM, SGLang и TensorRT-LLM. GPU-профиль CUPTI или ROCm работает с любым приложением на GPU, например с PyTorch.

Уходят ли данные наружу?

Нет, пока не задан `GRAPHSIGNAL_API_KEY`. Профайлер слушает `127.0.0.1`, промпты и ответы не записываются. Сеть открывается только при запросе к `api.graphsignal.com` о новой версии, и это отключается переменной.

Как посмотреть метрики в Grafana?

Тот же слушатель отдает формат Prometheus по адресу `http://127.0.0.1:18259/metrics`. Для таблицы самых тяжелых ядер подойдет запрос `topk(20, rate(cuda_kernels_nanoseconds_total[1m]))`.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Официальный скилл Vast.ai: агент ищет GPU-предложения, арендует экземпляры и управляет ими через vastai.

СкиллШирокий доступ230Звезды репозитория
Официальный

Официальный набор скиллов Grafana: PromQL, Loki, Tempo, Alloy, k6, дашборды и алертинг для Claude Code, Cursor и Codex

СкиллРасширенный доступ304Звезды репозитория
Официальный

13 скиллов NVIDIA для агента на устройстве Jetson: диагностика, память, запуск LLM, пакеты и тесты видео и инференса

СкиллШирокий доступ168Звезды репозитория
Официальный

Плагин Runpod с 16 скиллами и MCP-сервером: агент поднимает поды, разворачивает эндпоинты и считает расходы на GPU

ПлагинШирокий доступ48Звезды репозитория

CLI Glyd запускает языковые модели на NVIDIA GPU со сжатыми весами и кешем, чтобы уменьшить расход видеопамяти.

CLIРасширенный доступ231Звезды репозитория

Скилл с локальным индексом 27 700 методов Microsoft Graph: поиск эндпоинтов, права и вызовы API из командной строки

СкиллШирокий доступ119Звезды репозитория

Коротко о README

README представляет профайлер как инструмент для агента, перечисляет, что он собирает, и начинает с установки через скилл, затем идут ручная установка через uv и pip и флаги `graphsignal-run`. Дальше описаны цикл оптимизации через `/signals`, формат Prometheus, живой вид, режимы замера с накладными расходами, зонды и раздел о безопасности и приватности.

Бейдж для README

Исходный SKILL.md

---
name: graphsignal
description: >-
  Profile AI inference workloads (vLLM, SGLang, TensorRT-LLM, PyTorch, any GPU
  application) with the Graphsignal profiler and read the results from its
  local /signals JSON endpoint. Use when the user wants GPU profiling,
  kernel/CUDA-graph timing, engine metrics, or error monitoring for a workload,
  asks about `graphsignal-run`, or wants an AI agent to inspect a running
  workload's performance.
---

# Graphsignal Profiler

Graphsignal is a GPU profiler built to be operated by an AI agent: install it, launch the workload under it, benchmark it, read the signals, change flags or code, measure again.

It observes a workload from a **sidecar process**: `graphsignal-run` launches the workload unmodified — no code changes, no imports — injects the CUPTI/ROCm activity library into it, and starts a watcher process that collects everything and serves it as one JSON document at `http://127.0.0.1:18259/signals`. Collected out of the box: GPU kernel/graph/transfer/sync timing (CUDA and ROCm), NVML device telemetry, process and host metrics, the engine's own Prometheus metrics (vLLM, SGLang, TensorRT-LLM), and errors extracted from console output. No profiling data is uploaded anywhere unless `GRAPHSIGNAL_API_KEY` is set.

## Install

Install as a uv tool, isolated from the workload environment:

```bash
UV_TOOL_BIN_DIR=/usr/local/bin uv tool install 'graphsignal[cu12]'   # CUDA 12.x
# or
UV_TOOL_BIN_DIR=/usr/local/bin uv tool install 'graphsignal[cu13]'   # CUDA 13.x
```

`UV_TOOL_BIN_DIR=/usr/local/bin` puts `graphsignal-run` on `PATH` for every shell, including non-interactive scripts and containers. `pip install 'graphsignal[cu12]'` works too. The `cu12`/`cu13` extras are Linux-only, needed for GPU profiling; on AMD install without an extra (`uv tool install graphsignal`) — GPU profiling goes through AMD's `rocprofiler-sdk`, which ships with ROCm 7+.

Root is not required. Verify the install with `graphsignal-run --version`, and readiness after a launch with `curl -s http://127.0.0.1:18259/health` → `{"status": "ok"}`.

## Run

Wrap the workload's launch command:

```bash
graphsignal-run vllm serve Qwen/Qwen2.5-1.5B-Instruct --port 8000
graphsignal-run sglang serve --model-path <model> --port 8000
graphsignal-run trtllm-serve <model> --port 8000
graphsignal-run python my_app.py
```

Leading flags (before the command):

- `--metrics-port PORT` — where to scrape the engine's Prometheus metrics (default: derived from the engine's `--port`).

Сообщить о проблеме

Foxx AIGraphsignal
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.