Qwen3 Coder Next 在 Novita AI 上以无服务器文本模型的形式提供,适用于需要长上下文代码理解、结构化输出以及通过聊天补全 API 进行函数调用风格工具协调的编码 Agent 工作流。当您希望在 Agent 循环中使用专注于编码的模型而无需管理模型托管时,请使用已验证的模型 ID qwen/qwen3-coder-next 配合兼容 OpenAI 的 POST https://api.novita.ai/openai/v1/chat/completions 端点。
如果您希望先了解更广泛的发布信息和模型定位概述,请阅读 Novita AI 上的 Qwen3-Coder-Next。如果您当前的目标是将同一模型集成到兼容 Anthropic 的工具中,请使用配套指南 在 Claude Code 中使用 Qwen3-Coder-Next:成本降低 80% 的替代方案。
何时在编码 Agent 中使用 Qwen3 Coder Next
当您的应用程序需要一个面向编码的语言模型,且用于受控的软件开发工作流时——例如代码解释、补丁规划、缺陷定位、测试用例起草、重构审查或工具驱动的仓库检查——请使用 Qwen3 Coder Next。
一个重要区别是,本指南并非通用的模型概述。它专注于一种编码 Agent 实现模式:
- 将仓库或文件上下文发送到聊天补全请求中;
- 要求模型输出一个有限范围的下一步行动;
- 可选地请求结构化 JSON,以便您的 Agent 决定是检查另一个文件、提出补丁还是停止;
- 在您自己的应用层执行工具,而不是在模型调用内部;
- 将观察结果发送回下一轮聊天轮次。
Novita AI 的目录将 Qwen3 Coder Next 描述为一个文本输入、文本输出的 LLM,具备无服务器可用性、函数调用支持、结构化输出支持和长上下文。这些正是编码 Agent 所需的关键要素:模型可以生成类似工具调用的指令和结构化决策,而您的应用程序仍负责文件系统访问、命令执行、仓库变更和审批关卡。
不要将模型视为能够直接自行编辑仓库。一个编码 Agent 需要周围的代码来准备上下文、验证输出、运行工具、应用补丁并记录结果。Qwen3 Coder Next 在该循环中提供语言模型步骤。
模型 ID、端点、定价和限制
已验证的 Novita AI 模型 ID 是 qwen/qwen3-coder-next。
| 字段 | 已验证的值 |
|---|---|
| 显示名称 | Qwen3 Coder Next |
| 模型 ID | qwen/qwen3-coder-next |
| 输入模态 | 文本 |
| 输出模态 | 文本 |
| 端点家族 | chat/completions, anthropic |
| 兼容 OpenAI 的端点 | POST https://api.novita.ai/openai/v1/chat/completions |
| 上下文大小 | 262,144 个令牌 |
| 最大输出令牌数 | 65,536 个令牌 |
| 列出输入价格 | 每 1M 令牌 $0.20 |
| 列出输出价格 | 每 1M 令牌 $1.50 |
| 列出功能 | 函数调用、结构化输出、无服务器 |
| T1 配额下列出 RPM | 30 RPM |
定价、速率限制和可用性可能会发生变化。在正式投入生产之前,请查看 Novita AI 模型库 和您的控制台配额。
步骤 1:获取 Novita AI API 密钥
创建或打开您的 Novita AI 账户,然后从控制台生成一个 API 密钥。将其存储为环境变量,而不是硬编码在您的应用程序中。
export NOVITA_API_KEY="your_api_key_here"
对于本地开发,请使用您的 shell 配置文件、.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:在 Agent 循环中使用 Qwen3 Coder Next
编码 Agent 是一个围绕模型的循环。模型提出下一步行动;您的应用程序决定是否执行该行动,然后将结果反馈给模型。
对于一个最小的编码 Agent 循环,请保持较小的行动空间:
| 行动 | 您的应用程序做什么 |
|---|---|
inspect_file |
读取允许的文件路径并返回相关内容。 |
search_code |
使用有界查询搜索仓库。 |
propose_patch |
要求模型生成补丁计划或差异供审查。 |
finish |
以总结和剩余风险结束循环。 |
不要给模型不受限制的 shell 访问权限。将每个建议的行动视为需要您的应用程序验证的请求。良好的验证包括路径白名单、最大文件大小、命令白名单(如果支持命令)、超时限制以及应用更改前的人工审批。
一个简单的循环可以如下所示:
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": (
"你是一个编码 Agent 规划器。仅返回包含 action, "
"path, query, rationale 和 final_answer 键的 JSON。允许的 action 是 "
"inspect_file, search_code, propose_patch 和 finish。"
),
},
{
"role": "user",
"content": (
"我们需要找出为什么当 email 缺失时 normalize_user 会崩溃。"
"首先选择一个安全的下一个检查步骤。"
),
},
]
raw = call_model(messages)
decision = json.loads(raw)
print(decision)
此示例使用 JSON 模式以保持应用程序解析器的简单性。对于生产环境,在执行任何操作之前,请验证响应是否包含允许的 action,并且诸如 path 和 query 等字段是否符合您的安全规则。
步骤 4:为 Agent 决策添加结构化输出
Novita AI 的聊天补全 API 包含 response_format,包括 json_object 和 json_schema 选项。Qwen3 Coder Next 在模型库中被列为支持结构化输出,因此结构化决策对象非常适合编码 Agent 的编排。
对于您的软件必须可靠解析的决策,请使用结构化输出:
- 分类是否需要更改;
- 返回包含文件路径和风险说明的补丁计划;
- 决定是否需要更多上下文;
- 生成测试检查清单;
- 输出最终总结,区分已更改的行为、验证和风险。
为了更严格的验证,请使用 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": "将下一个编码 Agent 决策以结构化 JSON 形式返回。",
},
{
"role": "user",
"content": "找出调试失败登录测试的最安全的第一步。",
},
],
"response_format": {
"type": "json_schema",
"json_schema": schema,
},
"temperature": 0.1,
"max_tokens": 800,
}
当您的应用程序已经有工具分发层时,请使用函数调用。Novita AI API 参考文档记录了一个 tools 字段,可以在其中提供函数。模型可能会为这些函数生成 JSON 输入,但是您的应用程序仍然执行该函数并在后续轮次中返回观察结果。保持工具描述精确,并避免暴露破坏性操作,除非它们需要明确批准。
步骤 5:规划上下文、输出和成本
Qwen3 Coder Next 在 Novita AI 上列出的上下文大小为 262,144 个令牌,最大输出大小为 65,536 个令牌。这为编码 Agent 提供了处理多文件上下文的空间,但更大的提示会推高成本并可能稀释模型的注意力。
与其将整个仓库转储到每个请求中,不如使用检索步骤:
- 从用户请求、相关错误信息和仓库地图开始。
- 要求模型选择要检查的文件。
- 仅添加选定的代码片段或文件。
- 在要求生成差异之前,先要求一个有限范围的补丁计划。
- 保留简短的运行摘要,而不是重放每一个先前的观察结果。
成本基于输入和输出令牌。按照列出的每 1M 输入令牌 $0.20 和每 1M 输出令牌 $1.50 的价格,冗长的生成差异可能比简洁的分析成本更高。将 max_tokens 设置为适合该步骤的最小值。例如,一个规划步骤可能需要几百个令牌,而最终的补丁解释可能需要更多。
在 Agent 循环中,速率限制也很重要。模型库列出 Qwen3 Coder Next 的 T1 配额为 30 RPM,目录中显示了更高的 RPM 层级。设计您的 Agent 以在遇到 429 响应时进行带退避的重试,避免反复检查同一文件的并行循环,并在适当情况下缓存摘要。
故障排除
| 问题 | 可能的原因 | 修复方法 |
|---|---|---|
401 或身份验证失败 |
API 密钥缺失、过期或格式错误 | 检查 Authorization: Bearer $NOVITA_API_KEY 标头,必要时重新生成密钥。 |
| 找不到模型 | 模型 ID 不正确 | 请准确使用 qwen/qwen3-coder-next。 |
| 输出不是有效的 JSON | 提示或模式过于宽松 | 使用 response_format、降低 temperature,并验证解析后的对象。 |
| 上下文过大 | 单个请求中包含太多文件或长日志 | 检索更小的片段并总结之前的轮次。 |
| Agent 循环无进展 | 行动空间过于宽泛或观察结果重复 | 添加最大迭代限制,并要求每一步都提供新的理由。 |
| 意外的工具行动 | 模型建议了您的应用程序不应运行的操作 | 在模型之外强制执行白名单和审批关卡。 |
| 速率限制错误 | 并行调用过多或重试循环过于紧密 | 添加指数退避并排队 Agent 步骤。 |
常见问题
Qwen3 Coder Next 是否可通过 Novita AI API 使用?
是的。Novita AI 模型库将 Qwen3 Coder Next 列为无服务器 LLM,模型 ID 为 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 的价格为每 1M 输入令牌 $0.20,每 1M 输出令牌 $1.50。在发布前请重新检查模型库中的定价,因为价格可能会变化。
上下文和输出限制是多少?
经查的 Novita AI 目录列出 Qwen3 Coder Next 的上下文大小为 262,144 个令牌,最大输出令牌为 65,536 个。
Qwen3 Coder Next 是否支持函数调用和结构化输出?
是的。Novita AI 模型库将 Qwen3 Coder Next 列为具有 function-calling 和 structured-outputs 功能。您的应用程序仍然需要验证和执行任何工具操作。
Qwen3 Coder Next 可以直接编辑我的仓库吗?
不能。API 返回模型输出。仓库读取、命令执行、补丁应用、测试和审批必须在您自己的 Agent 运行时中实现。
