Начало работы с расширениями Qwen Code
В этом руководстве вы узнаете, как создать свое первое расширение Qwen Code. Вы научитесь настраивать новое расширение, добавлять пользовательский инструмент через сервер MCP, создавать пользовательские команды и предоставлять контекст модели с помощью файла QWEN.md.
Предварительные требования
Перед началом убедитесь, что у вас установлен Qwen Code, а также имеются базовые знания Node.js и TypeScript.
Шаг 1: Создание нового расширения
Самый простой способ начать — использовать один из встроенных шаблонов. Мы будем использовать пример mcp-server в качестве основы.
Выполните следующую команду, чтобы создать новый каталог my-first-extension с файлами шаблона:
qwen extensions new my-first-extension mcp-serverЭто создаст новый каталог со следующей структурой:
my-first-extension/
├── example.ts
├── qwen-extension.json
├── package.json
└── tsconfig.jsonШаг 2: Понимание файлов расширения
Давайте рассмотрим ключевые файлы вашего нового расширения.
qwen-extension.json
Это файл манифеста вашего расширения. Он сообщает Qwen Code, как загружать и использовать ваше расширение.
{
"name": "my-first-extension",
"version": "1.0.0",
"mcpServers": {
"nodeServer": {
"command": "node",
"args": ["${extensionPath}${/}dist${/}example.js"],
"cwd": "${extensionPath}"
}
}
}name: Уникальное имя вашего расширения.version: Версия вашего расширения.mcpServers: Этот раздел определяет один или несколько серверов Model Context Protocol (MCP). Серверы MCP — это способ добавления новых инструментов, которые может использовать модель.command,args,cwd: Эти поля указывают, как запустить ваш сервер. Обратите внимание на использование переменной${extensionPath}, которую Qwen Code заменяет на абсолютный путь к каталогу установки вашего расширения. Это позволяет вашему расширению работать независимо от того, где оно установлено.
example.ts
Этот файл содержит исходный код вашего сервера MCP. Это простой сервер Node.js, который использует @modelcontextprotocol/sdk.
/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { z } from 'zod';
const server = new McpServer({
name: 'prompt-server',
version: '1.0.0',
});
// Регистрирует новый инструмент с именем 'fetch_posts'
server.registerTool(
'fetch_posts',
{
description: 'Получает список постов из публичного API.',
inputSchema: z.object({}).shape,
},
async () => {
const apiResponse = await fetch(
'https://jsonplaceholder.typicode.com/posts',
);
const posts = await apiResponse.json();
const response = { posts: posts.slice(0, 5) };
return {
content: [
{
type: 'text',
text: JSON.stringify(response),
},
],
};
},
);
// ... (регистрация prompt'ов опущена для краткости)
const transport = new StdioServerTransport();
await server.connect(transport);Этот сервер определяет один инструмент под названием fetch_posts, который получает данные из публичного API.
package.json и tsconfig.json
Это стандартные файлы конфигурации для проекта на TypeScript. Файл package.json определяет зависимости и скрипт build, а tsconfig.json настраивает компилятор TypeScript.
Шаг 3: Сборка и подключение расширения
Перед использованием расширения необходимо скомпилировать код TypeScript и подключить расширение к вашей локальной установке Qwen Code для локальной разработки.
-
Установите зависимости:
cd my-first-extension npm install -
Соберите сервер:
npm run buildВ результате файл
example.tsбудет скомпилирован вdist/example.js, который указан в вашемqwen-extension.json. -
Подключите расширение:
Команда
linkсоздает символическую ссылку из каталога расширений Qwen Code на ваш каталог разработки. Это означает, что все изменения будут отражаться немедленно без необходимости переустановки.qwen extensions link .
Теперь перезапустите сессию Qwen Code. Новый инструмент fetch_posts будет доступен. Вы можете протестировать его, запросив: “fetch posts”.
Шаг 4: Добавление пользовательской команды
Пользовательские команды позволяют создавать ярлыки для сложных запросов. Давайте добавим команду, которая будет искать шаблон в вашем коде.
-
Создайте каталог
commandsи подкаталог для вашей группы команд:mkdir -p commands/fs -
Создайте файл с именем
commands/fs/grep-code.toml:prompt = """ Пожалуйста, суммируйте результаты по шаблону `{{args}}`. Результаты поиска: !{grep -r {{args}} .} """Эта команда,
/fs:grep-code, будет принимать аргумент, выполнять команду оболочкиgrepс ним и передавать результаты в запрос для суммирования.
После сохранения файла перезапустите Qwen Code. Теперь вы можете выполнить /fs:grep-code "какой-то шаблон", чтобы использовать вашу новую команду.
Шаг 5: Добавьте собственный файл QWEN.md
Вы можете предоставить постоянный контекст модели, добавив в расширение файл QWEN.md. Это полезно для передачи модели инструкций по поведению или информации об инструментах вашего расширения. Обратите внимание, что это не всегда необходимо для расширений, созданных для отображения команд и подсказок.
-
Создайте файл с именем
QWEN.mdв корневом каталоге директории расширения:# Инструкции к моему первому расширению Вы — экспертный помощник разработчика. Когда пользователь попросит получить посты, используйте инструмент `fetch_posts`. Будьте кратки в своих ответах. -
Обновите ваш
qwen-extension.json, чтобы указать CLI загружать этот файл:{ "name": "my-first-extension", "version": "1.0.0", "contextFileName": "QWEN.md", "mcpServers": { "nodeServer": { "command": "node", "args": ["${extensionPath}${/}dist${/}example.js"], "cwd": "${extensionPath}" } } }
Перезапустите CLI еще раз. Теперь модель будет иметь контекст из вашего файла QWEN.md в каждой сессии, где активно расширение.
Шаг 6: Публикация вашего расширения
Когда вы будете довольны своим расширением, вы можете поделиться им с другими. Существует два основных способа публикации расширений: через репозиторий Git или с помощью GitHub Releases. Использование публичного репозитория Git является самым простым методом.
Подробные инструкции по обоим методам можно найти в Руководстве по публикации расширений.
Заключение
Вы успешно создали расширение для Qwen Code! Вы узнали, как:
- Создать новое расширение из шаблона.
- Добавить пользовательские инструменты с помощью сервера MCP.
- Создать удобные пользовательские команды.
- Обеспечить постоянный контекст для модели.
- Привязать ваше расширение для локальной разработки.
Теперь вы можете изучать более продвинутые функции и добавлять мощные новые возможности в Qwen Code.