Инструменты Qwen Code
Qwen Code включает встроенные инструменты, которые модель использует для взаимодействия с вашим локальным окружением, получения информации и выполнения действий. Эти инструменты расширяют возможности CLI, позволяя ему выходить за рамки генерации текста и помогать с широким кругом задач.
Обзор инструментов Qwen Code
В контексте Qwen Code инструменты — это конкретные функции или модули, выполнение которых может запросить модель. Например, если вы попросите модель «Кратко изложи содержимое my_document.txt», она, скорее всего, определит необходимость чтения этого файла и запросит выполнение инструмента read_file.
Базовый компонент (packages/core) управляет этими инструментами: предоставляет модели их определения (схемы), выполняет их по запросу и возвращает результаты модели для дальнейшей обработки в ответ для пользователя.
Эти инструменты предоставляют следующие возможности:
- Доступ к локальной информации: Инструменты позволяют модели обращаться к вашей локальной файловой системе, читать содержимое файлов, просматривать каталоги и т.д.
- Выполнение команд: С помощью таких инструментов, как
run_shell_command, модель может запускать shell-команды (с соответствующими мерами безопасности и подтверждением пользователя). - Взаимодействие с вебом: Инструменты могут получать содержимое по URL.
- Выполнение действий: Инструменты могут изменять файлы, создавать новые файлы или выполнять другие действия в вашей системе (как правило, с защитными механизмами).
- Обоснование ответов: Используя инструменты для получения актуальных или специфичных локальных данных, ответы могут быть более точными, релевантными и основанными на вашем реальном контексте.
Как использовать инструменты Qwen Code
Чтобы использовать инструменты Qwen Code, достаточно отправить запрос в CLI. Процесс работает следующим образом:
- Вы отправляете запрос в CLI.
- CLI отправляет запрос в ядро (core).
- Ядро вместе с вашим запросом и историей диалога отправляет список доступных инструментов, их описания и схемы в настроенный API модели.
- Модель анализирует ваш запрос. Если она определяет, что необходим инструмент, её ответ будет содержать запрос на выполнение конкретного инструмента с определёнными параметрами.
- Ядро получает этот запрос инструмента, проверяет его и (часто после подтверждения пользователем для чувствительных операций) выполняет инструмент.
- Результат работы инструмента отправляется обратно модели.
- Модель использует вывод инструмента для формулировки окончательного ответа, который затем через ядро отправляется в CLI и отображается вам.
В CLI вы обычно будете видеть сообщения, указывающие, когда вызывается инструмент, и удалось ли его выполнить или нет.
Безопасность и подтверждение
Многие инструменты, особенно те, что могут изменять вашу файловую систему или выполнять команды (write_file, edit, run_shell_command), разработаны с учётом безопасности. Qwen Code обычно:
- Требует подтверждения: Запрашивает ваше разрешение перед выполнением потенциально опасных операций, показывая, какое действие будет выполнено.
- Использует изоляцию (sandboxing): Все инструменты подчиняются ограничениям, налагаемым изоляцией (см. Изоляция в Qwen Code). Это означает, что при работе в изолированной среде любые инструменты (включая серверы MCP), которые вы хотите использовать, должны быть доступны внутри этой изолированной среды. Например, для запуска MCP-сервера через
npxисполняемый файлnpxдолжен быть установлен внутри Docker-образа изолированной среды или быть доступен в окруженииsandbox-exec.
Важно всегда внимательно проверять запросы на подтверждение, прежде чем разрешать выполнение инструмента.
Узнайте больше об инструментах Qwen Code
Встроенные инструменты Qwen Code можно разделить на следующие категории:
- Инструменты файловой системы: Для взаимодействия с файлами и каталогами (чтение, запись, просмотр списка, поиск и т.д.).
- Shell-инструмент (
run_shell_command): Для выполнения shell-команд. - Инструмент мониторинга (
monitor): Для запуска долгоживущих shell-команд, которые передают вывод в виде уведомлений о фоновых задачах. - Инструмент получения веб-данных (
web_fetch): Для получения содержимого по URL. - Инструмент создания списка задач (
todo_write): Для создания и управления структурированными списками задач во время сессий программирования. - Инструмент агента (
agent): Для делегирования сложных задач специализированным подагентам. - Инструмент выхода из режима планирования (
exit_plan_mode): Для выхода из режима планирования и перехода к реализации.
Кроме того, эти инструменты включают:
- Серверы MCP: Серверы MCP выступают в роли моста между моделью и вашим локальным окружением или другими сервисами, такими как API.
- Руководство пользователя MCP: Настройка серверов MCP и управление ими из Qwen Code
- Веб-поиск через MCP: Подключение к сервисам веб-поиска (Bailian, Tavily, GLM) через MCP
- Изоляция (Sandboxing): Изоляция ограничивает взаимодействие модели и её изменений с вашей средой, снижая потенциальные риски.