Skip to Content
ЯдроQwen Code Core

Qwen Code Core

Основной пакет Qwen Code (packages/core) представляет собой backend-часть Qwen Code, которая отвечает за взаимодействие с API моделей, управление инструментами и обработку запросов, поступающих из packages/cli. Общее описание Qwen Code можно найти на главной странице документации.

Навигация по разделу

  • Core tools API: Информация о том, как определяются, регистрируются и используются инструменты в ядре.
  • Memory Import Processor: Документация по модульной функции импорта QWEN.md с использованием синтаксиса @file.md.

Роль ядра

Хотя часть packages/cli в Qwen Code отвечает за пользовательский интерфейс, packages/core выполняет следующие функции:

  • Взаимодействие с API модели: Безопасная коммуникация с настроенным провайдером модели, отправка пользовательских запросов и получение ответов от модели.
  • Работа с промптами: Формирование эффективных промптов для модели, включая потенциально историю разговора, определения инструментов и контекст из контекстных файлов (например, QWEN.md).
  • Управление и оркестрация инструментов:
    • Регистрация доступных инструментов (например, инструменты файловой системы, выполнение shell-команд).
    • Интерпретация запросов на использование инструментов от модели.
    • Выполнение запрошенных инструментов с переданными аргументами.
    • Возврат результатов выполнения инструментов модели для дальнейшей обработки.
  • Управление сессиями и состоянием: Отслеживание состояния разговора, включая историю и любой другой контекст, необходимый для согласованного взаимодействия.
  • Конфигурация: Управление настройками ядра, такими как доступ к API-ключам, выбор модели и настройки инструментов.

Вопросы безопасности

Core играет важную роль в обеспечении безопасности:

  • Управление API ключами: Core управляет учетными данными провайдеров и гарантирует их безопасное использование при взаимодействии с API.
  • Выполнение инструментов: Когда инструменты взаимодействуют с локальной системой (например, run_shell_command), Core (и реализация инструментов) должны делать это с осторожностью, часто используя механизмы песочницы для предотвращения непреднамеренных изменений.

Сжатие истории чата

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

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

Лимиты токенов для моделей каждого провайдера можно найти в их документации.

Откат модели

Qwen Code включает механизм отката модели, который обеспечивает возможность продолжать использовать CLI, даже если модель по умолчанию ограничена по частоте запросов.

Если вы используете модель “pro” по умолчанию, и CLI обнаруживает, что вы столкнулись с ограничением частоты запросов, он автоматически переключается на модель “flash” для текущей сессии. Это позволяет вам продолжать работу без перерывов.

Сервис обнаружения файлов

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

Сервис обнаружения контекста (memory discovery service)

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

Это позволяет использовать глобальные, уровня проекта и уровня компонентов контекстные файлы, которые объединяются для предоставления модели наиболее релевантной информации.

Вы можете использовать /memory команду для show, add и refresh содержимого загруженных контекстных файлов.

Last updated on