Skip to Content
Основные ДеталиОбзор Ядра

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 содержимого загруженных контекстных файлов.

Last updated on