agent hubПУТЕВОДИТЕЛЬ Начать

Документация

Общая и проектная память

Agent Hub хранит устойчивые знания в локальном Markdown и предоставляет один сервис через CLI, локальный UI и необязательный MCP stdio. Записи — справочные данные, не исполняемые инструкции. Автоматизация импортирует выбранные заметки и запрашивает смысловые checkpoints активного агента. Проверьте реальное чтение и запись в клиентах: само подключение MCP не гарантирует поведение модели.

Области и хранение

Общая память предназначена для осознанно переиспользуемых знаний. Проектная принадлежит явно зарегистрированному checkout. CLI выбирает одну область: текущий проект, другой зарегистрированный checkout через --workspace <directory> либо явно --shared. Запросы MCP и UI не задают произвольные ID проектов и пути.

hub/memory/
  MEMORY.md                     # shared index, personal text preserved
  projects.json                 # private, local checkout bindings
  shared/
    index.json                  # index block ownership
    records/<id>.md
  projects/<project-id>/
    MEMORY.md                   # project index
    index.json
    records/<id>.md

Все записи остаются в Hub; регистрация ничего не пишет в репозиторий проекта. Для команды отдельно решите, какие файлы публиковать. Разные Hub могут разделять рабочие и личные данные. Области ограничивают доступ через Hub, но не изолируют агента с независимым доступом к диску.

YAML-метаданные записи включают версию, стабильный ID, заголовок, область, вид (fact, preference, decision, lesson), теги, необязательный источник и UTC-время создания и изменения. Тело — Markdown. Ревизия хеширует реальные байты, включая правки редактора. Управляемые пути отвергают ссылки ниже выбранного Hub. Лимит записи с метаданными — 128 KiB, коллекции — 2000 записей. Поиск сопоставляет все слова запроса с ID, заголовком, видом, тегами и телом, без embeddings и внешних сервисов.

Инструкции храните в инструкциях, процедуры — в навыках, контекст репозитория — в PROJECT.md, текущую задачу — в NOW.md. Не дублируйте факты, уже поддерживаемые документацией проекта: сохраняйте ссылку и причину значимости.

Работа через CLI

Используйте установленный ahub либо вызовы из исходников. Сначала инициализируйте Hub.

ahub memory project register example-project /path/to/project --dry-run

Примените точную команду из preview. Регистрация связывает канонический Git-checkout и идентичность его локальной Git-папки со стабильным ID. Повтор той же привязки ничего не меняет. Другой явно зарегистрированный checkout того же ID разделяет факты; папка с совпадающим именем не присоединяется автоматически. Замена репозитория по старому пути блокирует доступ. Проверяйте project register <same-id> <directory> --rebind только если новый репозиторий должен унаследовать знания. Привязка к другому проекту конфликтует и с --rebind. Перед переназначением восстановите копию привязки; перемещённые checkout требуют явной регистрации. Идентичность файловой системы защищает от случайного переиспользования, но не является криптографической или переносимой между машинами.

ahub memory add retry-rule --workspace /path/to/project \
  --title 'Use idempotency keys for API retries' --kind lesson \
  --file /path/to/selected-note.md --source 'Issue or document reference' --dry-run
ahub memory ls --workspace /path/to/project --json
ahub memory search 'API retries' --workspace /path/to/project --json
ahub memory get retry-rule --workspace /path/to/project --json

Создание требует заголовка и тела из локального UTF-8 файла. Теги повторяются через --tag. Для общих знаний замените --workspace ... на --shared. Источник — строка атрибуции: URL не загружается и скрипт не исполняется.

ahub memory update retry-rule --workspace /path/to/project \
  --file /path/to/revised-note.md --record-revision <revision-from-get> --dry-run
ahub memory rm retry-rule --workspace /path/to/project \
  --record-revision <revision-from-get> --dry-run

Обновление сохраняет неуказанные метаданные. --clear-tags и --clear-source очищают значения. Изменение и удаление требуют текущей ревизии записи; применение — точной ревизии плана. Созданная команда содержит фиксированное время --at, чтобы повтор не создавал другой план. Сохраняйте его; после изменения входа нужен новый preview. Источники перечитываются и при планировании, и при применении.

memory import <id> --title ... --file ... копирует явно выбранные знания в тело одной новой записи, по умолчанию указывает путь источника и сохраняет оригинал. Совпадающие ID конфликтуют: повторный импорт не дублирует и не заменяет запись незаметно. Для автоматического Markdown и текущего диалога есть автоматизация. Разделяйте независимые факты намеренно. Обмен графовым JSONL, перенос нативного хранилища и массовый разбор архивных диалогов не реализованы.

Найдите и импортируйте существующую память клиентов

После регистрации checkout проверьте источники перед новым диалогом:

ahub memory discover --workspace /path/to/project
ahub memory onboard --workspace /path/to/project --follow --dry-run

Поиск не импортирует записи и не меняет клиентов. Он показывает стабильные ID, формат, физический путь, сведения о checkout и известный ID Hub. Проверяются источники политики, локальные папки проекта и клиентов, коллекции Claude и пользовательский autoMemoryDirectory. Проект Claude определяется по ограниченным cwd-метаданным сессий, а не неточному декодированию имени папки. Текст диалога не выдаётся и не архивируется. Неясные, отсутствующие и превышающие бюджет сведения остаются неразрешёнными. Checkout одного явно зарегистрированного проекта могут разделять источники.

По умолчанию onboarding выбирает поддерживаемые источники этого проекта. Для неясного источника используйте ID поиска:

ahub memory onboard --workspace /path/to/project \
  --source source-<id> --follow --dry-run

Повторяйте --source для нескольких коллекций, максимум 20 в плане. Явно выбранный неясный источник назначается показанному проекту при проверке; известные чужие источники отклоняются. Не назначайте общую многопроектную коллекцию целиком одному проекту. SQLite и другие неподдерживаемые форматы явно отвергаются, а не упрощаются незаметно: сначала экспортируйте выбранные знания в Markdown. Внешние графы и архивные диалоги остаются отдельной работой.

Примените точную команду с --expect и --at. Факты, привязки, индекс и необязательная политика записываются одной восстанавливаемой операцией. Правка источника делает план устаревшим; неизменённый повтор не дублирует записи. Нативные оригиналы не переписываются.

Без --follow импорт одноразовый. С --follow источники и клиенты добавляются во включённую политику будущего сканирования. Hooks это не устанавливает: существующий обработчик может активироваться; иначе используйте проверенный memory auto enable или watcher. Смысловым checkpoints всё ещё нужны события клиента и разрешения. Выключение политики сохраняет знания.

MEMORY.md тоже проверяется. Факты и fenced-примеры сохраняются. Пропускаются только чистые навигационные ссылки на существующие видимые локальные Markdown-файлы внутри области; сами файлы читаются отдельно. Внешние, отсутствующие и скрытые ссылки, а также строки со ссылкой и текстом сохраняются. Пропуски навигации — сведения, а не повторяющиеся предупреждения синхронизации.

В UI доступны Memory → Manage records → Find existing client memory, выбор источников, необязательное отслеживание и тот же защищённый preview/apply. До применения импорта проект должен быть зарегистрирован.

Работа через MCP

ahub memory serve --workspace /path/to/project

Workspace уже должен быть зарегистрирован. Настройте команду как stdio MCP выбранного клиента с тем же AGENT_HUB_HOME, что CLI. Используйте подходящие абсолютные пути исполняемых файлов и проекта. Не выбирайте проект через случайную рабочую папку процесса MCP.

По умолчанию доступны memory_list, memory_search и memory_get привязанного проекта. --include-shared разрешает явно scoped-чтение scope: "shared". --allow-write открывает memory_preview и memory_apply для проектной памяти. Общая запись дополнительно требует --include-shared --allow-shared-write. --allow-auto отдельно открывает memory_checkpoint по включённой политике и активному одноразовому токену. Ни один serve-флаг не устанавливает сервер клиентам и не меняет нативную автопамять.

План записи принимает operation, id, необязательную scope, метаданные и тело, а для изменения и удаления — recordRevision. Применение требует непрозрачный ID и ревизию. Планы принадлежат процессу сервера, действуют пять минут и одноразовые; перезапуск их теряет. Проверьте знание и область. Разрешения инструментов и запросы подтверждения принадлежат MCP-клиенту; само разделение preview/apply не доказывает согласия человека.

Процессы используют общую блокировку Hub и перечитывают данные под ней. Правка коллекции или индекса другим писателем делает план устаревшим: получите актуальные данные. Так предотвращается тихая перезапись последним писателем.

Рекомендуемый процесс агента: найти знания проекта перед связанной работой, прочитать записи и сверить с текущими доказательствами, после полезного результата предложить один устойчивый факт с источником. Временный прогресс хранить в NOW.md. Память считать потенциально устаревшей справкой. Перенос в общую область — только явным решением пользователя.

Локальный UI и доставка индекса

Откройте Memory → Manage records, выберите проект или общие знания, найдите запись или создайте новую, проверьте сохранение либо удаление и примените с копией. Правки формы сбрасывают preview. Проект выбирается среди проверенных зарегистрированных привязок либо через стартовую папку; неподключённая область сообщает о необходимости привязки. Для неё по умолчанию доступны общие знания. Старые Markdown-документы верхнего уровня читаются отдельно.

Изменение обновляет свой блок индекса и владение вместе с фактом. Личный текст сохраняется; изменённые, удалённые, повторные и чужие блоки блокируют запись. Индекс показывает до 60 записей с общим бюджетом 24 KiB; для остальных используйте поиск по области. Правки редактора сразу видны при чтении; производные заголовки обновятся следующей проверенной операцией. Не редактируйте созданные блоки вручную.

sync --area context доставляет только общий индекс, не все проектные индексы в глобальные инструкции. Claude импортирует источник; Codex/DSH получают текст и требуют повторного context sync для его обновления. Проектные записи читаются через привязанный MCP, CLI или локальный индекс. MCP видит актуальные файлы без перезапуска клиента.

Восстановление и оставшиеся ограничения

Запись начинается с preview и использует общую управляемую операцию, ревизии, закрытые копии и первые оригиналы. restore <content-backup-id> --dry-run показывает совместный откат записей, индекса и владения. Внешние правки блокируют restore. Reset возвращает сохранённый baseline и архивирует нынешние данные, включая память; это не команда выборочного удаления знаний. См. восстановление.

Копии и привязки локальны и не зашифрованы. Последовательность замен восстанавливается компенсирующим откатом, но не является общей транзакцией диска или гарантией при потере питания. Внешний редактор не соблюдает блокировку. Отдельный @modelcontextprotocol/server-memory использует графовую модель: не направляйте его на Markdown и не создавайте два независимо записываемых оригинала коллекции. Адаптер обмена пока запланирован.

Выбор и отключение проекта

UI показывает общие записи, если проект не подключён, отличает число записей от Markdown-документов и позволяет выбирать проверенные зарегистрированные проекты. Переключение сбрасывает планы и создаёт новую привязанную сессию памяти.

ahub project disconnect <id> показывает отключение всех checkout проекта, политики и временных токенов. Факты, источники и заметки остаются. Доступ проекта, включая фиксированный MCP, отказывает отключённой привязке. Повторный project connect проверяет Git и использует прежние ID и знания. Общие hooks сохраняются для других проектов.