Skip to content

Cursor 文本端点兼容 ​

Cursor 账号可通过 PokeAPI 承接 Anthropic Messages、OpenAI Chat Completions、OpenAI Responses(含 /responses/compact)以及受限的 Gemini 原生文本请求。

启用 Gemini 原生文本入口 ​

Gemini 原生兼容默认关闭。管理员需要在配置中显式启用:

yaml
cursor:
  gemini_native_enabled: true
  max_tool_definitions: 128
  max_tool_schema_bytes: 262144

关闭时,Cursor 账号不会进入 Gemini 原生请求的候选池;既有 Messages、Chat Completions、Responses 行为不受影响。

支持的 Gemini action:

  • POST /v1beta/models/{model}:generateContent
  • POST /v1beta/models/{model}:streamGenerateContent?alt=sse

模型和流式语义取自 URL,不读取请求体里的 model 或 stream 字段。

支持的 Gemini 请求子集 ​

仅支持文本会话:

  • systemInstruction.parts[].text
  • contents[].role 为 user 或 model
  • 每个 parts[] 仅包含 text
  • candidateCount 未设置或等于 1

示例:

bash
curl "$BASE_URL/v1beta/models/gemini-2.5-flash:generateContent" \
  -H "x-goog-api-key: $SUB2API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "systemInstruction": {"parts": [{"text": "Answer concisely."}]},
    "contents": [{"role": "user", "parts": [{"text": "Explain SSE."}]}]
  }'

流式调用返回 Gemini 形状的 data: {...} SSE:

bash
curl -N "$BASE_URL/v1beta/models/gemini-2.5-flash:streamGenerateContent?alt=sse" \
  -H "x-goog-api-key: $SUB2API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contents":[{"role":"user","parts":[{"text":"Say hello"}]}]}'

Agent RPC 会逐文本增量返回;Cloud Agent 路径会在上游完成后输出缓冲式兼容 SSE,不保证逐 token 实时性。

明确不支持的能力 ​

Cursor 不会伪装支持以下 Gemini 能力:tools/function calling、Google Search/grounding、代码执行、缓存内容、图片/音频/视频/文件、JSON Schema 或 JSON MIME 输出、多候选、countTokens、模型目录、Files、batch、Live/Bidi、Embeddings、Imagen/Veo。

这些请求返回协议正确的请求级错误,不切换账号,也不把账号标记为失败。

OpenAI 图片输入、Responses 与工具限制 ​

Cursor 接受 OpenAI Chat Completions 用户 content 中的 image_url Base64 Data URL,以及 OpenAI Responses 顶层或用户 message content 中的 input_image Base64 Data URL。图片与 Anthropic 路径共享 PNG/JPEG/GIF/WebP、最多 20 张、单张 5 MiB、累计 6 MiB 的限制。网关不会下载远程 URL,也不读取 Responses file_id;非法 Data URL/Base64、MIME 不匹配和错误角色图片会返回请求级 400,超限返回 413。

OpenAI Responses 会保留可安全扁平化的 developer 消息、已完成 reasoning、item reference、标准 function history 与已完成 hosted-tool 历史。namespace 中的 function 子工具会在发往 Cursor 前可逆摊平,并在流式和非流式 function_call 中恢复原始 namespace/名称;撞名或没有可移植 function 子项的 hosted tool 会明确拒绝。严格 JSON Schema 输出、音频、文件和其他无法可靠映射的内容仍不支持。

为避免大型工具 schema 被 Cursor 本地兼容层拒绝,网关会在上游调用前检查 max_tool_definitions 和 max_tool_schema_bytes。默认允许 128 个工具,以兼容当前 Claude Code 工具集;schema 总量仍限制为 256KiB。超过预算时返回 HTTP 413。Ops 会记录协议、请求大小、图片数量/字节数、工具数量、schema 字节数和脱敏摘要;不会存储提示词、工具参数、Base64 或凭据。

更多认证、转发模式和计费边界见项目中的 docs/CURSOR_INTEGRATION.md。

PokeAPI · AI API Gateway