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

Профиль 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. Вам необходимо указать фактическую конечную точку и токен:

  1. Откройте Zotero → Настройки → Zotero Agents → Host Bridge
  2. Нажмите Запустить / Показать конечную точку, чтобы убедиться, что мост работает, и запишите URL конечной точки (например, http://127.0.0.1:26570/bridge/v1)
  3. Нажмите Копировать мастер-токен (или используйте сеансовый токен, отображаемый на панели)
  4. Установите токен как переменную окружения:
# Linux / macOS
export ZOTERO_BRIDGE_TOKEN="<ваш-токен>"

# Windows PowerShell
$env:ZOTERO_BRIDGE_TOKEN = "<ваш-токен>"
  1. Для удалённого/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 с метаданными локального индекса для отображения ранжированного списка приоритетных задач — статей для чтения, пробелов в метаданных для заполнения, процессов для выполнения.

Поиск и импорт литературы​

  1. Сначала выполните поиск в локальном индексе, чтобы избежать повторного добавления уже имеющихся статей:

    python scripts/zotero_librarian_index_service.py search "attention mechanism survey"
  2. Если статья не найдена, используйте процесс literature-search-ingest для поиска во внешних источниках и добавления в Zotero:

    zotero-bridge workflow submit \
    --workflow literature-search-ingest \
    --none \
    --workflow-options '{"query":"attention mechanism survey","searchMode":"arxiv-and-doi"}'
  3. После импорта запустите процессы 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-совместимых клиентов