API 参数配置直接影响代码生成质量、成本和可靠性。从 temperature=0 的确定性输出到 7 种生成配置,各工具的 LLM 调用策略差异显著。
总览
| Agent | 默认温度 | 重试策略 | 循环上限 | 流式输出 | LLM SDK | Prompt 缓存 |
|---|
| Claude Code | 0/1(模式相关) | 指数退避 | 可配置 maxTurns | ✓ | 原生 Anthropic | ✓ cache_control |
| Gemini CLI | 0(base)/1(chat) | 10 次,5-30s | 100 轮 | ✓ | @google/genai | ✓ cachedContent |
| Aider | 0 | 0.125s→60s | 3 次反射 | ✓(默认) | LiteLLM | ✓ Anthropic 缓存 |
| Kimi CLI | 环境变量控制 | tenacity 0.3-5s×3 | 100 步/轮 | ✓ | kosong(自研) | ✗ |
| Goose | None(环境变量) | 可配置 RetryManager | 无固定上限 | Provider 决定 | Provider trait | ✗ |
| Codex CLI | 可配置 | — | 可配置 | ✓ | 原生 OpenAI | ✓ 服务端 |
| Copilot CLI | 0/1(场景相关) | — | 可配置 | ✓ | 原生 GitHub | ✗ |
| Qwen Code | 继承 Gemini | 继承 Gemini | 100 轮 | ✓ | @google/genai | ✓(DashScope) |
一、温度策略
| 场景 | Claude Code | Gemini CLI | Aider | Kimi CLI |
|---|
| 代码生成 | ~0 | 0(base) | 0 | 环境变量 |
| 对话交互 | ~1 | 1(chat) | 0 | 环境变量 |
| 分类/安全 | 0 | 0(classifier) | — | — |
| 辅助任务 | — | 0.2-0.3 | — | — |
| 推理模型 | — | — | 禁用 | — |
| 配置 | temperature | topP | topK | thinkingConfig |
|---|
base | 0 | 1 | — | — |
chat-base | 1 | 0.95 | 64 | includeThoughts: true |
chat-base-2.5 | 继承 | 继承 | 继承 | thinkingBudget: DEFAULT |
chat-base-3 | 继承 | 继承 | 继承 | thinkingLevel: HIGH |
classifier | 0 | 1 | — | thinkingBudget: 512, maxOutputTokens: 1024 |
prompt-completion | 0.3 | 继承 | — | thinkingBudget: 0, maxOutputTokens: 16000 |
fast-ack-helper | 0.2 | 继承 | — | thinkingBudget: 0, maxOutputTokens: 120 |
/think-tokens 32k # 设置思维 token 预算(支持人类可读格式)
/reasoning-effort high # 控制模型推理级别(low/medium/high)
运行时动态调整模型推理深度,无需重启会话。
# models.py — 以下模型自动禁用温度
use_temperature = False # DeepSeek R1, o1/o3/o4, GPT-5
# Aider 实际 LLM 调用(models.py:1020)
response = litellm.completion(
model=self.model_name,
messages=messages,
temperature=0 if self.use_temperature else None,
stream=True,
timeout=600, # 10 分钟超时
**extra_kwargs
)
// Anthropic API 调用(cache_control 优化)
{
model: "claude-sonnet-4-6",
max_tokens: 16384,
system: [
{ type: "text", text: systemPrompt, cache_control: { type: "ephemeral" } }
],
tools: toolDefinitions.map(t => ({
...t, cache_control: { type: "ephemeral" }
})),
messages: conversationHistory
}
// chat-base 配置(对话模式默认)
{
temperature: 1,
topP: 0.95,
topK: 64,
generationConfig: {
thinkingConfig: { includeThoughts: true }
}
}
// classifier 配置(模型路由分类器)
{
temperature: 0,
topP: 1,
generationConfig: {
thinkingConfig: { thinkingBudget: 512 },
maxOutputTokens: 1024
}
}
二、重试策略
| Agent | 初始延迟 | 最大延迟 | 最大次数 | 重试条件 | 抖动 |
|---|
| Aider | 0.125s | 60s | — | LiteLLM 可重试错误 | ✗ |
| Gemini CLI | 5s | 30s | 10 | 429 + 5xx | ✗ |
| Kimi CLI | 0.3s | 5s | 3/步 | 通用错误 | ✓(0.5) |
| Goose | — | 300s(超时) | 用户配置 | — | ✗ |
| Claude Code | — | — | 指数退避 | API 错误 | ✗ |
@retry(
wait=wait_exponential_jitter(initial=0.3, max=5, jitter=0.5),
stop=stop_after_attempt(3),
)
async def _step(self):
...
仅重试:
- 429 — 速率限制(Rate Limit Exceeded)
- 5xx — 服务器错误(Internal Server Error)
不重试:4xx 客户端错误(除 429)。
三、代理循环控制
循环上限
| Agent | 上限 | 源码位置 | 说明 |
|---|
| Gemini CLI | 100 轮 | client.ts:81 MAX_TURNS | 硬编码 |
| Kimi CLI | 100 步/轮 | config.py:71-72 max_steps_per_turn | 可配置 |
| Qwen Code | 100 轮 | 继承 Gemini | 硬编码 |
| Aider | 3 次反射 | base_coder.py:101 | lint/test 专用 |
| Claude Code | 可配置 | maxTurns(74 refs) | 动态 |
| Goose | 无固定上限 | — | 直到模型停止 |
| Copilot CLI | 可配置 | --max-autopilot-continues | Autopilot 模式限制 |
| Codex CLI | 可配置 | config.toml | 审批模式影响循环 |
| OpenCode | 可配置 | — | Doom Loop 保护(3 次拒绝中断) |
停止条件
| Agent | 停止方式 |
|---|
| Claude Code | end_turn / stop_sequence / 用户中断 |
| Gemini CLI | 轮次耗尽 / 模型停止 / 用户中断 |
| Qwen Code | 继承 Gemini |
| Aider | 模型不再调用工具 / 3 次反射失败 |
| Kimi CLI | 步数耗尽 / stop_reason / 用户中断 |
| Goose | 模型决定 / 用户中断 |
| Copilot CLI | 任务完成 / --max-autopilot-continues 耗尽 / 用户中断 |
| Codex CLI | 模型决定 / 审批拒绝 / 用户中断 |
| OpenCode | 模型决定 / Doom Loop 触发 / 用户中断 |
四、上下文窗口与压缩阈值
| Agent | 最大上下文 | 压缩阈值 | 预留空间 |
|---|
| Claude Code | 100 万 token(Opus 4.6[1m]) | ~95% | — |
| Gemini CLI | ~100 万 | 50% | — |
| Kimi CLI | 模型依赖 | 85% | 50K tokens |
| Goose | 模型依赖 | 80% | — |
| Aider | 模型依赖 | done_messages > 1024 tokens | — |
| Qwen Code | ~100 万 | 50%(继承) | — |
| Copilot CLI | 模型依赖 | backgroundCompactionThreshold | — |
| Codex CLI | 模型依赖 | auto_compact_token_limit | — |
| OpenCode | 模型依赖 | 可配置 | — |
| Agent | 缓存机制 | 效果 |
|---|
| Claude Code | Anthropic cache_control: ephemeral | 系统提示和工具定义缓存,减少重复 token |
| Aider | Anthropic prompt caching(通过 LiteLLM) | 后台保活 ping 维持缓存 |
| Gemini CLI | Google cachedContent API | 长上下文缓存 |
| Codex CLI | OpenAI 服务端缓存 | enable_request_compression |
| Qwen Code | DashScope 缓存(enableCacheControl) | 继承 |
六、工具调用策略
| Agent | 并行调用 | 工具选择 | 特殊机制 |
|---|
| Claude Code | ✓(Agent 子代理) | 模型自选 | ToolSearch 延迟加载 |
| Gemini CLI | ✓ | 模型自选 | TailToolCall 链式调用 |
| Copilot CLI | ✓(multi_tool_use.parallel) | 模型自选 | 模型特定 apply-patch |
| Aider | ✗(串行) | 编辑格式决定 | 14 种格式按模型选择 |
| Kimi CLI | ✗(串行+后台任务) | 模型自选 | max_steps_per_turn=100 |
| Goose | ✓ | 模型自选 | toolshim 兼容层 |
| Qwen Code | ✓(继承 Gemini) | 模型自选 | 继承 TailToolCall |
| Codex CLI | ✓(supports_parallel_tool_calls) | 模型自选 | apply_patch 专用格式 |
| OpenCode | ✓ | 模型自选 | 按模型切换 edit/apply_patch |
源码:model.rs:48
pub struct ModelConfig {
pub toolshim: bool, // 启用工具调用 shim
pub toolshim_model: Option<String>, // 代理决策的模型
}
对不支持原生 function calling 的模型(如部分本地 Ollama 模型),Goose 通过 toolshim 用另一个模型代理工具调用决策。例如:主模型为 llama3:8b(无工具调用),toolshim_model 设为 gpt-4o-mini(代理工具选择)。
| SDK | 使用者 | 提供商覆盖 |
|---|
| LiteLLM | Aider, SWE-agent, OpenHands | 100+(统一 Python 接口) |
| @google/genai | Gemini CLI, Qwen Code | Google 模型 |
| 原生 Anthropic | Claude Code | Anthropic 模型 |
| 原生 OpenAI | Codex CLI | OpenAI 模型 |
| Provider trait | Goose(rmcp Rust) | 58+(Rust trait 抽象) |
| Handler 工厂 | Cline | 48+(per-provider Handler) |
| kosong | Kimi CLI | 5+(自研 Python 抽象) |
| Vercel AI SDK | OpenCode | 100+(TypeScript) |
证据来源
| Agent | 源码文件 | 获取方式 |
|---|
| Aider | models.py:988(temp), history.py(压缩) | GitHub 源码 |
| Gemini CLI | defaultModelConfigs.ts, retry.ts, client.ts:81 | GitHub 源码 |
| Kimi CLI | config.py:71-85, kimisoul.py:687-691 | GitHub 源码 |
| Goose | model.rs:48-158, context_mgmt/mod.rs | GitHub 源码 |
| Claude Code | claude --help + 二进制分析 | 本地二进制 |
| Codex CLI | codex --help + config schema | 二进制 + 官方文档 |