Профиль Hermes Zotero Librarian
Обзор
zotero-librarian — это готовый к установке профиль Hermes, который позволяет ИИ-агентам управлять вашей библиотекой Zotero через Host Bridge. Он включает всё, что нужно агенту: CLI zotero-bridge, шаблон профиля подключения Host Bridge, локальный индекс метаданных SQLite, кэш каталога рабочих процессов, скрипты мониторинга выполнения и запланированные задания cron для обслуживания.
Профиль распространяется как самостоятельный пакет из ветки host-bridge/zotero-librarian-profile репозитория Zotero Agents.
Что он умеет
| Функция | Описание |
|---|---|
| Локальный индекс метаданных | Поддерживает запрашиваемый SQLite-снимок вашей библиотеки Zotero — названия, авторы, теги, коллекции, DOI, количество заметок/вложений — для быстрых запросов с возможностью офлайн-доступа |
| Кэш каталога рабочих процессов | Локально кэширует все контракты полезной нагрузки встроенных рабочих процессов, позволяя агентам отправлять известные процессы без повторного запроса схем при каждом запуске |
| Плановое обслуживание | Шесть встроенных cron-шаблонов: обновление индекса, обновление каталога процессов, мониторинг выполнения, сортировка входящих, гигиена библиотеки и сводки очереди внимания |
| Мониторинг выполнения | Отслеживает отправленные выполнения рабочих процессов и сообщает об изменениях состояния, конечных состояниях или элементах, требующих внимания |
| Очередь внимания | Объединяет insights.get_attention_queue Host Bridge с метаданными локального индекса для отображения приоритетных задач чтения и анализа |
Установка
Предварительные требования
- Zotero 7+ с установленным плагином Zotero Agents
- Host Bridge запущен (проверка: Zotero → Настройки → Zotero Agents → Host Bridge → Запустить / Показать конечную точку)
- Hermes установлен в системе
- CLI
zotero-bridgeдоступен (установка через кнопку Установить CLI в панели настроек Host Bridge)
Установка профиля
hermes profile install zotero-librarian
Это загружает пакет профиля и извлекает его в каталог профилей Hermes.
Настройка Hermes
Отредактируйте config.yaml профиля, чтобы настроить предпочитаемого провайдера моделей:
# Внутри установленного каталога профиля
provider:
type: anthropic # или openai, local и т.д.
model: claude-sonnet-4-20250514
# ... API-ключ и другие настройки провайдера
Полные параметры конфигурации провайдера см. в документации Hermes.
Настройка подключения Zotero Bridge
Профиль поставляется с шаблоном подключения Host Bridge в assets/host-bridge/profile.example.json. Вам необходимо указать фактическую конечную точку и токен:
- Откройте Zotero → Настройки → Zotero Agents → Host Bridge
- Нажмите Запустить / Показать конечную точку, чтобы убедиться, что мост работает, и запишите URL конечной точки (например,
http://127.0.0.1:26570/bridge/v1) - Нажмите Копировать мастер-токен (или используйте сеансовый токен, отображаемый на панели)
- Установите токен как переменную окружения:
# Linux / macOS
export ZOTERO_BRIDGE_TOKEN="<ваш-токен>"
# Windows PowerShell
$env:ZOTERO_BRIDGE_TOKEN = "<ваш-токен>"
- Для удалённого/LAN-доступа укажите также конечную точку напрямую:
export ZOTERO_BRIDGE_ENDPOINT="http://127.0.0.1:26570/bridge/v1"
Шаблон профиля использует auth.tokenEnv: "ZOTERO_BRIDGE_TOKEN", поэтому CLI автоматически берёт токен из окружения. Подробную документацию по конечной точке, токену и файлам профиля см. в разделе Конфигурация Host Bridge.
Проверка установки
# Проверка подключения к Host Bridge
zotero-bridge status
# Установка бинарных файлов CLI в профиль (только первый раз)
python scripts/install_zotero_bridge_cli.py
# Первоначальное обновление индекса (извлекает все метаданные библиотеки в локальный SQLite)
python scripts/zotero_librarian_index_service.py refresh
# Тестовый поиск в локальном индексе
python scripts/zotero_librarian_index_service.py search "machine learning"
Команды индексного сервиса
Основная утилита профиля — zotero_librarian_index_service.py. Она поддерживает локальную базу данных SQLite для быстрых повторяющихся запросов к библиотеке без вызова Zotero при каждом запросе.
| Команда | Описание |
|---|---|
refresh | Постранично проходит zotero-bridge library snapshot и атомарно обновляет индекс SQLite. Элементы, отсутствующие в последнем обновлении, помечаются как удалённые. |
search "<запрос>" | Полнотекстовый поиск по названиям, авторам, идентификаторам, тегам, коллекциям и полям публикаций |
item <key-or-id> | Возвращает одну индексированную запись по ключу элемента Zotero или числовому ID |
stats | Отчёт о количестве активных/удалённых элементов, тегов, коллекций и состоянии каталога процессов |
workflow-refresh | Вызывает workflow list и workflow describe для обновления локального кэша каталога процессов |
workflow-show <id> | Отображает кэшированный контракт полезной нагрузки для известного процесса |
run-register --run-id <id> --workflow-id <id> | Регистрирует отправленное выполнение процесса для мониторинга |
run-watch | Проверяет все активные зарегистрированные выполнения и сообщает об изменениях состояния или конечных состояниях |
Сценарии использования
Управление библиотекой
Ежедневная проверка статусов workflow (cron/workflow-status-triage.yaml)
Этот cron только для чтения ищет status:need-* и сообщает об ожидающих задачах workflow. Он не выводит статусы, не изменяет теги и Zotero.
Еженедельная гигиена библиотеки (cron/library-hygiene.yaml)
Выполняется еженедельно по понедельникам и сканирует библиотеку на предмет проблем с качеством данных:
- Дублирующиеся записи (по DOI, названию или ISBN)
- Подозрительные названия с искажёнными символами
- Осиротевшие элементы (без родительской коллекции)
- Пустые коллекции
- Чрезмерное количество тегов у отдельных элементов
- Элементы с необычными типами элементов Zotero
Все предложения доступны только для чтения, пока вы явно не одобрите корректирующие действия.
Очередь внимания (cron/attention-queue.yaml)
Объединяет insights.get_attention_queue Host Bridge с метаданными локального индекса для отображения ранжированного списка приоритетных задач — статей для чтения, пробелов в метаданных для заполнения, процессов для выполнения.
Поиск и импорт литературы
-
Сначала выполните поиск в локальном индексе, чтобы избежать повторного добавления уже имеющихся статей:
python scripts/zotero_librarian_index_service.py search "attention mechanism survey" -
Если статья не найдена, используйте процесс
literature-search-ingestдля поиска во внешних источниках и добавления в Zotero:zotero-bridge workflow submit \--workflow literature-search-ingest \--none \--workflow-options '{"query":"attention mechanism survey","searchMode":"arxiv-and-doi"}' -
После импорта запустите процессы tag-bootstrapper или tag-regulator для нормализации тегов новых элементов.
Автоматизированные процессы анализа литературы
Профиль каталогизирует все встроенные процессы плагина Zotero Agents. После обновления каталога вы можете отправлять любой процесс напрямую, не запрашивая повторно его схему.
Пакетный анализ литературы
Отправьте процесс literature-analysis для коллекции статей, чтобы сгенерировать структурированные дайджесты:
zotero-bridge workflow submit \
--workflow literature-analysis \
--items @items.json \
--workflow-options '{"language":"ru"}'
Зарегистрируйте и отслеживайте выполнение:
python scripts/zotero_librarian_index_service.py run-register --run-id <run-id> --workflow-id literature-analysis
python scripts/zotero_librarian_index_service.py run-watch
Глубокое чтение отдельной статьи
Для углублённого анализа конкретной статьи:
zotero-bridge workflow submit \
--workflow literature-deep-reading \
--items '[{"key":"ABCD1234","libraryId":1}]' \
--workflow-options '{"target_language":"ru","mode":"comprehensive"}'
Межстатейный синтез тем
Синтезируйте темы по коллекции статей:
zotero-bridge workflow submit \
--workflow create-topic-synthesis \
--items @collection-items.json \
--workflow-options '{"topicSeed":"self-supervised learning","language":"ru"}'
Помощь в переводе
Переводите метаданные или рефераты статей:
zotero-bridge workflow submit \
--workflow literature-translator \
--items '[{"key":"ABCD1234","libraryId":1}]' \
--workflow-options '{"target_language":"ru","mode":"metadata"}'
Вопросы и ответы по статьям
Задавайте вопросы о содержании статьи:
zotero-bridge workflow submit \
--workflow literature-explainer \
--items '[{"key":"ABCD1234","libraryId":1}]' \
--workflow-options '{"language":"ru"}'
Запланированные задачи обслуживания
Профиль включает шесть предварительно настроенных cron-шаблонов в каталоге cron/:
| Задача Cron | Расписание | Поведение |
|---|---|---|
index-refresh | Каждые 6 часов | Постранично проходит library snapshot для поддержания локального индекса SQLite в актуальном состоянии. Сообщает [SILENT], если изменений не обнаружено. |
workflow-catalog-refresh | Ежедневно в 03:00 | Вызывает workflow list + workflow describe для обновления кэша каталога процессов. Сообщает [SILENT] при отсутствии изменений. |
run-monitor | Каждые 5 минут | Вызывает run-watch для проверки активных зарегистрированных выполнений. Сообщает только об изменениях состояния, конечных состояниях или элементах, требующих внимания. |
workflow-status-triage | Ежедневно в 09:00 | Ищет status:need-* и создаёт отчёт только для чтения об ожидающих workflow. |
library-hygiene | Еженедельно по понедельникам | Сканирует дублирующиеся записи, осиротевшие элементы, пустые коллекции и проблемы с качеством данных. |
attention-queue | Ежедневно в 18:00 | Объединяет данные очереди внимания с данными локального индекса для ранжирования приоритетных задач. |
Все неинтерактивные задачи обслуживания используют маркеры [SILENT], чтобы не беспокоить пользователя при отсутствии практических результатов.
Границы безопасности
- Шаблон профиля (
profile.example.json) никогда не содержит реальных токенов. Всегда используйтеZOTERO_BRIDGE_TOKENкак переменную окружения. - Задачи cron обслуживания по умолчанию только для чтения. Изменения требуют явного одобрения пользователя.
- Никогда не читайте файлы базы данных Zotero напрямую. Всегда используйте Host Bridge,
zotero-bridgeи локальный индекс, созданный изlibrary.sync_snapshot.
Дальнейшие шаги
- Host Bridge — полный справочник по CLI
zotero-bridgeи возможностям Host Bridge - Рабочие процессы — обзор всех встроенных и пользовательских процессов
- MCP-сервер — альтернативный протокольный интерфейс для MCP-совместимых клиентов