Руководство пользователя

База знаний сеансов

На этой странице описаны «База знаний сеансов», «История обработки» и «Архивные сессии». Управление локальными файлами Markdown, их редактирование и импорт описаны в главе Локальные базы знаний.

База знаний сеансов хранит знания, решения, ограничения и накопленный опыт, упорядоченные по схеме «проект → сессия → статья». Созданные статьи хранятся отдельно: они не меняются при изменении исходной сессии, и их можно редактировать вручную. База знаний сеансов принадлежит серверу VelaTerm, к которому вы подключены, и используется всеми его проектами и сессиями; при подключении к другому серверу вы видите базу знаний этого сервера.

База знаний сеансов и поиск по содержимому сессий — разные функции. Поиск по сессиям находит текст в исходных диалогах, а база знаний ищет только по сохранённым статьям. VelaTerm упорядочивает, сохраняет и показывает статьи по вашему запросу, но не добавляет их в новые сессии автоматически.

Обработка сессии

  1. Щёлкните сессию правой кнопкой мыши в боковой панели или на её вкладке и выберите «Подготовить для базы знаний сеансов». То же действие доступно для архивных сессий.
  2. Выберите агента в поле «Агент»: Claude, Codex, Grok Build, OpenCode, Pi или OMP. VelaTerm использует путь к исполняемому файлу, заданный в разделе «Настройки ▸ Агенты», или находит программу через PATH. Агент, которого не удалось найти, отмечен как «Не установлен или не настроен», и выбрать его нельзя.
  3. При необходимости заполните поля «Модель (необязательно)» и «Глубина рассуждения». Значения «Модель по умолчанию» и «По умолчанию у агента» оставляют выбор за собственной конфигурацией агента. Список моделей тот же, что и при создании сессии, а уровни глубины рассуждения показываются только для моделей, которые их поддерживают. VelaTerm запоминает последние выбранные агент, модель и глубину рассуждения. В агенте должен быть выполнен вход, и у него должен быть доступ к выбранной модели.
  4. Нажмите «Упорядочить и сохранить». Выбранный агент получает текст сессии и обрабатывает его с собственной конфигурацией моделей.
  5. Следите за задачей в разделе «История обработки». Закрытие окна не останавливает задачу.

VelaTerm читает запись диалога агента, если она доступна. В противном случае используется запись терминала сессии (см. Использование терминала), из которой удалены управляющие последовательности терминала. Если не удаётся прочитать ни то ни другое, выводится сообщение «Для этого сеанса нет доступной для чтения беседы.» Запись терминала содержит видимый на экране текст и может включать перерисованное содержимое, поэтому агент, выполняющий обработку, не должен считать такой вывод проверенным фактом.

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

Повторная обработка сессии заново читает её и заменяет созданные ранее на её основе статьи вместе с вашими ручными правками; это происходит, даже если текст и параметры модели не изменились. Если у сессии уже есть незавершённая задача, новая задача заменяет её. Если старая задача уже выполняется, новая запускается автоматически после остановки старого процесса («Эта задача запустится автоматически после остановки предыдущей задачи этого сеанса.»); старая задача остаётся в истории.

Как выполняется обработка

Обработка состоит из трёх этапов, которые отображаются как ход выполнения задачи:

  • Извлечение тем: сессия читается по частям, и из неё извлекаются знания для повторного использования. Темы объединяются только в рамках этой задачи; статьи других сессий и прежние ручные правки не используются.
  • Объединение знаний: материалы по каждой теме сводятся вместе с сохранением знаний, ограничений и неопределённости. Агент получает указание учитывать более поздние исправления и противоречия и не придумывать выводы.
  • Сохранение статей: VelaTerm проверяет поля, источники, ссылки и версии и заменяет созданные статьи сессии в одной транзакции базы данных. Статья с тем же заголовком остаётся той же статьёй и получает новую версию. Статьи, которые больше не создаются, удаляются вместе с историей версий, а ссылки на них убираются. Если обработка прошла успешно, но ничего пригодного для повторного использования не найдено, прежние созданные статьи сессии удаляются («Знания для повторного использования не найдены. Ранее созданные записи этого сеанса удалены.»). При неудачной проверке, отмене или конфликте версий прежние статьи остаются без изменений, а частичный результат не сохраняется.

Агент возвращает структурированное содержимое, а все изменения в базе данных выполняет VelaTerm. Статьи ссылаются друг на друга, а списки «Ссылки на эту статью» формируются автоматически. Снимки источников и история версий остаются доступными, даже если исходная сессия удалена.

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

История обработки

В разделе «История обработки» перечислены задачи обработки, по 40 на странице. Для каждой задачи показаны агент, модель («Модель по умолчанию», если модель не выбрана), глубина рассуждения и время; для выполняемой задачи также показан текущий этап («Извлечение тем», «Объединение знаний» или «Сохранение статей»). Статус задачи — «Ожидает запуска», «Выполняется», «Отмена», «Завершено», «Ошибка» или «Отменено»; из списка можно открыть её «Снимок источника» и полученные статьи.

  • «Отмена» останавливает ожидающую или выполняемую задачу. Выполняемая задача показывает статус «Отмена», пока процесс агента не остановится. Отмена не удаляет снимок источника.
  • «Повторить» перезапускает завершившуюся ошибкой или отменённую задачу с тем же снимком источника, моделью и глубиной рассуждения. В истории показаны параметры, с которыми задача была создана; значение по умолчанию означает, что выбор сделал агент, а не что VelaTerm определил конкретную модель.

Разные сессии можно обрабатывать параллельно. Для каждой сессии одновременно выполняется только одна задача, а при повторной отправке сохраняется лишь самая новая ожидающая задача, так что очередь не накапливается. Ожидающие задачи сохраняются в базе данных и продолжаются после перезапуска приложения. Выполняемая задача, которая две минуты не сообщала о ходе работы, помечается как прерванная («Обработка прервана. Её можно повторить, используя сохранённый снимок источника.»). Время ожидания не учитывается в ограничении времени задачи.

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

Просмотр и ведение статей

Откройте базу знаний из правой панели (см. Локальные базы знаний) и разверните раздел «База знаний сеансов» по проектам, сессиям и статьям. Щёлкните проект или сессию, чтобы увидеть список статей, и щёлкните статью, чтобы прочитать её. Кнопка «На уровень выше» возвращает на родительскую страницу.

  • На странице списка есть поиск («Поиск по заголовкам и содержимому…»), фильтр по тегам («Все метки»), сортировка («Недавно обновлённые» или «По заголовку») и обновление. Поиск охватывает заголовки, краткие описания, текст и теги, поддерживает несколько слов (совпасть должны все) и ставит совпадения в заголовках на первое место; для каждого результата также перечислены непосредственно связанные с ним статьи. Если точных совпадений нет, показываются приблизительные, как при поиске по локальным базам знаний.
  • Статьи сессии показываются по 40 на странице; на списки проектов и сессий это ограничение не распространяется, а в длинных списках дерева есть кнопка «Загрузить ещё».
  • На странице статьи показаны текст в формате Markdown, «Связанные статьи», «Ссылки на эту статью», «Источники» и «История версий». Текст можно редактировать прямо на странице и сохранять сочетанием ⌘S / Ctrl+S; кнопка «Изменить» позволяет отредактировать заголовок, краткое описание и теги, а также доступны действия «Экспорт в Markdown», «Копировать в локальный блокнот» и «Удалить». При удалении статьи удаляется и её история версий, но исходная сессия и её снимки сохраняются.
  • «Новая статья» создаёт статью вручную; такие статьи попадают в группу «Создано вручную».

В дереве также доступны действия для управления статьями:

  • Щёлкните статью правой кнопкой мыши, чтобы переименовать или удалить её; чтобы отнести её к другой сессии, перетащите её на эту сессию.
  • Щёлкните правой кнопкой мыши группу проекта или сессии, чтобы переименовать её или удалить её статьи. Переименование группы переименовывает и сам проект или сессию. Удаление группы удаляет только её статьи базы знаний: «Удалить все статьи базы знаний этой группы (N шт.)? Сам проект или сеанс сохранится.»
  • Если перетащить сессию на другой проект, сама сессия переместится в этот проект.
  • Группы «Создано вручную», «Ранее объединённые записи» и «Исходный проект неизвестен» переименовать нельзя.

Страницы статей, формы редактирования, снимки источников, версии, окно обработки и история обработки открываются по собственным URL, а выбранные проект, сессия, поисковый запрос, фильтр, сортировка и страница входят в URL.

Архивные сессии

Архивными сессиями управляют в базе знаний. Раздел «Архивные сессии» находится в дереве базы знаний рядом с разделом «База знаний сеансов» и группирует архивные сессии по проектам, к которым они относились; кнопка «Архив сессий» в заголовке боковой панели открывает тот же раздел.

  • В основной области перечислены все архивные сессии по проектам. У открытой сессии две вкладки: «Диалог» показывает весь диалог, а «Статьи базы знаний» — статьи, созданные на его основе.
  • Поле «Поиск по архиву…» ищет только по полному тексту архивных сессий и группирует совпадения по сессиям.
  • Для открытой архивной сессии доступны действия «Восстановить как обычную сессию», «Подготовить для базы знаний сеансов», «Экспортировать полный контекст в Markdown» (для сессий Claude и Codex) и «Удалить навсегда (вместе с записью)». Безвозвратное удаление выполняется сразу, без запроса подтверждения.
  • Архивирование, восстановление и удаление сессии не изменяют существующие статьи базы знаний, поскольку статьи и снимки источников хранятся отдельно. Восстановленная сессия может продолжить диалог.

Данные из предыдущих версий

При обновлении старых данных VelaTerm отнёс статьи с одной исходной сессией к этой сессии. Статьи, в которых уже были объединены несколько сессий, сохранены без изменений в группе «Ранее объединённые записи»; они не разделяются и никогда не заменяются при повторной обработке одной из этих сессий. Статьи без источника попали в группу «Создано вручную». Сохранившиеся сведения о проектах были однократно заполнены во время обновления; источники, проект которых определить не удалось, перечислены в группе «Исходный проект неизвестен» с исходными названиями сессий и снимками.

Данные и ограничения

База знаний сеансов хранится в базе данных SQLite приложения (таблицы memory_*) отдельно от индекса поиска по сессиям. Интерфейс хранит только отображаемые данные и несохранённые данные форм; проверка, контроль версий, обнаружение дубликатов и все операции записи выполняются на сервере.

  • Источник может содержать до 2 000 000 символов, каждая часть при извлечении — до 24 000 символов, один входной текст модели — до 350 000 символов, а текст одной статьи — до 200 000 символов.
  • Каждый вызов агента может длиться до 10 минут, а каждый его поток вывода может выдать до 8 МиБ.
  • Для OpenCode, Pi и OMP текст, передаваемый за один вызов, ограничен 128 КиБ.
  • Если агент возвращает вывод, не соответствующий ожидаемой структуре, VelaTerm запрашивает его повторно, но не более трёх раз.

Всё, что превышает эти ограничения, завершается явной ошибкой («Источник, контекст или ответ превышает допустимый размер. Содержимое не обрезано и не сохранено.»); ничего не обрезается и не сохраняется.

Обработка регистрируется в журнале logs/runtime-*.log в каталоге данных приложения. Если переменная VLX_LOG_DIR не задана, каталог задаёт VLX_MEMORY_LOG_DIR. VLX_MEMORY_LOG_LEVEL=error записывает только ошибки, а off отключает журнал этого модуля. В журнал записываются задачи и этапы, объёмы входных и выходных данных, длительность, количество символов, дайджесты SHA-256 и показатели расхода токенов. Полные тексты запросов к модели, исходный текст, ответы модели, учётные данные и вывод ошибок в журнал никогда не попадают; исходные материалы хранятся в снимках источников.

Связи с графом кода

Статьи базы знаний можно связывать с символами кода, а раздел «Ссылки на код» на странице статьи ведёт в граф кода. Когда связанный файл изменяется, у статьи появляется отметка о том, что её нужно проверить; подтверждение проверки не изменяет текст статьи. Агенты в сессии могут запрашивать код и статьи с помощью vkb. См. Граф кода и база знаний.