文档

Agentic 工具设置

Agentic 工具在每一步都会发送文件内容、命令输出和完整的对话历史。这么大的 prompt 可能要几十秒才会出现第一个 token。如果你的应用先放弃,请求依然计费,而你什么也收不到。请按下文设置超时、流式输出、重试和上下文大小。

为什么这很重要

  • 在响应到达前被中断的请求仍会计费。请求一到达,AI 服务器就开始处理整个 prompt。如果你的应用先断开(超时、停止按钮、连接中断),处理成本已经产生,但你拿不到响应。
  • 超大 prompt 在第一个 token 之前需要超过 30 秒。数百 KB、包含上千条消息的 Agentic prompt,可能在吐出第一个 token 之前就超过许多应用的默认限制(30 或 60 秒)。
  • 流式输出能让连接保持活跃。开启流式输出后,我们的服务器会立即发送响应头,并在等待响应期间每 10 秒发送一次 keepalive 信号。仍可能切断连接的是你应用的总时间限制,所以请把它设为至少 300 秒。
  • 大上下文请选快速模型。长会话或大型仓库请使用更快的模型,把大模型留给真正需要的步骤。可在价格页面对比。

适用于所有工具的准则

超时
至少 300 秒。注意单位:有的工具用秒(300),有的用毫秒(300000)。
流式输出
开启它。不开流式输出时,响应完成前不会有任何数据传输,代理和应用会更早放弃。
重试
保持较低(0–3)。超时后的重试是一个新请求,同样计费。先修好超时,而不是调高重试次数。
上下文
保持小巧。使用自动 compact/摘要,每个任务开一个新会话,并排除大文件夹(node_modules、build、data)。

Claude Code

Base URL 与密钥
参照 Claude Code 指南:ANTHROPIC_BASE_URL = https://ai.geraikita.com(不含 /v1),ANTHROPIC_AUTH_TOKEN = 你的 gk- 密钥。变量可以写在 ~/.claude/settings.json 的 env 块中。
超时
API_TIMEOUT_MS(毫秒):每次尝试等待响应头的时长,默认 600000(10 分钟)。不要调低;如果曾经调低过,请改回至少 300000。
流式输出
始终使用流式输出,没有关闭它的设置。
重试
CLAUDE_CODE_MAX_RETRIES,默认 10,包括响应开始流式传输前的超时。大 prompt 请设为 2–3,避免同一步骤被反复计费。
上下文
/compact 会总结对话,/clear 开始新对话。自动 compact 默认开启(autoCompactEnabled);把 CLAUDE_AUTOCOMPACT_PCT_OVERRIDE 设得更低(如 60)会更早 compact。
~/.claude/settings.json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://ai.geraikita.com",
    "ANTHROPIC_AUTH_TOKEN": "gk-xxxxxxxx",
    "API_TIMEOUT_MS": "600000",
    "CLAUDE_CODE_MAX_RETRIES": "3",
    "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "60"
  }
}

Cline

Base URL 与密钥
参照 Cline 指南:provider 选 OpenAI Compatible(Base URL https://ai.geraikita.com/v1),或选 Anthropic 并在 Use custom base URL 中填 https://ai.geraikita.com。
超时
Cline 官方文档没有为 OpenAI Compatible 或 Anthropic provider 提供超时设置(Request Timeout 仅适用于 Ollama)。要让第一个 token 尽快出现:缩小上下文,大上下文时选更快的模型。
流式输出
官方文档中没有流式输出设置,无需更改。
重试
官方文档中没有重试设置。
上下文
Auto Compact 会在上下文快满时自动总结。/smol(别名 /compact)手动总结,/newtask 会把摘要带到新任务中。在 Model Configuration 中按模型设置 Context Window size。

Roo Code

Base URL 与密钥
注意:Roo Code 扩展已于 2026年5月15日正式停止维护。如果你仍在使用:provider 选 OpenAI Compatible,Base URL https://ai.geraikita.com/v1,填你的 gk- 密钥(与 Cline 相同)。
超时
VS Code settings.json 中的 roo-cline.apiRequestTimeout,单位为秒(默认 600,范围 0–3600,0 = 不限制)。不要低于 300。
流式输出
确保 OpenAI Compatible 配置中的 Enable streaming 保持勾选。
重试
开启 Auto-Approve 后,失败的请求会以递增的间隔自动重试;没有单独的开关。
上下文
Intelligent Context Condensing(Settings → Context):把阈值从默认的 100% 调低,让压缩更早开始,或点击 Condense Context。用 .rooignore 排除大文件夹。

Kilo Code

Base URL 与密钥
Settings → Providers → Custom provider → OpenAI Compatible,Base URL https://ai.geraikita.com/v1,填你的 gk- 密钥。或者像下方示例那样使用 ~/.config/kilo/kilo.jsonc 文件。
超时
provider 上的 options.timeout(毫秒)涵盖等待响应头和第一个字节的时间。默认 300000,正好卡在极限;请设为 600000。不要把 chunkTimeout 设得太低。
流式输出
官方文档中没有流式输出设置,无需更改。
重试
官方文档中没有重试设置。
上下文
compaction.auto(默认 true)和 /compact。必须为每个模型设置 limit.context(数值越小越早 compact):不设置的话自动 compact 不会运行。用 .kilocodeignore 或权限规则排除大文件夹。
~/.config/kilo/kilo.jsonc
{
  "provider": {
    "geraikita": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Geraikita AI",
      "options": {
        "baseURL": "https://ai.geraikita.com/v1",
        "apiKey": "gk-xxxxxxxx",
        "timeout": 600000
      },
      "models": {
        "claude-sonnet-5": {
          "name": "Claude Sonnet 5",
          "limit": { "context": 128000, "output": 16000 }
        }
      }
    }
  },
  "compaction": { "auto": true }
}

Cursor

Base URL 与密钥
Cursor Settings → Models → OpenAI API key。Cursor 官方文档没有说明自定义 base URL;如果你的 Cursor 版本显示 Override OpenAI Base URL,请填入 https://ai.geraikita.com/v1。自己的 API 密钥只适用于聊天模型(Tab 仍使用 Cursor 内置模型),且请求会经过 Cursor 的服务器。
超时
官方文档中没有可调的超时设置。替代做法:缩小上下文,每个任务开新对话,并选快速模型,让第一个 token 在应用限制之前到达。
流式输出
由 Cursor 处理,无需设置。
重试
官方文档中没有重试设置。
上下文
上下文快满时,Cursor 会自动总结较早的对话内容。每次切换任务都开一个新对话,并用 .cursorignore 排除大文件。

OpenCode

Base URL 与密钥
参照 OpenCode 指南:provider @ai-sdk/openai-compatible,baseURL 为 https://ai.geraikita.com/v1。
超时
在 provider.geraikita.options 中(毫秒):headerTimeout(等待响应头,默认 300000)和 chunkTimeout(流式分块之间的间隔,默认 300000)。timeout(总限制)默认关闭;如果设置,请至少设为 300000。
流式输出
始终使用流式输出,没有关闭它的设置。
重试
官方文档中没有重试设置。如果请求频繁中断,请修正超时并缩小上下文。
上下文
compaction.auto(默认 true)会在上下文满时自动总结会话。/compact 手动总结,/new 开始新会话。
~/.config/opencode/opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "geraikita": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "https://ai.geraikita.com/v1",
        "apiKey": "{env:GERAIKITA_API_KEY}",
        "headerTimeout": 300000,
        "chunkTimeout": 300000
      }
    }
  },
  "compaction": { "auto": true }
}

Continue

Base URL 与密钥
在 config.yaml 中:provider: openai,apiBase: https://ai.geraikita.com/v1,apiKey = 你的 gk- 密钥。
超时
requestOptions.timeout 单位为秒(默认 7200)。至少填 300,而不是 300000。
流式输出
openai provider 始终使用流式输出。
重试
官方文档中没有重试设置。
上下文
defaultCompletionOptions.contextLength 和 maxTokens 用于限制上下文和响应大小。每个任务开一个新对话;Continue CLI 提供 /compact 和 /clear。
~/.continue/config.yaml
models:
  - name: Claude Sonnet 5 (Geraikita)
    provider: openai
    model: claude-sonnet-5
    apiBase: https://ai.geraikita.com/v1
    apiKey: gk-xxxxxxxx
    requestOptions:
      timeout: 600        # 秒,不是毫秒
    defaultCompletionOptions:
      contextLength: 64000  # 越小 = 历史被裁剪越多
      maxTokens: 8192

n8n

Base URL 与密钥
OpenAI 凭据:把 Base URL 设为 https://ai.geraikita.com/v1,并填你的 gk- API 密钥。Anthropic 凭据:Base URL https://ai.geraikita.com。
超时
OpenAI Chat Model 节点 → Options → Timeout(毫秒)。默认 60000(60 秒),这是在 60 秒处被切断的常见原因;请至少设为 300000。HTTP Request 节点 → Options → Timeout 也以毫秒为单位。自托管:不要把 EXECUTIONS_TIMEOUT(秒)设得比它更低。
流式输出
AI Agent → Options → Enable Streaming(默认开启;需要 Chat Trigger 或 Response Mode 为 Streaming 的 Webhook)。Anthropic Chat Model → Stream Responses。OpenAI Chat Model 没有流式输出选项,因此要依靠足够长的 Timeout。
重试
OpenAI Chat Model → Options → Max Retries,默认 2。超时后的重试同样计费;请先修正 Timeout。
上下文
Simple Memory 子节点 → Context Window Length = 发送多少条过往交互。保持较小,例如 5–10。

OpenAI SDK(Python 与 Node.js)

Base URL 与密钥
base_url / baseURL = https://ai.geraikita.com/v1,api_key / apiKey = 你的 gk- 密钥。基础示例见第一个请求。
超时
timeout:Python 中单位为秒,Node.js 中为毫秒。SDK 默认 10 分钟,只要不把它调到低于 300 秒就没问题。
流式输出
stream=True(Python)/ stream: true(Node.js)。
重试
max_retries / maxRetries,默认 2,包括重试超时的请求。大 prompt 请设为 0–1。
上下文
只发送需要的历史:发送前裁剪旧消息或先做摘要。
from openai import OpenAI

client = OpenAI(
    base_url="https://ai.geraikita.com/v1",
    api_key="gk-xxxxxxxx",
    timeout=600.0,   # 秒
    max_retries=1,   # 超时后的重试同样计费
)
stream = client.chat.completions.create(
    model="claude-sonnet-5",
    messages=[{"role": "user", "content": "Halo!"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Anthropic SDK(Python 与 Node.js)

Base URL 与密钥
base_url / baseURL = https://ai.geraikita.com(不含 /v1,SDK 会自行追加 /v1/messages),api_key / apiKey = 你的 gk- 密钥。
超时
timeout:Python 中单位为秒,Node.js 中为毫秒;默认 10 分钟。SDK 会拒绝预计耗时超过约 10 分钟的非流式请求,所以请使用流式输出。
流式输出
client.messages.stream(...),或在 messages.create 上使用 stream=True / stream: true。
重试
max_retries / maxRetries,默认 2。大 prompt 请设为 0–1。
上下文
只发送需要的历史;把 max_tokens 限制在响应实际所需的范围内。
import anthropic

client = anthropic.Anthropic(
    base_url="https://ai.geraikita.com",   # 不含 /v1
    api_key="gk-xxxxxxxx",
    timeout=600.0,   # 秒
    max_retries=1,   # 超时后的重试同样计费
)
with client.messages.stream(
    model="claude-sonnet-5",
    max_tokens=4096,
    messages=[{"role": "user", "content": "Halo!"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

curl

Base URL 与密钥
请求头 Authorization: Bearer gk-...,发往 https://ai.geraikita.com/v1/chat/completions。基础示例见第一个请求。
超时
不加 --max-time 时,curl 不限制总时长。如果使用它,请至少设为 300(秒)。
流式输出
请求体中加 "stream": true,并加上 -N(--no-buffer),让响应分块立即显示。
重试
--retry 默认为 0,且超时时也会重试。大 prompt 不要加它。
上下文
请求体由你自己构建:只发送需要的消息。
bash
curl https://ai.geraikita.com/v1/chat/completions \
  --max-time 600 -N \
  -H "Authorization: Bearer gk-xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-sonnet-5","stream":true,"messages":[{"role":"user","content":"Halo!"}]}'

计费条款

在响应到达前由买家一方取消的请求(应用超时、停止按钮、连接中断)仍会计费。空输出仅在我方出现问题时补偿(服务器返回空响应或错误,或 ≥60 秒没有任何输出)。自 2026年11月1日起生效。

条款与条件第10条

常见问题

我的应用超时了,输出是空的。还会计费吗?

会,如果是你的应用在响应到达前切断了请求:AI 服务器已经处理了你的 prompt。这一点写在条款与条件中,自 2026年11月1日起生效。

空输出什么时候会补偿?

当问题出在我方时:服务器返回空响应或错误,或者 60 秒及以上完全没有输出。

为什么不直接调高重试次数?

每次重试都是一个新请求。如果原因是超时太短,重试只会重复计费而没有结果。请把超时调到至少 300 秒,并开启流式输出。

我的 prompt 非常大,什么方法最有效?

做摘要或开新会话,排除大文件夹,大上下文时使用更快的模型。可在价格页面对比模型。