Главная беда практически всех современных автономных ИИ-ассистентов — это хроническая амнезия. Ты часами настраиваешь бота, объясняешь ему специфику архитектуры своего проекта, учишь избегать определенных библиотек и задаешь формат ответов. Но стоит закрыть терминал, обновить страницу или перезапустить агентную сессию — и цифровой помощник возвращается к заводским настройкам, глядя на тебя с чистого листа.
Попытки решить эту проблему через закрытые векторные базы данных (black-box vector stores) создают другую проблему: ты не видишь, какие именно факты и в каком виде запомнила нейросеть. Память превращается в «черный ящик», где накапливаются галлюцинации и устаревшие сведения, а исправить отдельную запись вручную невозможно.
Исследовательская лаборатория Nous Research предложила элегантное инженерное решение этой проблемы в своем открытом фреймворке Hermes Agent, добавив нативную поддержку популярного редактора заметок Obsidian. Теперь вся память агента — от личных привычек пользователя до архитектурных решений проектов — сохраняется в виде человекочитаемых Markdown-файлов с двунаправленными ссылками [[Wikilinks]].
Я развернул эту связку на локальной машине, исследовал трехуровневую модель хранения знаний и протестировал сценарии совместной работы нескольких агентов с одним хранилищем. Давай разберем архитектуру этой системы и посмотрим, как настроить общую память для своего роя ботов.
Трехуровневая модель памяти: как устроено хранилище Hermes
В основе архитектуры лежит четкое разделение контекста на три функциональных уровня (Split-Memory Architecture):
USER.md(Постоянный профиль пользователя): Компактный файл в корне хранилища, который подгружается в системный контекст модели при каждом запросе. Здесь фиксируются неизменные вводные: часовой пояс, предпочитаемый стек технологий (например, «строго TypeScript и pnpm»), стиль коммуникации, ограничения по безопасности и рабочие часы.MEMORY.md(Операционные правила и извлеченные уроки): Живой реестр практических фактов о кодовой базе и системах, который агент обновляет самостоятельно в процессе работы. Например, наткнувшись на ошибку сборки, агент записывает: «Команда npm run build в этом репозитории требует Node.js v22, на v20 падает с ошибкой парсинга». В следующий раз модель сразу применит правильную версию.state.db(Полнотекстовый сессионный архив): Локальная база данных SQLite, куда сохраняются полные дампы всех завершенных диалогов. Если агенту требуются детали обсуждения месячной давности, он выполняет семантический поиск по архиву, вытягивает только нужный абзац и не забивает оперативное окно контекста лишними данными.
Конфигурация и запуск навыка Obsidian
Интеграция поставляется в составе Hermes Agent в виде встроенного навыка obsidian. Для его активации достаточно указать путь к локальному хранилищу заметок:
# Привязка локального хранилища Obsidian к конфигурации Hermes Agent
export OBSIDIAN_VAULT_PATH="$HOME/Documents/SecondBrain"
hermes config set obsidian.vault_path "$HOME/Documents/SecondBrain"
# Инициализация базовых файлов профиля и операционной памяти
hermes memory init --template=developer-profile
А если тебе требуется автоматизировать синхронизацию графа заметок и извлечение новых уроков из внешних скриптов, используется простой модуль на Python:
import os
from pathlib import Path
import datetime
vault_path = Path(os.environ.get("OBSIDIAN_VAULT_PATH", Path.home() / "Documents/SecondBrain"))
def record_agent_lesson(topic: str, lesson_text: str, source_card: str = ""):
"""Добавляет извлеченный агентом урок в MEMORY.md с перекрестной ссылкой."""
memory_file = vault_path / "MEMORY.md"
today = datetime.date.today().isoformat()
new_entry = f"\n- **[{today}] {topic}:** {lesson_text}"
if source_card:
new_entry += f" (см. [[{source_card}]])"
with open(memory_file, "a", encoding="utf-8") as f:
f.write(new_entry)
print(f"[Hermes Memory] Урок успешно зафиксирован в Obsidian: {topic}")
# Пример фиксации урока после рефакторинга микросервиса
record_agent_lesson(
topic="Миграция схемы Redis",
lesson_text="Пул соединений в кластере требует keepalive-интервал 30s во избежание сброса сессий",
source_card="infrastructure-redis-tuning"
)
Прозрачность графа знаний и работа в рое (Swarm Memory)
Главное преимущество связки Hermes + Obsidian — абсолютная прозрачность. Ты можешь в любой момент открыть Obsidian, включить режим интерактивного графа (Graph View) и наглядно увидеть, как связаны между собой проекты, баги и архитектурные решения. Если агент запомнил что-то неверно, тебе не нужно переобучать модель или очищать векторную базу: ты просто открываешь обычный текстовый файл руками, исправляешь строчку и сохраняешь.
Кроме того, одно хранилище Obsidian может одновременно служить единым мозгом для целого роя агентов:
- Агент-исследователь мониторит новости и складывает саммари в папку
/Research; - Агент-разработчик читает эти материалы, генерирует код и оставляет отчет в
/Engineering; - Агент-тестировщик прогоняет тесты, обновляет статус задач и проставляет перекрестные ссылки.
Все они общаются через общие файлы и стандартный синтаксис Wikilinks, не требуя сложных протоколов координации.
Связка Hermes Agent и Obsidian возвращает пользователю контроль над собственными данными. Долговременная память перестает быть абстрактной маркетинговой фразой и превращается в надежный, прозрачный и локальный инструмент повседневной работы.
