简述代码 AI 格局
Cursor、Aider、Cline、Continue.dev、Claude Code 本身——它们都构建在同三四个前沿 LLM 之上。差异化因素不是模型,而是围绕模型构建的智能体循环、文件索引、差异应用和用户体验。如果你正在构建其中一种产品(或在自己的开发者产品中构建代码助手),本页将介绍模型菜单、实际成本和延迟预算。
代码工作流的模型菜单
- Claude Haiku 4.5(
claude-haiku-4-5)——自动补全(每次补全约 $0.0001-0.0005)。延迟最低;流式首 token 时间与直接调用供应商相当 - Claude Sonnet 5(
claude-sonnet-5)——与代码库对话、多文件编辑、智能体循环。Cursor 级别的主力模型,每 1M token 价格为 $1.40 / $7.00 - Claude Opus 5(
claude-opus-5)——深度审查、架构评析、安全审计。速度较慢(P50 约 3 秒),但推理能力最强,每 1M token 价格为 $3.50 / $17.50 - GPT-5.6 Sol(
gpt-5-6-sol)——OpenAI 的代码调优模型:质量相近,但风格偏好不同
两种核心流程
import json
from openai import OpenAI
client = OpenAI(api_key="sk-kn-...", base_url="https://api.kunavo.com/v1")
# Code completion (autocomplete-as-you-type)
def complete(file_content: str, cursor_offset: int, file_path: str) -> str:
before = file_content[:cursor_offset]
after = file_content[cursor_offset:]
resp = client.chat.completions.create(
model="claude-haiku-4-5", # FAST for IDE latency
messages=[
{"role": "system", "content": (
"Complete the code at the cursor. Output ONLY the inserted "
"text — no markdown, no explanation."
)},
{"role": "user", "content": (
f"<file path=\"{file_path}\">\n{before}<CURSOR>{after}\n</file>"
)},
],
max_tokens=200,
stop=["<CURSOR>", "</file>"],
)
return resp.choices[0].message.content
# Code review (heavier model). Claude enforces a json_schema
# response_format; json_object it does not.
REVIEW = {
"type": "object",
"properties": {
"comments": {"type": "array", "items": {
"type": "object",
"properties": {"file": {"type": "string"},
"line": {"type": "integer"},
"comment": {"type": "string"}},
"required": ["file", "line", "comment"],
"additionalProperties": False,
}},
"verdict": {"type": "string", "enum": ["approve", "request_changes"]},
},
"required": ["comments", "verdict"],
"additionalProperties": False,
}
def review(diff: str, conventions: str) -> dict:
resp = client.chat.completions.create(
model="claude-opus-5",
messages=[
{"role": "system", "content": [{
"type": "text",
"text": conventions, # team style guide, security policy
"cache_control": {"type": "ephemeral"},
}]},
{"role": "user", "content": f"Review this diff.\n\n{diff}"},
],
response_format={"type": "json_schema",
"json_schema": {"name": "review", "schema": REVIEW}},
max_tokens=2000,
)
return json.loads(resp.choices[0].message.content)按功能划分的延迟预算
- 行内自动补全:TTFT 必须 <200ms。Claude Haiku 4.5。流式输出,在光标移动时中止
- 与代码库对话:TTFT <500ms 可以接受。Sonnet + 流式传输。随着响应生成逐步显示
- 多文件编辑 / 重构:5-30 秒属于正常范围。显示进度,在后台运行,并展示差异供审查
- PR 审查:10-60 秒可以接受。由 Opus 进行深度分析,并将结果整理为包含具体改进建议的审查意见
代码产品的成本经济学
每位开发者每月的实际使用量(重度用户):
- 每天约 500 次补全 × Haiku 约 $0.0003 = $0.15/天 = $4-5/月
- 每天约 30 次聊天会话 × Sonnet 约 $0.05 = $1.50/天 = $30-45/月
- 每周约 3 次 PR 审查 × Opus 约 $0.30 = $1/周 = $4/月
- 重度高级用户:约 $40-55/月 API 成本
- 普通用户:约 $10-15/月
大多数代码 AI 产品的价格为 $20/用户/月——仍有利润空间,但对重度用户而言很紧张。提示词缓存至关重要:工作区上下文(文件结构、约定、最近文件)进入缓存;每次调用只有即时编辑上下文是新的。输入成本可节省 50-70%。如何设置缓存。
值得复用的架构模式
- FIM(中间填充)提示:不要只说“从这里开始补全”,而是传入
before<CURSOR>after,让模型同时使用两侧内容 - 停止序列:
stop=["<CURSOR>", "</file>", "```\n"]可防止模型超出所请求的补全内容进行臆造 - 用于多文件编辑的工具调用:不要要求模型在一次响应中输出 5 个文件。使用
tools=[{name: 'edit_file', ...}],让它生成结构化编辑,然后以原子方式应用 - 通过流式传输进行推测解码:一旦前约 50 个 token 到达就立即显示;即使完整响应尚未完成,用户也会选择正确的结果
在几秒内切换供应商
Kunavo 兼容 OpenAI 协议。如果你基于 OpenAI SDK 构建了助手,只需替换 base_url,即可在相同代码下访问 Claude 和 GPT。迁移方法请参阅使用 OpenAI SDK 调用 Claude。
开始:/app/signup——充值 $10 后按需付费(约 30,000 次自动补全调用),余额永不过期。端点参考见 /docs/chat,Anthropic 原生 Messages API 见 /docs/messages。
常见问题
AI 编程助手的重度用户会产生多少 API 费用?
按每位用户 $20 定价,每月成本约为 $40–55。只有提示词缓存将输入成本降低 50–70%,这一利润空间才能成立。
不同的编程助手界面适合使用哪种模型?
行内自动补全需要将首 token 延迟控制在 200ms 以内,因此适合 Claude Haiku 4.5。代码库对话需要低于 500ms,因此适合 Claude Sonnet 4.6。PR 审查可接受 10–60 秒,因此适合 Claude Opus 4.7。
自动补全提示应如何组织格式?
使用 Fill-in-Middle 提示:将请求格式化为 before<CURSOR>after,让模型看到光标两侧的内容;并设置 stop=['<CURSOR>', '</file>'] 以防输出溢出。
助手应如何处理多文件编辑?
传入类似 tools=[{name:'edit_file', ...}] 的工具定义,并以原子方式应用编辑,而不是要求模型在一条回复中输出多个完整文件。