Сессии (Постоянная память)

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

Почему сессии так мощны

Представьте, что вы работаете над сложной функцией. Без сессий каждый раз, когда вы перезапускаете AnyLLM, ИИ начинает с чистого листа, требуя от вас повторного объяснения проекта и вашей текущей задачи. С сессиями ИИ:

  • Помнит разговоры: Вспоминает предыдущие обсуждения, вопросы и ответы.
  • Понимает состояние проекта: Знает, какие файлы вы недавно читали или изменяли.
  • Адаптируется к вашему фокусу: Динамически корректирует свой взгляд на вашу кодовую базу на основе вашего текущего запроса.

Это означает меньше повторений, более быстрое решение проблем и более естественный, непрерывный рабочий процесс.

Как это работает: Умный контекст

Когда режим сессии включен, AnyLLM создает скрытый каталог .anyllm в корне вашего проекта. Внутри этого каталога хранится файл project_context.json, который содержит богатое, JSON-структурированное резюме ваших взаимодействий. Этот контекст загружается каждый раз, когда вы запускаете AnyLLM в режиме сессии, обеспечивая ИИ всестороннее понимание текущего состояния и истории проекта.

Ключевые компоненты этого умного контекста включают:

  • Динамическая карта проекта (repo_map): Это не просто статическое дерево файлов. Основываясь на вашем текущем запросе и недавней активности, AnyLLM интеллектуально генерирует сфокусированный вид вашего проекта. Нерелевантные директории сворачиваются (например, node_modules/ (1200 файлов)), в то время как релевантные разделы разворачиваются, предоставляя ИИ краткий, но подробный обзор файлов, относящихся к вашей задаче.
  • Подсветка кода (code_highlights): Для наиболее релевантных файлов, определенных динамической картой, AnyLLM извлекает и предоставляет сводку ключевых символов (классов, функций) внутри них. Это дает ИИ немедленное представление о структуре кода без необходимости читать весь файл.
  • История разговоров: Подробный журнал ваших прошлых запросов и ответов ИИ, позволяющий ИИ продолжить работу с того места, где вы остановились.
  • Отслеживаемые файлы: Записывает, какие файлы были прочитаны или изменены, помогая ИИ понять вашу недавнюю работу.
  • Выполненные команды: Регистрирует команды терминала, предоставляя контекст о предыдущих действиях.

Включение сессий

Вы можете включить режим сессии двумя способами.

1. С помощью флага --session

Запустите приложение с флагом командной строки --session:

./anyllm --session

Это полезно для временного включения сессий для конкретной команды.

2. С помощью anyllm.json

Для проектов, где вы хотите, чтобы сессии были включены всегда, вы можете добавить параметр в ваш файл anyllm.json:

{
  "session": true,
  "provider": {
    // ... ваша конфигурация провайдера
  }
}

Установка "session": true сделает режим сессии режимом по умолчанию для этого проекта.

Пример использования

Представьте себе следующий рабочий процесс:

Запуск 1: Анализ файла

./anyllm --session
> Проанализируй файл @src/Domain/Agent/BaseAgent.php и скажи мне его назначение.

ИИ читает файл и дает вам сводку. Затем вы выходите. Контекст этого взаимодействия сохраняется.

Запуск 2: Восстановление контекста

Позже вы открываете новый терминал.

./anyllm --session
> Основываясь на файле, который мы только что обсуждали, предложи новый метод для добавления в него.

Поскольку сессия была сохранена, ИИ помнит, о каком файле вы говорили, и может дать релевантное предложение без необходимости снова указывать файл.