vector-hyperbolic — скилл для Claude Code: гиперболические эмбеддинги
Кладёт иерархические данные в шар Пуанкаре: радиус узла из глубины дерева, направление из текстового эмбеддинга. Для деревьев зависимостей, онтологий и иерархий классов.
npx skills add ruvnet/ruflo --skill vector-hyperbolic -a claude-codeЧто делает vector-hyperbolic
Скилл раскладывает иерархию по шару Пуанкаре: радиус узла берётся из его глубины в дереве, направление — из текстового эмбеддинга. Тогда родитель и ребёнок оказываются ближе, чем узлы из разных веток, и измерений нужно меньше, чем при евклидовой раскладке.
Сначала скилл проверяет, что стоит [email protected], и при отсутствии предлагает npm install [email protected]. Направление даёт npx -y [email protected] embed text "..." -o concept.vec.json. Расстояние считается геодезическим через MCP-инструмент embeddings_hyperbolic distance с кривизной -1. Координаты и соседей скилл сохраняет в memory_store в namespace hyperbolic-embeddings.
Главное: сам эмбеддинг глубину не кодирует. Векторы ONNX единичной нормы, после пересчёта все точки ложатся на один радиус (tanh(0.5) = 0.4621), и расстояние родитель-ребёнок выходит почти как между ветками. Радиус придётся задать вручную, например r = tanh(depth * k), и проверить на своём дереве. Флага --model poincare в [email protected] нет, хотя подсказка аргумента его обещает: это повод не копировать вызов вслепую.
Какие задачи решает
- разложить дерево зависимостей по глубине, а не по похожести текста
- сравнить геодезические расстояния между модулями
- найти слабо связанные поддеревья в графе импортов
- проверить, что радиус узла отражает глубину, а не длину вектора
- сохранить координаты и соседей в память агента
Примеры запросов агенту
- Помести дерево модулей репозитория в шар Пуанкаре: радиус возьми из глубины узла, направление из `npx -y [email protected] embed text "module graph"`
- Посчитай геодезическое расстояние между `core` и `plugins/ruflo-ruvector` и скажи, в каких они ветках
- Проверь на нашем дереве, что расстояние родитель-ребёнок меньше, чем между разными ветками
Как установить vector-hyperbolic
1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill vector-hyperbolic -a claude-code2Вручную: положить файлы
~/.claude/skills/vector-hyperbolic/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/vector-hyperbolic/
1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill vector-hyperbolic -a codex2Вручную: положить файлы
.agents/skills/vector-hyperbolic/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill vector-hyperbolic -a cursor2Вручную: положить файлы
.cursor/skills/vector-hyperbolic/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install ruvnet/ruflo vector-hyperbolic2Вручную: положить файлы
.github/skills/vector-hyperbolic/SKILL.md1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill vector-hyperbolic -a gemini-cli2Командой платформы
gemini skills install https://github.com/ruvnet/ruflo --path plugins/ruflo-ruvector/skills/vector-hyperbolicВручную: положить файлы
.devin/skills/vector-hyperbolic/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill vector-hyperbolic -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора104
Весь набор →Похожие
Вопросы о vector-hyperbolic
Как установить vector-hyperbolic в Claude Code?
Выполни npx skills add ruvnet/ruflo --skill vector-hyperbolic -a claude-code. Скилл появится в ~/.claude/skills/vector-hyperbolic/SKILL.md вместе с описанием шагов и инструментами из allowed-tools.
Что делает vector-hyperbolic?
Кладёт иерархические данные в шар Пуанкаре: радиус узла задаётся глубиной в дереве, направление берётся из текстового эмбеддинга. Расстояния считаются геодезическими, поэтому близость в дереве видно по числу.
Почему после пересчёта эмбеддинга все точки на одном радиусе?
Потому что векторы ONNX вроде all-MiniLM-L6-v2 единичной нормы: пересчёт ставит каждую точку на tanh(0.5) = 0.4621, и глубина теряется. Радиус нужно назначить самому из глубины узла и сверить расстояния на своём дереве.
Исходный текст
SKILL.md · MIT
--- name: vector-hyperbolic description: Place hierarchical data in the Poincare ball using depth for the radius and npx [email protected] embed text for direction (a unit-norm text embedding alone has no depth) argument-hint: "<text> [--model poincare]" allowed-tools: Bash Read mcp__plugin_ruflo-core_ruflo__memory_store mcp__plugin_ruflo-core_ruflo__memory_search --- # Vector Hyperbolic Embed hierarchical data in the Poincare ball model using `ruvector`. ## When to use Use this skill when your data has inherent hierarchy — dependency trees, module structures, taxonomies, org charts, ontologies. Hyperbolic space captures hierarchical distances with far fewer dimensions than Euclidean embeddings. ## Steps 1. **Ensure [email protected] is available**: ```bash npm ls ruvector 2>/dev/null | grep '0.3.3' || npm install [email protected] ``` 2. **Know what a text embedding can and cannot give you.** ONNX sentence embeddings (all-MiniLM-L6-v2) are unit-norm. Rescaling or exp-mapping a unit vector puts every point at the same radius (the MCP `embeddings_hyperbolic convert` gives tanh(0.5) = 0.4621 for all of them), so the radius carries no depth and parent/child distances come out nearly the same as cross-branch distances. Projecting a text embedding does not create hierarchy. 3. **Put the hierarchy in yourself.** Choose each node's radius from its depth in the tree (root near 0, leaves near 1, for example r = tanh(depth * k)), and take its direction from the text embedding, or use embeddings trained on the tree's edges. Measure on your own tree: parent-child distance should be clearly smaller than cross-branch distance. ```bash npx -y [email protected] embed text "hierarchical concept" -o concept.vec.json # direction only ``` 4. **Geodesic distance** for points strictly inside the unit ball: `d(u, v) = arcosh(1 + 2 * ||u-v||^2 / ((1-||u||^2)(1-||v||^2)))`. The MCP `embeddings_hyperbolic distance` computes it (curvature -1) and returns `success: false` for a point on or outside the ball rather than a null distance. 5. **Store results**: `mcp__plugin_ruflo-core_ruflo__memory_store({ key: "hyperbolic-CONCEPT", value: "COORDINATES_AND_NEIGHBORS", namespace: "hyperbolic-embeddings" })` ## Caveats - [email protected] has no `--model poincare` flag; `attention hyperbolic` is the Poincare-ball attention op, not a text-embedding projector. - "Norm encodes depth" only holds when you set the radius from depth yourself (step 3). It does not come from the embedding. - If you need a hyperbolic search index, store the placed coordinates in AgentDB and compute geodesic distance in your own retrieval code. ## Poincare ball properties (for points you placed by depth) | Property | Meaning | |----------|---------| | Norm close to 0 | Root-level concept (only if you assigned radius by depth) | | Norm close to 1 | Leaf-level concept (same condition) | | Small geodesic distance | Close in the hierarchy you encoded | | Large geodesic distance | Distant subtrees in the hierarchy you encoded | ## Use cases - **Dependency analysis**: embed module imports to find tightly coupled subtrees - **Code architecture**: map class hierarchies to discover structural patterns - **Knowledge organization**: embed concepts to reveal taxonomic relationships - **Codebase navigation**: find most specific/general modules relative to a query
© ruvnet · MIT · ruvnet/ruflo