Skip to content
Agentmart
Submit a tool

ob2h

Long-term memory, knowledge graph and dreaming backend of this Hermes agent.

Skill by Pofium

IndexedMIT★ 67
Write a review

Chalk Labs

Need help deploying ob2h?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/pofium-ob2h-ee7190

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Long-term memory, knowledge graph and dreaming backend of this Hermes agent. Use for any recall about the user, past conversations, projects, preferences, and for saving new important facts. Also use for developing/maintaining the ob2h project itself.

Use cases: backend, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/ob2h

What's inside

Skill name
ob2h
Description
Long-term memory, knowledge graph and dreaming backend of this Hermes agent. Use for any recall about the user, past conversations, projects, preferences, and for saving new important facts. Also use for developing/maintaining the ob2h project itself.
License
MIT
Instructions
143 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • files: referenced but missing: references/testing.md, references/autodream-and-history.md

Files (1)

  • SKILL.md

SKILL.md (first lines)

# OB2H — долговременная память этого агента (Rust, MCP + MemoryProvider)

## Поведение: память включена ВСЕГДА
- Каждый ход диалога попадает в ob2h автоматически: MemoryProvider-плагин
  (`sync_turn`/`session_ingest`), без плагина (Mode 0) — вызывай `session_log`
  после содержательных ответов сам, не дожидаясь просьбы.
- Вопросы о пользователе, его проектах, прошлых обсуждениях, предпочтениях → сначала
  recall (`memory_search` / блок `<agent_memory>`), потом ответ.
- Устные «запомни…» → `memory_save` с importance 0.8+; устойчивые факты — с `key`.
- Документы/длинные тексты → `knowledge_extract`; вопросы о связях «кто/что/чем связано» →
  `graph_reason`. Ночью/по гейтам авто-дрим обновляет MEMORY/SOUL/USER.md и граф.
- В памяти встречаются факты с ДРУГОЙ машины пользователя (origin=pc/vps): пути и среды
  с чужого origin не существуют локально — используй их как контекст, а не как цели
  для файловых операций.

## Как вызывать память, когда прямых инструментов нет (MCP-коннектор)
- Часть сессий видит ob2h-инструменты как НЕ зарегистрированные: вызов `memory_save`
  /`memory_search`/`graph_search`/`omnes_stats` напрямую возвращает `Unknown tool`.
  Рабочий путь — коннектор: `mcp__ob2h__server_invoke_tool(tool_name=..., tool_input={...})`,
  схему конкретного инструмента брать через `mcp__ob2h__server_get_tool_schema`
  (она же перечисляет ВСЕ доступные имена инструментов сервера).
- Кириллица в `tool_input` через коннектор проходит нормально — отдельный JSON-RPC-драйв
  к `ob2h serve` нужен только если коннектор сам отвалился с ошибкой транспорта.
- Проверяй запись ЧТЕНИЕМ обратно (`memory_search` по ключу), а не по ответу `saved`.

## Полный текст записи и замена устаревших фактов
- `memory_search` отдаёт сниппеты ~200 символов — для правки существующей записи этого
  мало. Полный текст брать из БД read-only: `sqlite3.connect("file:<data>/ob2h.db?mode=ro", uri=True)`,
  таблица `memories` (колонки `key, content, category, importance, trust, origin, deleted_at`).
- Устаревший факт НЕ удалять: `memory_update(key=...)` с текстом «оригинал целиком +
  пометка [УСТАРЕЛО <дата>: заменено — см. <новый ключ>]». История сохраняется, а recall
  больше не тянет мёртвый адрес без оговорки.
- Один факт = одна запись с осмысленным `key` (напр. `hmem-<тема>-<дата>`); зеркальные
  копии `m_*` (cat=general) создаёт сам плагин из MEMORY.md — их не править руками.

## Режимы подключения (не путать при диагностике)
| Режим | Как выглядит | Что важно |
|---|---|---|
| **A: плагин (целевой)** | `memory.provider: ob2h` в config.yaml, плагин в `{{HERMES_HOME}}/plugins/ob2h/` | Один процесс ob2h serve (спавнит плагин); захват/recall происходят САМИ; индикатор 🧠 = prefetch сработал; `mcp_servers.ob2h` следует удалить |
| **B: переходный** | плагин И `mcp_servers.ob2h` одновременно | Работает (WAL+busy_timeout+dream-lock), но два процесса — лучше уйти в A |
| **0: MCP-only (фолбэк)** | только `mcp_servers.ob2h` в config.yaml | Захват только через явные вызовы инструментов |

## Что это
- Один Rust-бинарник: MCP-сервер stdio + SQLite WAL + FTS5-trigram (русский)
  + локальные Candle-эмбеддинги `paraphrase-multilingual-MiniLM-L12-v2` (384d,
  кэш `~/.cache/huggingface/hub/`); LLM для экстракции/дрима — DeepSeek.
- Пути этой машины: проект `{{PROJECT_DIR}}`, бинарник `{{BINARY}}`,
  данные/БД `{{DATA_DIR}}` (ob2h.db, workspace/: SOUL.md/USER.md/memory/MEMORY.md +
  daily/*.jsonl — файлы создаются лениво, `workspace_read` отсутствующего = `""`),
  Hermes home `{{HERMES_HOME}}` (config.yaml, plugins/ob2h, ob2h.json).
- Инструменты (36 шт): memory_save/search/update/forget/context, memory_feedback (trust ±),
  memory_merge (слияние дублей), workspace_read/write, session_log, session_ingest,
  knowledge_extract, graph_search (mode=classic|ppr)/reason (scope=docs|memory|all)/stats,
  dream_run/status/log/restore, omnes_stats/backup, project_init/scan/scan_status/
  context/graph_search/report/impact, project_call_path (callers/callees/call-path),
  ralph_start/iteration/verdict/context/report, ast_diff, ast_history.
- Детерминированный AST-граф кода: `project_scan` извлекает классы, функции, трейты и связи
  со 100% точностью (Graphify-подход) без вызовов LLM; скан идёт в фоне и не упирается
  в таймаут MCP-клиента — по умолчанию инструмент ждёт до 45 с, долгий скан отвечает
  «still running», результат досматривается `project_scan_status` (там же сводка из БД).
  CLI для этого агенту не нужен. `project_report` и `project_context`
  выделяют центральные хабы архитектуры (God Nodes).
  CLI для этого агенту не нужен. `project_report` и `project_context`
  выделяют центральные хабы архитектуры (God Nodes).
- Регрессионный bench кодового графа (v1.7.1): `ob2h bench --mode code --project <id>`
  против `data/bench/golden_code.jsonl` — recall/MRR PPR-поиска; используется для
  обоснования изменений PPR-весов (вердикт 2026-10-03: дефолт не менять — выдача
  не зависит от весов кодовых рёбер, цели находятся на этапе сидов).
- Форматы сканера (v1.7): 31 расширение кода (rs/py/ts/tsx/js/jsx/go/sql/c/cpp/cc/cxx/
  h/hpp/hxx/php/dart/java/cs/kt/kts/swift/rb/vue/svelte/scala/lua/ex/exs/sh/bash) +
  веб-разметка и стили (html/htm, css/scss, blade), контракты (proto, graphql/gql,
  openapi.json|yaml), IaC (Dockerfile*, .tf/.hcl, docker-compose|compose.yml|yaml,
  k8s|deploy|helm|chart*/*.yaml|yml), манифесты (Cargo.toml, package.json,
  pyproject.toml, requirements.txt, go.mod, pubspec.yaml, composer.json; lock-файлы
  исключены), спец-языки (.ipynb без outputs, .sol, .zig). Импорты внешних пакетов
  сливаются с манифестами в узлы `pkg:<eco>:<name>` (версия в description).
- Полезные запросы v1.7: `project_graph_search("pkg:rust:serde_json")` — пакет и его
  потребители; `project_graph_search("cssclass:<имя>")` — где определён CSS-класс;
  `project_impact("openapi.yaml")` / `project_impact("Dockerfile")` / `project_impact("Cargo.toml")`
  — что заденет правка контракта/образа/зависимости; `project_call_path` проходит
  фронт → `route:` → хендлер (INFERRED-мосты SERVES_ENDPOINT/PROVIDES_RPC).
- AutoDreamWorker: гейты ≥4ч и ≥10 событий, lock, git-история правок, бэкапы
  (full/quick, verify, раздельная ротация), ночной bench-гейт (откат дрима при
  деградации recall/MRR). CLI: `ob2h stats | doctor [--fix] | dream run/status/log/restore |
  bench [--mode history] | backup [--scope quick] [verify <path>] |
  db quantize-embeddings | memory dedup [--dry-run] | install/uninstall |
  plugin install/uninstall/status | skill-install | agent install/status |
  update check/apply/status (v1.8.0, ADR-15) |
  project init/scan/list/report/dead-code/repo-map |
  ralph findings-to-memory | sync status/verify/export/import/apply-inbox/push/pull`.

## Синхронизация двух машин (PC ↔ VPS)
- Обмен — gzip-дельта-бандлы v2 JSONL поверх SSH (`{{DATA_DIR}}/sync/peers.json`:
  origin=pc|vps, приоритеты, пути; инициатива на PC — push/pull, VPS — apply-inbox+export).
  Только изменённое (курсор по updated_at); в бандле память+trust+memory_links+удаления;
  поле-уровневый merge с журналом `sync/conflicts.jsonl` (не молчаливый LWW);
  `ralph_*` вне бандлов (ADR-K6). Идемпотентно; сверка дрейфа — `ob2h sync verify`.
- Живую БД `{{DATA_DIR}}/ob2h.db` НИКОГДА не синкать файловой синхронизацией (WAL = порча),
  только папку бандлов. Диагностика обмена: `ob2h sync status`.

## Критичные питфоллы
1. **OB2H_LLM_API_KEY = ИМЯ env-переменной** с ключом (напр. `DEEPSEEK_API_KEY`), не сам
   ключ (развязка в коде, коммит 82d7e3f; фолбэк на литерал и на `<data_dir>/.env`).
   Симптом обратного: 401 `Your api key: ****_KEY is invalid`.
2. **«chunks записались, entities=0»** в knowledge_extract — упавший LLM-вызов (см. п.1);
   теперь инструмент сам возвращает `[Error]/[Подсказка]` с числом упавших чанков.
3. **Снабжение LLM — три эшелона** (2026-11): явный `OB2H_LLM_*` → основная LLM
   harness-системы (автодетект по `clientInfo` при `initialize`: hermes/zcode/codex
   читают свой конфиг; форс — `OB2H_LLM_HARNESS`) → локальная мини-модель
   `Qwen/Qwen3-0.6B` (~1.4 GB, качается при первом вызове; `OB2H_LOCAL_LLM=0` — выкл).
4. **Логи**: `{{DATA_DIR}}/logs/ob2h.log` (cwd сервера от Hermes = домашняя папка — до фикса
   82d7e3f логи могут лежать в `~/logs`, искать оба места).
5. **Пересборка (Windows)**: exe блокируется, пока процесс жив (Hermes/плагин держит).
   `cargo build --release` падает `os error 5` → сначала `Get-Process ob2h | Stop-Process
   -Force` (убьёт MCP в текущей сессии Hermes — спросить пользователя).
   **Пересборка (Linux/VPS)**: `cd <репо> && git pull && cargo build --release &&
   install -m755 target/release/ob2h /usr/local/bin/ob2h` — замена живого бинарника
   безопасна, подхватится после рестарта гейтвея (`systemctl --user restart
   hermes-gateway`).

From Pofium/ob2h, MIT.

More from Pofium/ob2h

Signals

Stars
67
Forks
0
Open issues
0
Last commit (this folder)
Oct 3, 2026 (1 month ago)
Last release
Oct 10, 2026 (29 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Pofium

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get ob2h running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying ob2h?

CallGet help
Cite this page

ob2h skill. Agent Mart. https://agentmart.dev/skills/pofium-ob2h-ee7190 (last updated 2026-10-24)