HappyHorse 1.0 正式上线立即体验
Gemini 3.5 Flash API 使用指南:Model ID、定价与代码示例
guide

Gemini 3.5 Flash API 使用指南:Model ID、定价与代码示例

EvoLink Team
EvoLink Team
Product Team
2026年5月20日
27 分钟阅读

Gemini 3.5 Flash 是 Google 最新的生产就绪 Flash 模型,已正式发布(GA)并可稳定用于大规模生产环境。它专为 Agent 工作流、编程 Agent、子 Agent 部署以及长周期任务而设计——兼具前沿级智能与 Flash 级别的速度和成本优势。

本指南涵盖将 Gemini 3.5 Flash 集成到应用程序所需的一切:Model ID、定价、Python 和 Node.js 代码示例、函数调用、结构化输出、Agent 工作流模式、成本分析,以及如何在 Flash 和 Pro 之间做出选择。

如需查看实时定价的完整产品页面,请访问 EvoLink 上的 Gemini 3.5 Flash API

快速参考卡

项目
Model IDgemini-3.5-flash
状态正式发布(GA),生产环境稳定可用
输入定价$1.50 / 百万 token
输出定价$9.00 / 百万 token
上下文窗口1,048,576 输入 token
最大输出65,535 token
输入模态文本、图片、视频、音频、PDF
输出模态仅文本
函数调用支持
结构化输出支持
代码执行支持
搜索锚定支持
上下文缓存支持
Batch API支持
流式输出支持

目录

  1. 何时使用 Gemini 3.5 Flash
  2. Gemini 3.5 Flash 与其他 Gemini 模型对比
  3. 定价详解
  4. 设置:2 分钟快速入门
  5. 代码示例
  6. 函数调用
  7. 结构化输出
  8. 编程 Agent 工作流
  9. 子 Agent 部署模式
  10. 成本分析:Agent 循环的实际开销
  11. 成本控制策略
  12. 常见错误及规避方法
  13. 何时不应使用 Gemini 3.5 Flash
  14. 常见问题

何时使用 Gemini 3.5 Flash

Gemini 3.5 Flash 并非通用型廉价模型。Google 将其明确定位于特定的高价值工作负载,在这些场景中速度、每次迭代成本和工具支持比最大推理深度更重要。

最佳应用场景

应用场景为何适合 Gemini 3.5 Flash评估指标
编程 Agent以 Flash 级速度进行快速代码生成、调试、重构修复所需迭代次数、每次会话成本、diff 质量
Agent 工作流原生函数调用、并行执行循环、低单次调用成本工具调用准确率、回退率、总工作流成本
子 Agent 部署在多 Agent 系统中作为子 Agent 部署,单次调用经济性突出子调用延迟、错误率、编排开销
长周期任务1M 上下文可处理完整代码库和多文档分析而不截断上下文利用率、高 token 数下的输出质量
文档处理PDF、音频、视频输入统一定价——无模态附加费提取准确率、每文档处理成本
生产级聊天内置推理能力,具备 Flash 级延迟,适合面向用户的应用首 token 时间、用户满意度、每次对话成本

应用场景决策树

按以下顺序自问:

  1. 该任务是否需要最深层次的推理? 如果是 → Gemini 3.1 Pro。
  2. 这是否为高量级的简单任务(分类、路由、提取)? 如果是 → Gemini 3.1 Flash Lite。
  3. 该任务是否涉及编程、Agent、工具或长上下文? 如果是 → Gemini 3.5 Flash
  4. 这是通用的生产级聊天或摘要任务? 如果是 → Gemini 3.5 Flash 或 Gemini 2.5 Flash(根据你的工作负载进行对比)。

Gemini 3.5 Flash 与其他 Gemini 模型对比

这是对生产路由决策至关重要的对比。

特性Gemini 3.5 FlashGemini 3.1 ProGemini 3 FlashGemini 3.1 Flash LiteGemini 2.5 Flash
状态GA,稳定预览版预览版预览版稳定
最适用于Agent、编程、长周期最高难度推理通用快速工作负载大批量处理生产级聊天
输入成本$1.50/MTok$2–$4/MTok$0.50/MTok$0.25/MTok$0.30/MTok
输出成本$9.00/MTok$12–$18/MTok$3.00/MTok$1.50/MTok$2.50/MTok
上下文1M / 65K1M / 64K1M / 64K1M / 64K1M / 64K
推理能力内置推理最深层次(思维链)标准轻量级标准
函数调用
代码执行
生产就绪度GA预览版预览版预览版稳定
关键结论: Gemini 3.5 Flash 是 Gemini 3.x 系列中唯一具备 GA 稳定状态、内置推理和完整工具支持的 Flash 模型。它比 Gemini 3 Flash 成本更高(输入 $1.50 vs $0.50 每 MTok),但提供了前代 Flash 模型无法匹配的前沿级智能。

定价详解

标准定价

Token 类型每百万 token 价格
文本输入$1.50
文本输出$9.00
音频输入与文本统一(无附加费)
图片输入与文本统一(无附加费)
视频输入与文本统一(无附加费)
PDF 输入与文本统一(无附加费)

成本降低方式

方式工作原理最适用于
上下文缓存缓存重复的输入前缀;缓存命中的成本低于新输入Agent 循环、重复代码上下文、系统提示词
Batch API以批量方式提交请求进行离线处理,享受折扣价测试生成、批量提取、离线分析
EvoLink 积分预购积分享受批量折扣月度用量可预测的团队

实际成本示例

场景输入 token输出 token预估成本
单次文本问答~500~200$0.003
代码审查(1 个文件,约 2K 行)~8,000~2,000$0.03
编程 Agent 会话(20 次迭代)~80,000~20,000$0.30
完整代码库分析(500K 上下文)~500,000~10,000$0.84
PDF 文档提取(100 页)~150,000~5,000$0.27
8 小时 Agent 持续部署~2,000,000~500,000$7.50

以上估算基于标准付费层定价,未使用缓存。在重复前缀占比较高的 Agent 循环中,上下文缓存可以显著降低输入成本;实际节省取决于缓存命中率、可缓存 token 占比和缓存时长。


设置:2 分钟快速入门

EvoLink 注册并在 控制台 → Keys 中创建 API key。

第 2 步:安装 OpenAI SDK

EvoLink 兼容 OpenAI,因此可以使用标准 OpenAI SDK:

Python:
pip install openai
Node.js:
npm install openai

第 3 步:发送第一个请求

Python:
from openai import OpenAI

client = OpenAI(
    api_key="your-evolink-api-key",
    base_url="https://api.evolink.ai/v1"
)

response = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[
        {"role": "user", "content": "What is Gemini 3.5 Flash best at?"}
    ]
)

print(response.choices[0].message.content)
Node.js:
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "your-evolink-api-key",
  baseURL: "https://api.evolink.ai/v1",
});

const response = await client.chat.completions.create({
  model: "gemini-3.5-flash",
  messages: [
    { role: "user", content: "What is Gemini 3.5 Flash best at?" },
  ],
});

console.log(response.choices[0].message.content);

搞定。无需 Google 专用 SDK,无需单独的认证流程,无需 Vertex AI 设置。


代码示例

带系统提示词的基本文本请求

response = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[
        {"role": "system", "content": "You are a senior software engineer. Be concise and precise."},
        {"role": "user", "content": "Explain the difference between a mutex and a semaphore in 3 sentences."}
    ],
    temperature=0.3,
    max_tokens=512
)

多模态:图片分析

import base64

with open("screenshot.png", "rb") as f:
    image_data = base64.b64encode(f.read()).decode()

response = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "What error is shown in this screenshot? Suggest a fix."},
                {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image_data}"}}
            ]
        }
    ]
)

所有多模态输入与文本共享相同的 token 定价——无音频或视频附加费。

流式输出

对于需要在生成过程中逐步显示 token 的交互式应用:

Python:
stream = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[{"role": "user", "content": "Write a Python function that validates email addresses."}],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
Node.js:
const stream = await client.chat.completions.create({
  model: "gemini-3.5-flash",
  messages: [{ role: "user", content: "Write a Python function that validates email addresses." }],
  stream: true,
});

for await (const chunk of stream) {
  const content = chunk.choices[0]?.delta?.content;
  if (content) process.stdout.write(content);
}

多轮对话

messages = [
    {"role": "system", "content": "You are a helpful coding assistant."},
    {"role": "user", "content": "Write a linked list implementation in Python."},
]

# First turn
response = client.chat.completions.create(model="gemini-3.5-flash", messages=messages)
assistant_message = response.choices[0].message.content
messages.append({"role": "assistant", "content": assistant_message})

# Follow-up
messages.append({"role": "user", "content": "Now add a reverse() method."})
response = client.chat.completions.create(model="gemini-3.5-flash", messages=messages)
print(response.choices[0].message.content)

函数调用

Gemini 3.5 Flash 支持原生函数调用,这对 Agent 工作流至关重要。定义工具,让模型决定何时调用它们。

Python 示例

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get current weather for a location",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {"type": "string", "description": "City name"},
                    "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
                },
                "required": ["location"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "search_database",
            "description": "Search the internal knowledge base",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {"type": "string", "description": "Search query"},
                    "limit": {"type": "integer", "description": "Max results to return"}
                },
                "required": ["query"]
            }
        }
    }
]

response = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[{"role": "user", "content": "What's the weather in Tokyo and find articles about climate change?"}],
    tools=tools,
    tool_choice="auto"
)

# The model may call one or both tools
for tool_call in response.choices[0].message.tool_calls:
    print(f"Function: {tool_call.function.name}")
    print(f"Arguments: {tool_call.function.arguments}")

Node.js 示例

const tools = [
  {
    type: "function",
    function: {
      name: "run_tests",
      description: "Run the test suite and return results",
      parameters: {
        type: "object",
        properties: {
          test_file: { type: "string", description: "Path to test file" },
          verbose: { type: "boolean", description: "Show detailed output" },
        },
        required: ["test_file"],
      },
    },
  },
];

const response = await client.chat.completions.create({
  model: "gemini-3.5-flash",
  messages: [{ role: "user", content: "Run the tests for auth module" }],
  tools,
  tool_choice: "auto",
});

const toolCalls = response.choices[0].message.tool_calls;
for (const call of toolCalls) {
  console.log(`Call: ${call.function.name}(${call.function.arguments})`);
}

函数调用最佳实践

实践原因
编写清晰的函数描述模型依靠描述来决定何时调用每个工具
使用 required 字段防止模型遗漏关键参数
保持参数 schema 简洁复杂的嵌套 schema 会增加错误率
处理并行工具调用Gemini 3.5 Flash 可在单次响应中调用多个工具
验证工具调用参数执行前务必验证——不要盲目信任模型输出

结构化输出

对于需要机器可读结果的工作流,可使用 JSON 模式或响应格式:

response = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[
        {"role": "system", "content": "Extract structured data from the text. Return valid JSON only."},
        {"role": "user", "content": "John Smith, age 34, works at Acme Corp as a senior engineer since 2022. Email: [email protected]"}
    ],
    response_format={"type": "json_object"}
)

import json
data = json.loads(response.choices[0].message.content)
print(data)
# {"name": "John Smith", "age": 34, "company": "Acme Corp", "role": "senior engineer", "start_year": 2022, "email": "[email protected]"}

何时使用结构化输出

场景格式原因
从文档提取数据JSON 模式下游系统需要结构化数据
Agent 工具响应JSON 模式工具编排器需要可解析的输出
分类任务JSON 模式需要一致的标签字段,而非自由文本
代码生成纯文本代码本身已有结构;JSON 包装会增加额外开销
解释和聊天纯文本自然语言在不使用 JSON 时可读性更好

编程 Agent 工作流

这是 Gemini 3.5 Flash 最高价值的应用场景。以下是完整的编程 Agent 循环:

from openai import OpenAI
import subprocess
import json

client = OpenAI(api_key="your-evolink-api-key", base_url="https://api.evolink.ai/v1")

def run_tests(test_file: str) -> dict:
    """Run tests and return results."""
    result = subprocess.run(["python", "-m", "pytest", test_file, "-v", "--tb=short"],
                          capture_output=True, text=True, timeout=60)
    return {"passed": result.returncode == 0, "output": result.stdout + result.stderr}

def read_file(path: str) -> str:
    with open(path) as f:
        return f.read()

def write_file(path: str, content: str):
    with open(path, "w") as f:
        f.write(content)

# Initial context
module_code = read_file("src/auth.py")
test_code = read_file("tests/test_auth.py")
test_result = run_tests("tests/test_auth.py")

messages = [
    {"role": "system", "content": """You are a coding agent. Your job is to fix failing tests.
Rules:
1. Read the code and test output carefully.
2. Identify the root cause.
3. Output the complete fixed file content.
4. Do not change test expectations — fix the implementation."""},
    {"role": "user", "content": f"""Module code:\n```python\n{module_code}\n```\n\nTest code:\n```python\n{test_code}\n```\n\nTest output:\n```\n{test_result['output']}\n```"""}
]

MAX_ITERATIONS = 15
for i in range(MAX_ITERATIONS):
    response = client.chat.completions.create(
        model="gemini-3.5-flash",
        messages=messages,
        temperature=0.2,
        max_tokens=8192
    )

    reply = response.choices[0].message.content
    messages.append({"role": "assistant", "content": reply})

    # Extract and apply the fix
    if "```python" in reply:
        code_block = reply.split("```python")[1].split("```")[0]
        write_file("src/auth.py", code_block)

    # Re-run tests
    test_result = run_tests("tests/test_auth.py")

    if test_result["passed"]:
        print(f"All tests pass after {i + 1} iterations.")
        break

    messages.append({"role": "user", "content": f"Tests still failing:\n```\n{test_result['output']}\n```\nAnalyze the failure and try again."})
else:
    print(f"Failed to fix after {MAX_ITERATIONS} iterations.")

Agent 循环性能建议

建议影响
使用 temperature=0.2 实现确定性修复减少迭代间的随机波动
设置 max_tokens=8192 用于代码输出防止大文件被截断
在上下文中包含测试输出为模型提供具体的失败信号
限制迭代次数(15–20)防止模型卡住时成本失控
使用上下文缓存每次迭代发送相同的代码上下文——缓存命中可降低重复输入成本

子 Agent 部署模式

在多 Agent 系统中,Gemini 3.5 Flash 非常适合作为子 Agent 处理特定任务,而由协调者(Pro 或其他模型)管理整体工作流:

def coding_sub_agent(task: str, context: str) -> str:
    """Fast coding sub-agent using Gemini 3.5 Flash."""
    response = client.chat.completions.create(
        model="gemini-3.5-flash",
        messages=[
            {"role": "system", "content": "You are a fast coding sub-agent. Complete the task concisely."},
            {"role": "user", "content": f"Context:\n{context}\n\nTask:\n{task}"}
        ],
        temperature=0.2,
        max_tokens=4096
    )
    return response.choices[0].message.content

def reasoning_agent(task: str) -> str:
    """Deep reasoning agent using EvoLink's Gemini 3.1 Pro route for complex decisions."""
    response = client.chat.completions.create(
        model="gemini-3.1-pro-preview",
        messages=[
            {"role": "system", "content": "You are a senior architect. Analyze deeply and decide."},
            {"role": "user", "content": task}
        ],
        temperature=0.3,
        max_tokens=4096
    )
    return response.choices[0].message.content

# Coordinator pattern: Pro decides, Flash executes
plan = reasoning_agent("Design a refactoring plan for the auth module to support OAuth2.")
subtasks = parse_subtasks(plan)

results = []
for subtask in subtasks:
    result = coding_sub_agent(subtask, context=module_code)
    results.append(result)

多 Agent 系统中各角色的模型选择

Agent 角色推荐模型原因
协调者/规划者Gemini 3.1 Pro route架构决策需要最深层次的推理
编程子 AgentGemini 3.5 Flash快速迭代、良好代码质量、低单次调用成本
分类/路由Gemini 3.1 Flash Lite简单结构化决策的最低成本选择
文档分析Gemini 3.5 Flash1M 上下文 + 多模态处理 PDF 和图片
验证/审查Gemini 3.5 Flash 或 Pro取决于审查的关键程度

成本分析:Agent 循环的实际开销

大多数开发者低估了 Agent 成本,因为他们只关注单次请求定价。以下是一个真实的成本拆解:

编程 Agent:20 次迭代调试会话

阶段输入 token输出 token输入成本输出成本
第 1 次迭代(完整上下文)8,0002,000$0.012$0.018
第 2–5 次迭代(上下文增长)40,0006,000$0.060$0.054
第 6–10 次迭代(大上下文)60,0005,000$0.090$0.045
第 11–20 次迭代(趋于平稳)100,0007,000$0.150$0.063
合计208,00020,000$0.312$0.180
会话总计$0.49

使用上下文缓存(假设重复代码上下文的缓存命中率为 50%):

不使用缓存使用缓存节省
输入成本$0.312显著降低取决于缓存命中率
输出成本$0.180$0.1800%
合计$0.492显著降低可根据缓存命中率降低整体会话成本

成本对比:同一 Agent 会话在不同模型上的表现

模型输入成本输出成本会话总计质量权衡
Gemini 3.5 Flash$0.312$0.180$0.49编程 Agent 的最佳平衡点
Gemini 3.1 Pro$0.416–$0.832$0.240–$0.360$0.66–$1.19更深推理,2–3 倍成本
Gemini 3 Flash$0.104$0.060$0.16更便宜但编程能力较弱
Gemini 3.1 Flash Lite$0.052$0.030$0.08最便宜但推理能力有限

成本控制策略

1. 启用上下文缓存

如果你的 Agent 重复发送相同的代码上下文,上下文缓存可在缓存命中时降低输入成本。对于多轮编程会话,实际节省取决于重复上下文占比、缓存命中率和缓存时长。

2. 对非紧急工作使用 Batch API

对于测试生成、批量提取或离线代码分析,Batch API 提供折扣价格。延迟更高但每 token 成本更低。

3. 设置 Max Tokens

始终设置 max_tokens 以防止意外的超长输出导致成本膨胀:
response = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=messages,
    max_tokens=4096  # Reasonable limit for code output
)

4. 按任务复杂度路由

不要对所有任务使用同一个模型。构建路由层:

def route_request(task_type: str) -> str:
    routing_table = {
        "architecture": "gemini-3.1-pro-preview",      # Deep reasoning
        "coding": "gemini-3.5-flash",           # Fast iteration
        "classification": "gemini-3.1-flash-lite",  # Cheapest
        "review": "gemini-3.5-flash",           # Good balance
        "chat": "gemini-3.5-flash",             # Production default
    }
    return routing_table.get(task_type, "gemini-3.5-flash")

5. 监控 Token 使用量

跟踪每个请求的输入和输出 token 数。定期检查用量,必要时在业务侧设置预算或限流。

6. 尽可能截断上下文

如果只需要最后 50K token,就不要发送全部 1M token 的上下文。裁剪旧的对话轮次,只保留相关上下文。


常见错误及规避方法

错误后果修复方法
在各处硬编码 Model ID无法在不修改代码的情况下切换模型将 Model ID 存储在配置中;按任务类型路由
未设置 max_tokens输出可能意外地过长且成本高昂始终设置合理的输出限制
每次迭代发送完整上下文而不使用缓存输入成本随迭代线性增长为重复前缀启用上下文缓存
将 Flash 用于需要深层推理的任务复杂架构决策的准确率较低将最难的步骤路由到 Gemini 3.1 Pro
将 Pro 用于 Flash 能胜任的任务2–3 倍成本,质量提升有限默认使用 Flash;仅在需要时升级到 Pro
预算估算中忽略重试成本实际成本高于单次请求的估算在计算中纳入重试率和回退成本
不验证函数调用参数模型输出无效参数执行前务必验证工具调用参数
将上下文窗口视为无限1M token 虽大但并非无限监控上下文使用量;接近限制时进行截断

何时不应使用 Gemini 3.5 Flash

Gemini 3.5 Flash 很强大,但并非万能。在以下场景中应使用其他模型:

场景为何 Flash 不合适更好的选择
图片/音频/视频生成Flash 仅支持文本输出专用生成模型
最高难度的多步推理Pro 提供更深层次的推理链Gemini 3.1 Pro
最低成本的批量提取Flash Lite 输入成本便宜 6 倍Gemini 3.1 Flash Lite
实时语音对话Flash 不支持 Live API支持 Live API 的 Gemini 模型
需要 Computer Use 的浏览器自动化Flash 不支持 Computer Use支持 Computer Use 的 Gemini 路由

常见问题

Gemini 3.5 Flash 的 Model ID 是什么?

Model ID 为 gemini-3.5-flash。在通过 EvoLink 发送 API 请求时使用此精确字符串。

Gemini 3.5 Flash 是免费的吗?

Gemini 3.5 Flash 在 Google Gemini API 有免费层。付费标准价格为输入 $1.50 / 百万 token,输出 $9.00 / 百万 token。上下文缓存和 Batch API 提供更低费率。EvoLink 价格请查看产品页

我可以使用 OpenAI SDK 调用 Gemini 3.5 Flash 吗?

可以。将 OpenAI SDK 指向 https://api.evolink.ai/v1 并设置 model="gemini-3.5-flash"。支持 Python、Node.js、Go 以及任何其他 OpenAI 兼容客户端。

Gemini 3.5 Flash 支持函数调用吗?

支持。函数调用、结构化输出、代码执行和搜索锚定均为原生支持。你可以定义工具,模型会在合适时调用它们。

Gemini 3.5 Flash 与 Gemini 3 Flash 相比如何?

Gemini 3.5 Flash 是当代 Flash 模型,具备前沿级智能、更强的 Agent 和编程性能以及内置推理能力。Gemini 3 Flash 是上一代模型,能力较低但成本也更低(输入 $0.50 vs $1.50 每 MTok)。

上下文窗口有多大?

1,048,576 输入 token 和 65,535 输出 token。足以容纳完整代码库、多文档分析以及长 Agent 对话历史。

Gemini 3.5 Flash 适合编程 Agent 吗?

适合。Google 明确针对编程任务和 Agent 工作流进行了优化。它以 Flash 级速度处理代码生成、调试、重构和多文件分析。一个典型的 20 次迭代调试会话成本约 $0.30–$0.50。

Gemini 3.5 Flash 已可用于生产环境吗?

是的。Google 将其列为正式发布(GA)并可稳定用于大规模生产。它不是预览版或实验性模型。

编程 Agent 会话的成本是多少?

一个典型的 20 次迭代调试会话,约 200K 总输入 token 和约 20K 输出 token,标准定价下约为 $0.49,启用上下文缓存后可根据缓存命中率降低整体会话成本。

我可以在不修改代码的情况下切换 Gemini 模型吗?

可以。使用 EvoLink 时,所有 Gemini 模型共享相同的 API 格式。将 model 参数从 "gemini-3.5-flash" 改为 "gemini-3.1-pro""gemini-3.1-flash-lite" 即可——无需其他更改。

Gemini 3.5 Flash 支持结构化 JSON 输出吗?

支持。使用 response_format={"type": "json_object"} 获取结构化 JSON 响应。这对于数据提取、分类和工具编排非常有用。

下一步

准备好把 AI 成本降低 89% 吗?

现在就开始使用 EvoLink,体验智能 API 路由的强大能力。