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 модели: Безопасная коммуникация с настроенным провайдером модели, отправка пользовательских запросов и получение ответов от модели.
- Работа с prompt’ами: Формирование эффективных prompt’ов для модели, включая потенциально историю разговора, определения инструментов и контекст из контекстных файлов (например,
QWEN.md
). - Управление и оркестрация инструментов:
- Регистрация доступных инструментов (например, инструменты для работы с файловой системой, выполнение shell-команд).
- Интерпретация запросов на использование инструментов от модели.
- Выполнение запрошенных инструментов с переданными аргументами.
- Возврат результатов выполнения инструментов модели для дальнейшей обработки.
- Управление сессиями и состоянием: Отслеживание состояния разговора, включая историю и любой другой контекст, необходимый для согласованного взаимодействия.
- Конфигурация: Управление настройками ядра, такими как доступ к API-ключам, выбор модели и настройки инструментов.
Вопросы безопасности
Core играет важную роль в обеспечении безопасности:
- Управление API ключами: Core управляет учетными данными провайдеров и обеспечивает их безопасное использование при взаимодействии с API.
- Выполнение инструментов: Когда инструменты взаимодействуют с локальной системой (например,
run_shell_command
), Core (и реализация инструментов) должны делать это с осторожностью, часто используя механизмы песочницы для предотвращения непреднамеренных изменений.
Сжатие истории чата
Чтобы длинные разговоры не превышали лимит токенов выбранной модели, в Core реализована функция сжатия истории чата.
Когда разговор приближается к лимиту токенов для настроенной модели, Core автоматически сжимает историю разговора перед отправкой в модель. Это сжатие разработано таким образом, чтобы не терять информацию, но при этом уменьшить общее количество используемых токенов.
Лимиты токенов для моделей каждого провайдера можно найти в их документации.
Откат модели
Qwen Code включает механизм отката модели, чтобы вы могли продолжать использовать CLI, даже если к основной модели применены ограничения на частоту запросов.
Если вы используете модель “pro” по умолчанию, и CLI обнаруживает, что к ней применены ограничения, он автоматически переключается на модель “flash” в текущей сессии. Это позволяет вам продолжать работать без перерывов.
Сервис обнаружения файлов
Сервис обнаружения файлов отвечает за поиск файлов в проекте, которые соответствуют текущему контексту. Он используется командой @
и другими инструментами, которым нужен доступ к файлам.
Сервис обнаружения контекста в памяти
Сервис обнаружения контекста в памяти отвечает за поиск и загрузку контекстных файлов (по умолчанию: QWEN.md
), которые предоставляют контекст для модели. Он ищет эти файлы иерархическим образом, начиная с текущей рабочей директории и поднимаясь до корня проекта и домашней директории пользователя. Также он ищет в поддиректориях.
Это позволяет вам иметь глобальные, на уровне проекта и на уровне компонентов контекстные файлы, которые объединяются для предоставления модели наиболее релевантной информации.
Вы можете использовать /memory
команду для show
, add
и refresh
содержимого загруженных контекстных файлов.