База знаний на основе Obsidian и ИИ. Автоматизация one-to-one

Часть моего еженедельного расписания составляют регулярные встречи с моими сотрудниками. Сейчас таких встреч немного - 4 по 30 минут. Однако не спешите расслабляться, ведь они не такие простые, как может показаться на первый взгляд.

Для меня каждая из этих встреч состоит из трёх этапов:

  1. Подготовка встречи;
  2. Сама встреча;
  3. Подведение итогов встречи.

И чтобы немного упростить себе жизнь, я попробовал их автоматизировать с помощью связки моей базы знаний в Obsidian и n8n. Как это было — под катом.


Содержание

Проблематика

Какую проблему я хотел решить? В контексте one-to-one я бы хотел меньше времени тратить на всё, что не связано с самим разговором.

Например, подготовка встречи. Сейчас для меня это выглядит так: я открываю все заметки по конкретному сотруднику и смотрю самые свежие (в пределах прошедшей недели), т.к. они могут составить основной контекст встречи. Также смотрю заметки предыдущих встреч и проверяю, о чём мы договорились. Что-то добавляю от себя — потому что физически всё записывать невозможно.

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

И я бы не сказал, что на это уходит какое-то невероятное количество времени, но всё-таки я вижу здесь место для оптимизации, которую и решил осуществить.

Как устроены мои заметки

Стоит отдельно рассказать о том, как я веду заметки. В моём рабочем Obsidian на момент написания этого поста почти 400 заметок разной направленности. Визуально такой объём можно оценить на графе:

Граф в Obsidian

Как можно заметить, он ещё и цветной. Разными цветами я выделяю заметки, связанные с определёнными сотрудниками - по отдельному цвету на каждого. И таких заметок у меня большинство.

На каждого сотрудника есть тег вида #сотрудники/<фио>/<тема>, где тема - это направленность заметки. Это может быть обычная заметка (помечаю её как дневник), заметка по проектам сотрудника (помечается как проекты) и так далее. Это позволяет мне при желании уточнить поиск информации.

Архитектура автоматизации

Автоматизировать я решил через n8n, который развёрнут на VPS. 

Не будем останавливаться на том, как локальные заметки из Obsidian попадают на VPS, потому что это тема для отдельного поста. Просто держите в голове: у меня развёрнут PostgreSQL, в котором хранятся нормализованные заметки, разбитые по тегам.

Архитектурно это решение представляет из себя два воркфлоу:

  1. Воркфлоу-триггер для генерации брифинга;
  2. Воркфлоу генерации брифинга.

Первое запускается по расписанию в 10:00 по Москве каждый день. Определяет, с какими из сотрудников у меня сегодня есть встреча и делегирует генерацию брифинга второму воркфлоу.

Благодаря этому у меня есть чёткое деление ответственности: первый воркфлоу управляет расписанием и знает, когда и с кем у меня встреча, а второй - "глупый", который просто генерирует брифинг.

Процесс подготовки

Посмотрим на эти воркфлоу детальнее.

Воркфлоу-триггер

Он состоит буквально из трёх простых нод:

Воркфлоу-триггер брифинга
Триггер-нода - schedule с таким расписанием:
0 0 10 * * *

Обратите внимание, что здесь не обычный crontab, он ещё и включает секунды:

0  0  10  *  *  *
│  │   │   │  │  └─ любой день недели
│  │   │   │  └──── любой месяц
│  │   │   └─────── любой день месяца
│  │   └─────────── 10 часов
│  └─────────────── 0 минут
└────────────────── 0 секунд

Дальше - конфигурация в виде Code-ноды. И в ней же определяется, с кем у меня сегодня будет встреча:

Содержимое ноды Code
Конфигурация при этом сделана весьма просто: у каждого сотрудника я указываю день недели, в который у нас есть встреча, а также указываю тег, по которому можно будет найти заметки, связанные с ним.

По текущей дате с помощью простого JS-кода определяю, с кем из них у меня сегодня встреча, и в результате получаю коллекцию объектов.

Ну и завершающий этап - вызов другого воркфлоу.

Конфигурация ноды execute sub-workflow

Обратите внимание на режим (Mode): запускается один раз для каждого элемента на входе. Если у меня за день будет несколько встреч - выполнится для каждой, а не только для первой.

Воркфлоу подготовки брифинга

Дальше мы попадаем в воркфлоу генерации брифинга:


Воркфлоу для подготовки брифинга перед one-to-one

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

Если есть - я формирую пользовательский промпт, в котором указываю содержимое найденных заметок. И затем отправляю это всё в ИИ через интеграцию с OpenRouter (модель openai/gpt-5.2-chat), прося его составить две вещи:

  1. Саммари прошедшей недели
    В нём - краткий обзор прошедшей недели. Что происходило с сотрудником, по каким проектам работал, ключевые события. Если есть — договорённости с прошлой встречи, открытые вопросы, наблюдения из дневника.
  2. Темы для обсуждения
    На основе заметок ИИ должен предложить мне темы, которые, на его взгляд, нам нужно обсудить.

Получив ответ в нужном формате, подготавливаю сообщение и отправляю его себе в Telegram.

Результаты

Уже несколько недель я пользуюсь этой автоматизацией, и по собственным наблюдениям - это полезно.

Саммари недели

Мне нравится, что у меня в одном месте сразу всё, что я обычно искал вручную. Не нужно залезать в заметки, открывать несколько штук и перечитывать все полотна, которые в них написаны (да, я люблю развёрнуто писать).

В плане подготовки саммари меня работа ИИ полностью устраивает. Бывают, правда, ситуации, когда он прописывает мне то, что мы уже обсуждали. Но это связано зачастую с ситуациями, когда у меня несколько регулярных встреч с сотрудником за неделю.

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

Темы для обсуждения

А вот с темами для обсуждения немного интереснее. Во-первых, ИИ поначалу предлагал мне что-то с сильным отрывом от реальности и я пользовался только его саммаризацией.

Однако недавно я обновил системный промпт и стало получше: теперь темы он формирует получше. И научился указывать ссылки на задачи сразу в сообщении, чтобы я мог в один клик посмотреть, что там за задача была.

Думаю, дальше уже дело экспериментов. Если что-то меня не будет устраивать, я просто попробую улучшить промпт.

Изменения в подходе к заметкам

Спустя некоторое время использования этой автоматизации, я заметил за собой, что начал чуть иначе вести заметки. Чтобы ИИ смог дать мне грамотные рекомендации ко встрече, у него должно быть максимально много контекста. Как у меня в голове, грубо говоря.

Для этого я начал фиксировать больше информации. Например, раньше я хранил у себя только то, что записывал на встречах (не только one-to-one, но и различных синков по проектам и прочего), а теперь я стал фиксировать ещё и заметки других участников процесса.

Например, менеджеры после каждой встречи пишут саммари с договорённостями, к которым мы пришли по ходу обсуждения. Я переношу этот текст себе, размечаю тегами - и вот у меня уже больше контекста, связанного с проектом и/или сотрудником.

А ещё у нас бывают интересные обсуждения в тредах, где мы тоже приходим к каким-либо договорённостям или техническим решениям. Самые важные, на мой взгляд, я тоже начал фиксировать, используя встроенный в корпоративный мессенджер ИИ-помощник, который в пару кликов может обобщить тред на 100 сообщений.

И это реально влияет на результаты генерации ИИ. Он находит темы, о которых я в моменте мог бы и не подумать.

Пример одной из последних генераций

Немного сократил его для наглядности:

🗓 Брифинг: one‑to‑one с разработчиком

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

💬 Темы для обсуждения
• как прошло тестирование последней задачи и всё ли готово к передаче дальше?
• когда планируется приступить к следующим задачам и нет ли риска задержек?
• какие первые впечатления от нового сервиса и какие вопросы уже появились?
• получается ли применять договорённость о дополнительной самопроверке перед релизами?

А что дальше?

Пока что я автоматизировал только первый этап one-to-one - подготовку к нему. По ходу самой встречи я самостоятельно выписываю тезисы, а после - добавляю подробную информацию к каждому из них, в результате чего получается структурированная заметка со всеми важными моментами.

Но и это на самом деле можно автоматизировать. Например, вести запись встреч, а затем превращать это в текстовую расшифровку (конспект), как умеет делать тот же Яндекс Телемост. И из этого конспекта уже можно подготовить структурированное саммари того, что мы обсуждали.

Но пока что я стесняюсь вести запись, чтобы никого из ребят не смущать (хотя все прекрасно понимают, что я веду текстовые записи).