Qwen3 Coder Next API на Novita AI для агентов программирования

Qwen3 Coder Next API на Novita AI для агентов программирования

Qwen3 Coder Next доступна на Novita AI в качестве бессерверной текстовой модели для рабочих процессов кодинговых агентов, которым требуется понимание кода с длинным контекстом, структурированные выходные данные и координация инструментов в стиле вызова функций через API чат-завершений. Используйте проверенный идентификатор модели qwen/qwen3-coder-next с совместимой с OpenAI конечной точкой POST https://api.novita.ai/openai/v1/chat/completions, когда вам нужна модель, ориентированная на программирование, в цикле агента, без управления хостингом модели.

Когда использовать Qwen3 Coder Next для кодинговых агентов

Используйте Qwen3 Coder Next, когда вашему приложению требуется модель языка, ориентированная на программирование, в контролируемом рабочем процессе разработки программного обеспечения: объяснение кода, планирование патчей, локализация ошибок, составление тестовых сценариев, проверка рефакторинга или проверка репозитория с помощью инструментов.

Важное отличие в том, что это руководство не является общим обзором модели. Оно сосредоточено на шаблоне реализации кодингового агента:

  • отправка контекста репозитория или файла в запрос чат-завершения;
  • запрос к модели на ограниченное следующее действие;
  • опционально запрос структурированного JSON, чтобы ваш агент мог решить, нужно ли проверить другой файл, предложить патч или остановиться;
  • выполнение инструментов на уровне вашего приложения, а не внутри вызова модели;
  • отправка наблюдения обратно в следующий виток чата.

Каталог Novita AI описывает Qwen3 Coder Next как LLM с текстовым вводом и выводом, бессерверную, с поддержкой вызова функций, структурированных выходных данных и длинным контекстом. Это те компоненты, которые важны для кодинговых агентов: модель может создавать инструкции, подобные вызовам инструментов, и структурированные решения, в то время как ваше приложение остаётся ответственным за доступ к файловой системе, выполнение команд, изменения в репозитории и шлюзы утверждения.

Избегайте считать, что модель сама по себе напрямую редактирует репозиторий. Кодинговому агенту требуется окружающий код, который подготавливает контекст, проверяет выходные данные, запускает инструменты, применяет патчи и записывает результаты. Qwen3 Coder Next обеспечивает этап языковой модели в этом цикле.

Идентификатор модели, конечная точка, цены и ограничения

Проверенный идентификатор модели Novita AI: qwen/qwen3-coder-next.

Поле Проверенное значение
Отображаемое имя Qwen3 Coder Next
Идентификатор модели qwen/qwen3-coder-next
Модальность ввода Текст
Модальность вывода Текст
Семейство конечных точек chat/completions, anthropic
Совместимая с OpenAI конечная точка POST https://api.novita.ai/openai/v1/chat/completions
Размер контекста 262 144 токена
Максимум выходных токенов 65 536 токенов
Указанная цена ввода $0,20 за 1 млн токенов
Указанная цена вывода $1,50 за 1 млн токенов
Указанные возможности Вызов функций, структурированные выходные данные, бессерверность
Указанный RPM при квоте T1 30 запросов в минуту

Цены, ограничения скорости и доступность могут меняться. Перед производственным развёртыванием проверьте библиотеку моделей Novita AI и квоту в консоли.

Шаг 1: Получите API-ключ Novita AI

Создайте или откройте свою учётную запись Novita AI, затем сгенерируйте API-ключ в консоли. Сохраните его как переменную окружения вместо жесткого кодирования в приложении.

export NOVITA_API_KEY="your_api_key_here"

Для локальной разработки используйте профиль оболочки, загрузчик .env или менеджер секретов. Для продакшена внедряйте ключ через систему секретов вашей платформы развёртывания и не допускайте его попадания в логи, клиентский код и историю репозитория.

Шаг 2: Отправьте первый запрос на программирование

Начните с самого маленького полезного запроса: системное сообщение, ограничивающее роль ассистента, плюс пользовательское сообщение, содержащее короткий пример кода и конкретную задачу по программированию.

curl https://api.novita.ai/openai/v1/chat/completions \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen/qwen3-coder-next",
"messages": [
{
"role": "system",
"content": "Вы ассистент по программированию. Чётко объясняйте риски и не меняйте поведение без запроса."
},
{
"role": "user",
"content": "Проверьте эту JavaScript-функцию на краевые случаи:\n\nfunction divide(a, b) {\n return a / b;\n}"
}
],
"temperature": 0.2,
"max_tokens": 600
}'

Успешный нестриминговый ответ возвращает объект чат-завершения с массивом choices. Прочитайте choices[0].message.content для вывода модели и usage для учёта токенов.

import os
import requests

api_key = os.environ["NOVITA_API_KEY"]

response = requests.post(
    "https://api.novita.ai/openai/v1/chat/completions",
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    json={
        "model": "qwen/qwen3-coder-next",
        "messages": [
            {
                "role": "system",
                "content": (
                    "Вы ассистент по программированию. Чётко объясняйте риски "
                    "и ограничивайте рекомендации предоставленным кодом."
                ),
            },
            {
                "role": "user",
                "content": (
                    "Проверьте эту Python-функцию на ошибки:\n\n"
                    "def normalize(items):\n"
                    "    return [x.strip().lower() for x in items]\n"
                ),
            },
        ],
        "temperature": 0.2,
        "max_tokens": 600,
    },
    timeout=60,
)

response.raise_for_status()
data = response.json()
print(data["choices"][0]["message"]["content"])

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

Шаг 3: Используйте Qwen3 Coder Next в цикле агента

Кодинговый агент — это цикл вокруг модели. Модель предлагает следующее действие; ваше приложение решает, выполнять ли его, и затем передаёт результат обратно.

Для минимального цикла кодингового агента держите пространство действий небольшим:

Действие Что делает ваше приложение
inspect_file Читает разрешённый путь к файлу и возвращает соответствующее содержимое.
search_code Ищет в репозитории ограниченный запрос.
propose_patch Просит модель создать план патча или дифф для проверки.
finish Завершает цикл с итогом и оставшимися рисками.

Не давайте модели неограниченный доступ к оболочке. Относитесь к каждому предложенному действию как к запросу, который ваше приложение проверяет. В хорошую проверку входят списки разрешённых путей, максимальный размер файла, списки разрешённых команд (если команды поддерживаются), ограничения времени ожидания и утверждение человеком перед применением изменений.

Простой цикл может выглядеть так:

import json
import os
import requests

API_URL = "https://api.novita.ai/openai/v1/chat/completions"
MODEL = "qwen/qwen3-coder-next"

def call_model(messages):
    response = requests.post(
        API_URL,
        headers={
            "Authorization": f"Bearer {os.environ['NOVITA_API_KEY']}",
            "Content-Type": "application/json",
        },
        json={
            "model": MODEL,
            "messages": messages,
            "temperature": 0.1,
            "max_tokens": 1200,
            "response_format": {"type": "json_object"},
        },
        timeout=60,
    )
    response.raise_for_status()
    return response.json()["choices"][0]["message"]["content"]

messages = [
    {
        "role": "system",
        "content": (
            "Вы планировщик кодингового агента. Возвращайте только JSON с ключами "
            "action, path, query, rationale и final_answer. Разрешённые действия: "
            "inspect_file, search_code, propose_patch и finish."
        ),
    },
    {
        "role": "user",
        "content": (
            "Нужно выяснить, почему normalize_user падает, когда email отсутствует. "
            "Начните с выбора следующего безопасного шага проверки."
        ),
    },
]

raw = call_model(messages)
decision = json.loads(raw)
print(decision)

В этом примере используется режим JSON, чтобы парсер приложения оставался простым. Для продакшена проверяйте, что ответ содержит разрешённое action и что поля, такие как path и query, соответствуют вашим правилам безопасности, прежде чем что-либо выполнять.

Шаг 4: Добавьте структурированный вывод для решений агента

API чат-завершений Novita AI включает response_format, в том числе опции json_object и json_schema. Qwen3 Coder Next указана как поддерживающая структурированный вывод в библиотеке моделей, поэтому структурированные объекты решений хорошо подходят для оркестрации кодингового агента.

Используйте структурированный вывод для решений, которые ваше программное обеспечение должно надёжно парсить:

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

Для более строгой проверки используйте json_schema и держите схему небольшой. Вывод модели по-прежнему является непроверенным вводом в вашу программу, поэтому проверяйте его после парсинга.

schema = {
    "name": "coding_agent_decision",
    "schema": {
        "type": "object",
        "properties": {
            "action": {
                "type": "string",
                "enum": ["inspect_file", "search_code", "propose_patch", "finish"],
            },
            "path": {"type": "string"},
            "query": {"type": "string"},
            "rationale": {"type": "string"},
            "risk": {"type": "string"},
        },
        "required": ["action", "rationale", "risk"],
        "additionalProperties": False,
    },
    "strict": True,
}

payload = {
    "model": "qwen/qwen3-coder-next",
    "messages": [
        {
            "role": "system",
            "content": "Верните следующее решение кодингового агента в виде структурированного JSON.",
        },
        {
            "role": "user",
            "content": "Найдите самый безопасный первый шаг для отладки падающего теста входа.",
        },
    ],
    "response_format": {
        "type": "json_schema",
        "json_schema": schema,
    },
    "temperature": 0.1,
    "max_tokens": 800,
}

Используйте вызов функций, если в вашем приложении уже есть уровень диспетчеризации инструментов. Справочник API Novita AI описывает поле tools, в которое можно передавать функции. Модель может генерировать входные данные JSON для этих функций, но ваше приложение всё равно выполняет функцию и возвращает наблюдения в следующем витке. Делайте описания инструментов точными и избегайте открытия разрушительных операций, если только они не требуют явного утверждения.

Шаг 5: Планируйте контекст, вывод и стоимость

Qwen3 Coder Next имеет указанный размер контекста 262 144 токена и максимальный размер вывода 65 536 токенов на Novita AI. Это даёт кодинговым агентам место для многоконтекстных файлов, но более крупные промпты увеличивают стоимость и могут размывать внимание модели.

Используйте этап извлечения вместо того, чтобы сбрасывать весь репозиторий в каждый запрос:

  1. Начните с запроса пользователя, соответствующего сообщения об ошибке и карты репозитория.
  2. Попросите модель выбрать файлы для проверки.
  3. Добавьте только выбранные фрагменты или файлы.
  4. Прежде чем просить дифф, запросите ограниченный план патча.
  5. Ведите краткое текущее резюме вместо повторения каждого предыдущего наблюдения.

Стоимость рассчитывается на основе входных и выходных токенов. При указанных ценах $0,20 за 1 млн входных токенов и $1,50 за 1 млн выходных токенов многословные сгенерированные диффы могут стоить дороже, чем краткий анализ. Устанавливайте max_tokens на наименьшее значение, подходящее для шага. Например, шагу планирования может потребоваться несколько сотен токенов, а итоговому объяснению патча — больше.

Ограничения скорости также важны в цикле агента. Библиотека моделей указывает квоту T1 на 30 запросов в минуту для Qwen3 Coder Next, при этом в каталоге показаны более высокие уровни RPM. Разрабатывайте своего агента так, чтобы он повторял ответы 429 с задержкой, избегал параллельных циклов, которые многократно проверяют одни и те же файлы, и кэшировал резюме, где это уместно.

Устранение неполадок

Проблема Вероятная причина Исправление
401 или ошибка аутентификации Отсутствует, истёк или неправильно сформирован API-ключ Проверьте заголовок Authorization: Bearer $NOVITA_API_KEY и при необходимости перегенерируйте ключ.
Модель не найдена Неправильный идентификатор модели Используйте qwen/qwen3-coder-next точно.
Вывод не является допустимым JSON Слишком свободный промпт или схема Используйте response_format, снизьте temperature и проверяйте распарсенный объект.
Контекст слишком большой Слишком много файлов или длинных логов в одном запросе Извлекайте меньшие фрагменты и суммируйте предыдущие витки.
Агент зацикливается без прогресса Слишком широкое пространство действий или повторяющиеся наблюдения Добавьте ограничение на максимальное количество итераций и требуйте новое обоснование для каждого шага.
Неожиданное действие инструмента Модель предложила действие, которое ваше приложение не должно выполнять Применяйте списки разрешений и шлюзы утверждения вне модели.
Ошибки ограничения скорости Слишком много параллельных вызовов или плотные циклы повтора Добавьте экспоненциальную задержку и ставьте шаги агента в очередь.

Часто задаваемые вопросы

Доступен ли Qwen3 Coder Next через API Novita AI?

Да. Библиотека моделей Novita AI перечисляет Qwen3 Coder Next как бессерверную LLM с идентификатором модели qwen/qwen3-coder-next.

Какую конечную точку использовать для Qwen3 Coder Next?

Используйте совместимую с OpenAI конечную точку чат-завершений: POST https://api.novita.ai/openai/v1/chat/completions. В каталоге моделей также указано семейство конечных точек anthropic, но рабочие примеры в этом руководстве используют чат-завершения.

Сколько стоит Qwen3 Coder Next на Novita AI?

Проверенный каталог Novita AI указывает Qwen3 Coder Next по цене $0,20 за 1 млн входных токенов и $1,50 за 1 млн выходных токенов. Перепроверьте цены в библиотеке моделей перед запуском, так как цены могут меняться.

Каковы ограничения контекста и вывода?

Проверенный каталог Novita AI указывает размер контекста 262 144 токена и максимум выходных токенов 65 536 для Qwen3 Coder Next.

Поддерживает ли Qwen3 Coder Next вызов функций и структурированный вывод?

Да. Библиотека моделей Novita AI перечисляет Qwen3 Coder Next с возможностями function-calling и structured-outputs. Ваше приложение по-прежнему должно проверять и выполнять любые действия с инструментами.

Может ли Qwen3 Coder Next напрямую редактировать мой репозиторий?

Нет. API возвращает вывод модели. Чтение репозитория, выполнение команд, применение патчей, тесты и утверждения должны быть реализованы в вашей собственной среде выполнения агента.