Перейти к содержимому
RAGRAF

Гайд по настройке

Подключение RAGRAF к AutoClaw

--agent-kind autoclaw CLI + MCP zwork 2.0.2 · Electron подтверждено замерами сессии · zwork 2.0.2

Agent-среда автора RAGRAF (zwork 2.0.2, Electron): именно на ней продукт проектировался и на ней измерены опубликованные результаты. Подключение идёт двумя независимыми каналами — CLI без настройки и MCP через интерфейс продукта; --agent-kind autoclaw — реальный кодовый путь (атрибуция телеметрии, расширенный режим журнала). Всё в гайде — замеры интеграционной сессии и факты из кода приложения.

  • 2 канала: CLI + MCP
  • 24 инструмента ragraf_*
  • 4 дефекта закрыто
  • 18 корпусов в реестре автора

Обозначения в командах: <repo> — путь к локальному клону RAGRAF (в сессии автора — C:\AutoClaw\RAGRAF), <account> — каталог учётной записи AutoClaw, <корпус> — имя конфигурации корпуса. Команды и выводы приводятся как измерены — включая русские строки, которые печатает продукт.

Источник: документ интеграционной сессии «RAGRAF × AutoClaw: подключение, устройство, проверка» — замеры текущей сессии и факты из кода приложения.

Два канала: CLI и MCP

Смешивать каналы нельзя — от этого зависит, что именно проверять. CLI работает всегда и не зависит от настроек приложения; MCP даёт те же операции как инструменты агента, но требует регистрации сервера.

Канал CLIКанал MCP
Как вызываетсяpython tools/ragraf.py … через инструмент оболочкиинструменты ragraf_* в списке агента
Кто запускаетагент вручную, командуплатформа, при подключённом сервере
Зависит от настроек приложениянетда (сервер надо зарегистрировать)
Что даётвсе 13 подкоманд и 22 операции24 операции как инструменты
Требует --projectда, или ensure <каталог>нет: корпус берётся по рабочему каталогу

Главное следствие

Если инструментов ragraf_* в списке нет — это не поломка RAGRAF: индекс, поиск, схема и графы остаются полностью рабочими через CLI. Замер сессии: tool_search по имени ragraf вернул 0 инструментов — канал MCP не активен, и правила проекта работают через первый канал.

Что уже настроено

Срез машины автора по замерам интеграционной сессии — ориентир «как должно выглядеть» после настройки.

ЭлементСостояние · где
Правило «сначала RAGRAF»есть · ~/.pi/agent/AGENTS.md, раздел 8 (~1300 строк)
Навык ragraf-coreесть в обоих аккаунтах · <account>\runtime\zwork-agent\skills\ragraf-core
Корпуса в реестре18 разработок · <repo>\catalog\catalog.json
CLI RAGRAF в окружении агентаработает · python tools/ragraf.py найден и отвечает
Инструменты ragraf_* (MCP)не подключены · замер: tool_search → 0

Аккаунты AutoClaw на машине (у каждого своё дерево навыков и свой runtime)

Text
%APPDATA%\AutoClaw-oversea-official\accounts\<account-1>\   (основной)
%APPDATA%\AutoClaw-oversea-official\accounts\<account-2>\

Навык разложен в оба аккаунта — тогда при смене учётной записи он остаётся виден. Свежесть копий подтверждена замером: SKILL.md, reference/operations.md и reference/repair.md совпадают с проектной редакцией по SHA-256 в обоих аккаунтах.

Канал CLI: работает без настройки

Основной путь, пока MCP не зарегистрирован. Три правила.

  1. Первым шагом — актуализировать корпусОтвет несёт status: actual — индекс актуален, reindexed — пересобран только что, created — корпуса не было и он создан, not_a_project — каталог не похож на проект, error — причина в поле reason.
    Первый шаг задачи (PowerShell)
    python <repo>\tools\ragraf.py ensure <каталог проекта>
  2. Дальше — операция, а не чтение файловПризнак stale: true означает, что фактам верить нельзя до переиндексации: код ушёл вперёд. Это не «предупреждение на всякий случай».
    Операции индекса (PowerShell)
    python <repo>\tools\ragraf.py -p <repo>\config\<корпус>.yaml query symbol --name corpus_hash
    python <repo>\tools\ragraf.py -p <repo>\config\<корпус>.yaml check
  3. Список корпусов — командой без конфигурацииРеестр разработок виден без -p: catalog печатает все заведённые корпусы с ревизиями и суммами.
    Реестр корпусов (PowerShell)
    python <repo>\tools\ragraf.py catalog

Почему CLI здесь предпочтительнее MCP

Не из-за удобства. Каждая команда печатает текст, который агент читает сам, а MCP-ответ надо интерпретировать по схеме. Плюс CLI не зависит ни от перезапуска приложения, ни от регистрации сервера — то есть не может «тихо отвалиться». Замер по полигону: 14 вызовов инструментов против 28 без индекса, попадание в файл-цель с первого запроса — 92%.

Канал MCP: устройство и подключение

Устройство подключения MCP в AutoClaw не совпадает с привычными клиентами (Claude Desktop, Codex, DeepSeek Harness), и это существенно. Четыре факта, измеренные в сессии:

  1. MCP-конфига в профиле нетПоиск по ~/.pi, <account>\runtime и <account>\projects не нашёл ни mcp.json, ни mcpServers в настройках. Регистрация живёт не в файле профиля.
  2. ragraf не регистрируется ни одним пакетом приложенияПроверены все таблицы runtime.sqlite (106 штук) — таблицы MCP-серверов нет; упоминания ragraf-mcp в базе оказались историей прошлых сессий, а не регистрацией.
  3. Вертикальный пакет объявляет MCP-серверы декларациейПоле mcpServers есть в схеме пакета: dist\resources\vertical-packs\code\zwork-pack.json. У официальных пакетов оно пустое ("mcpServers": []), а пользовательских пакетов на диске нет вовсе (поиск zwork-pack.json вне установки — 0 файлов).
  4. Встроенный агент MCP не обслуживает@earendil-works/pi-coding-agent не содержит ни строки про MCP (проверены dist и docs); все найденные в бандле упоминания mcpServers принадлежат встроенным SDK вендоров (Google/Gemini) и к AutoClaw отношения не имеют.

Вывод, который надо принять, а не обойти

Штатного файлового способа прописать MCP-сервер в AutoClaw не найдено. Подключение идёт через интерфейс продукта — настройки проекта/приложения. Выдуманного пути здесь не будет: инструкция из догадки ломает доверие ко всем остальным числам.

Как подключать и что проверять

  1. Найдите раздел MCP в настройках продуктаОткройте настройки проекта (или приложения) в AutoClaw и найдите раздел про MCP / внешние инструменты — сервер регистрируется там.
  2. Укажите запуск (значения проверены запуском)--project указывать не нужно: сервер сам определит корпус по рабочему каталогу через реестр разработок, а для чужого проекта корпус выбирается инструментом ragraf_use_project (список даёт ragraf_catalog).
  3. Проверьте, а не предположитеДо подключения вызовите tool_search с запросом ragraf — ожидается 0. После регистрации и перезапуска — 24 инструмента. Эта разница и есть доказательство, что подключение сработало.
Значения регистрации сервера
команда:            <repo>\.venv\Scripts\python.exe
аргументы:          <repo>\tools\ragraf-mcp.py
                    --agent AutoClaw --agent-kind autoclaw
рабочий каталог:    <repo>

Если интерфейсного раздела нет

Тогда честный ответ такой: MCP-канал в этой сборке недоступен, а RAGRAF работает через CLI (раздел выше). Ничего не теряется, кроме того, что каждый вызов идёт командой, а не инструментом. Придумывать регистрацию правкой базы или подменой файла нельзя: runtime.sqlite — состояние приложения, и правка его в обход продукта ломает учёт прав и артефактов (таблицы governed_tool_*).

4 дефекта совместимости

Подключение ко второму клиенту (DeepSeek Harness) вскрыло дефекты, которые касались и AutoClaw. Все четыре закрыты, каждый — с регрессионной защитой.

  1. Сервер падал на первом русском ответе при урезанном окруженииMCP-клиент передаёт дочернему процессу только 12 переменных (APPDATA, HOMEDRIVE, HOMEPATH, LOCALAPPDATA, PATH, PROCESSOR_ARCHITECTURE, SYSTEMDRIVE, SYSTEMROOT, TEMP, USERNAME, USERPROFILE, PROGRAMFILES). Ни PYTHONUTF8, ни PYTHONIOENCODING туда не попадают, локаль процесса остаётся cp1252 — и send() падал с UnicodeEncodeError: charmap codec (src/ragraf/mcp_server.py). Оболочка AutoClaw ставит обе переменные, поэтому для AutoClaw дефект был невидим — он проявился только на втором клиенте. Правка: force_utf8_stdio() — потоки приводятся к UTF-8 в самом сервере, а не берутся из окружения.
  2. Обязательный --project не давал работать с несколькими проектамиПравка: --project необязателен, корпус ищется по рабочему каталогу (реестр разработок), добавлен инструмент ragraf_use_project. Один сервер обслуживает все 18 корпусов машины автора.
  3. Команда reindex не записывала прогон в реестрИзмерено на собственном корпусе: в индексе rev-0046, в реестре rev-0045 со старой суммой; check из-за этого переиндексировал корпус заново, а catalog и панель показывали прошедшее состояние. Правка: src/ragraf/cli.py — reindex пишет прогон той же общей точкой watch.record_index_run, что и index.
  4. ensure и use_project не попадали в статистикуТелеметрия навешивается обёрткой на методы op_* фасада, а эти две операции живут в MCP-сервере. В сводке usage их не было — то есть нельзя было ответить, соблюдают ли агенты правило первого шага. Правка: Facade.record_external_call (src/ragraf/facade.py) + запись со стороны сервера. Замер после правки: ensure 1, use_project 1 в сводке по агенту.

Зависимости: почему интерпретатор из .venv

На машине автора зависимости RAGRAF достижимы интерпретатору из PATH только через переменную PYTHONUSERBASE (%APPDATA%\AutoClaw-oversea-official\toolchain\python\Python313\site-packages). Внешний клиент её вычищает — и python из PATH падает на «не установлен PyYAML». Замерено: .venv проекта самодостаточен — при полностью снятых PYTHON*-переменных он импортирует yaml, fastembed, sqlite_vec, tree_sitter, ijson, tiktoken. Для AutoClaw это тоже полезно: CLI в оболочке агента работает и так, но .venv перестаёт зависеть от настроек окружения.

Навык и правила

Навык ragraf-core

Навык лежит в дереве каждого аккаунта:

Дерево навыка в аккаунте
%APPDATA%\AutoClaw-oversea-official\accounts\<account>\runtime\zwork-agent\skills\ragraf-core\
    SKILL.md                 (вход: когда применять, порядок работы)
    reference/operations.md  (выбор операции и границы)
    reference/repair.md      (что делать, когда индекс сломан)

Источник — каталог проекта: <repo>\docs\skills\ragraf-core. Правка идёт в проект, затем копируется в служебный каталог аккаунта. Иначе при следующем развёртывании копия в аккаунте «отстанет» от проекта и агент будет работать по старой редакции. Копий ровно две — по числу аккаунтов; в обоих навык есть.

Проверено замером свежести (сессия): в обоих аккаунтах лежат три файла — SKILL.md 9811 байт, reference/operations.md 7546, reference/repair.md 11271, — и SHA-256 каждого совпадает с проектной редакцией. То есть копия в аккаунте не отстала от источника.

Обновление копий после правки навыка (PowerShell)
$src = '<repo>\docs\skills\ragraf-core'
Get-ChildItem "$env:APPDATA\AutoClaw-oversea-official\accounts" -Directory | ForEach-Object {
    $dst = Join-Path $_.FullName 'runtime\zwork-agent\skills\ragraf-core'
    if (Test-Path -LiteralPath $dst) {
        Copy-Item -Recurse -Force "$src\*" $dst
        Write-Host "обновлено: $dst"
    }
}

Проверка навыка: файл начинается с ---, поля name и description разбираются построчно, размер меньше 256 КиБ, кодировка UTF-8 без BOM, переводы строк LF, а копия в аккаунте совпадает с проектной побайтово.

Правила: ~/.pi/agent/AGENTS.md

Это пользовательский файл правил AutoClaw — он подхватывается в любом проекте, где нет своего AGENTS.md, и наоборот: проектный AGENTS.md строже. Подхватывается также AGENTS.md из родительских каталогов до границы .git.

Раздел, который заставляет работать через индекс, — раздел 8 «Обязательное использование RAGRAF при разработке кода». Три места, которые надо знать:

ЧтоГде
Первый шаг задачи§8.2: ensure <каталог>
Инструменты ragraf_* предпочитать оболочке§8.2.1
Отчётность: ревизия, сумма, ссылки файл:строка§8.7

Важно про формулировку

Если MCP не подключён, §8.2.1 предписывает «работать через оболочку командами §8.3 и далее — это не отменяет обязательности RAGRAF, а меняет только способ вызова». Правило остаётся исполнимым в обеих конфигурациях — именно поэтому индекс работает на этой машине без MCP.

Проверка — четыре уровня

От узкого к широкому: CLI и реестр → свежесть корпуса → MCP-канал → телеметрия. Каждый уровень — команда и ожидаемый результат из сессии.

Канал CLI жив и видит корпуса: реестр разработок и актуализация собственного корпуса RAGRAF.

Уровень 1 (PowerShell)
python <repo>\tools\ragraf.py catalog
python <repo>\tools\ragraf.py ensure <repo>

Ожидается

Text
18 разработок в реестре; status: actual и совпадение сумм.

Откат

Регистрация MCP — единственное обратимое действие в интерфейсе: снять сервер в том же разделе настроек и перезапустить приложение. Индекс, реестр и корпуса от этого не меняются.

Правки самого RAGRAF аддитивные; чтобы вернуть прежнее поведение, достаточно трёх изменений: убрать вызов force_utf8_stdio(), вернуть required=True у --project, удалить ragraf_use_project из TOOLS и _handlers. Ни одно из них не затрагивает индекс, схему хранилища, нумерацию ревизий или реестр — переиндексация при откате не требуется.

Копии навыка в аккаунтах восстанавливаются из проекта:

Восстановление копии навыка (PowerShell)
Copy-Item -Recurse -Force <repo>\docs\skills\ragraf-core `
    "$env:APPDATA\AutoClaw-oversea-official\accounts\<account>\runtime\zwork-agent\skills\ragraf-core"

Где что лежит в AutoClaw

ЧтоПуть
Установка приложения (zwork 2.0.2)%LOCALAPPDATA%\Programs\AutoClaw2
Код приложения (не asar)…\resources\app\dist\main.cjs
Встроенный агент…\resources\app\node_modules\@earendil-works\pi-coding-agent
Вертикальные паки (в т. ч. mcpServers)…\app\dist\resources\vertical-packs\<pack>\zwork-pack.json
Каталог данных продукта%APPDATA%\AutoClaw-oversea-official
Учётные записи…\accounts\<sha256>
Навыки агента<account>\runtime\zwork-agent\skills\<имя>\SKILL.md
Проекты<account>\projects\<имя>
Состояние (БД, права, артефакты)<account>\runtime\runtime.sqlite
Секреты и связи<account>\runtime\*.enc, credentials.enc, owner-secrets.enc
Пользовательские правила (все проекты)~/.pi/agent/AGENTS.md
Правила каталога проектаAGENTS.md в корне проекта

Особенность установки: код приложения лежит распакованным (resources\app\dist), а не в app.asar. Это удобно для разведки: файлы читаются обычными средствами, и main.cjs можно искать по строкам.

Приглашение в AutoClaw

Приглашай друзей — без ограничений!

Кредитный шторм AutoClawофициальная акция AutoClaw

По моему коду приглашения каждый присоединившийся получает дополнительные бонусные кредиты сверх приветственного гранта, а я получаю кредиты тоже: цикл «выигрывают оба» без ограничений на число приглашений. Это ничего не стоит, занимает десять секунд и остаётся лучшим способом поддержать разработчика, который ведёт эту страницу, гайды и подсказки по настройке.

  • Двойная выгодаПриветственные токены и бонус за приглашение складываются, если регистрироваться по коду.
  • Без ограниченийПриглашать можно сколько угодно: каждое присоединение пополняет кредиты обеим сторонам.
  • Поддержка разработчикаИспользование кода — бесплатное «спасибо», за счёт которого выходят гайды, конфиги и обновления.
Код приглашенияVWBPA6VL
Присоединиться к AutoClaw и получить кредитыhttps://autoglm.ai/misc/autoclaw-invite?activity_id=autoclaw_fission&channel=fission&target_app=autoclaw&target_app_version=2.1.1&os=win&IC=VWBPA6VL

Работает на Windows, macOS и Linux. Уже установлено? Откройте AutoClaw → «Настройки» → «Введите код приглашения» → вставьте код. Затем поделитесь своей ссылкой и продолжите цепочку.

Это приглашение в программу AutoClaw, а не факт о RAGRAF: код и ссылка принадлежат аккаунту автора, страница не связана с программой официально и не получает за неё плату от продукта.