# Gemini 3.1 Pro Customtools：构建可靠 AI 智能体的完整指南（2026）

> Gemini 3.1 Pro Customtools 是 Google 推出的专用模型变体，它会优先调用你注册的自定义工具而非 bash 命令。本指南涵盖标准版与 customtools 版的行为差异、生产级 AI 智能体的构建代码、动态路由策略，以及经过验证的定价数据，助你全面掌握这一强大工具。

- URL: https://blog.laozhang.ai/zh/posts/gemini-3-1-pro-customtools
- Published: 2026-02-22
- Updated: 2026-02-22
- Author: LaoZhang AI Team (https://blog.laozhang.ai/zh/about)
- Topic: Gemini 与 Google AI
- Tags: Gemini 3.1 Pro, Customtools, AI 智能体, 函数调用, Google AI

---
Google 于 2026 年 2 月 19 日发布了 Gemini 3.1 Pro，同时推出了一个名为 `gemini-3.1-pro-preview-customtools` 的专用变体，从根本上改变了模型与开发者定义工具的交互方式。如果你一直在使用标准版 Gemini 3.1 Pro 构建 AI 智能体，并注意到它有时会忽略你精心注册的自定义工具，转而执行原始 bash 命令，那么 customtools 变体正是为解决这个问题而生的。两个变体的定价完全一致，输入 $2.00、输出 $12.00（每百万 token，数据来源：[Google 官方定价页面](https://ai.google.dev/gemini-api/docs/pricing)，2026 年 2 月 22 日验证），上下文窗口同为 1,048,576 个 token，ARC-AGI-2 推理评分均为 77.1%。唯一的区别在于行为层面：customtools 变体会优先使用你注册的函数。

## 要点速览

Gemini 3.1 Pro Customtools（`gemini-3.1-pro-preview-customtools`）并非一个不同的模型，而是 2026 年 2 月 19 日发布的一个经过行为微调的变体。它与标准版价格相同，基准测试表现一致，切换时只需修改一行模型 ID。当你构建的 AI 智能体需要使用 `view_file`、`search_code` 或 `edit_file` 等自定义工具，并且希望模型始终调用你注册的函数而非默认使用 bash 命令时，就应该选择这个变体。如果你的应用场景是纯对话或不涉及自定义工具的 RAG 应用，那么继续使用标准版 `gemini-3.1-pro-preview` 即可。

## Gemini 3.1 Pro 是什么？为什么 Customtools 变体如此重要

Gemini 3.1 Pro 是 Google DeepMind 截至 2026 年 2 月最先进的推理模型，专为需要多步思考和精确执行的复杂问题求解任务而设计。该模型在 ARC-AGI-2 基准测试中取得了 77.1% 的成绩，这一测试衡量的是抽象推理能力。为了便于理解这个分数的含义，它比前代 Gemini 3 Pro（31.1%）的得分高出一倍以上，同时也超越了 GPT-5.2（52.9%）和 Claude Opus 4.6（68.8%）在同一测试上的表现（[Google Blog](https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-1-pro/)，2026 年 2 月 19 日）。该模型支持多模态输入，包括文本、图像、视频、音频和 PDF 文件，不过目前输出仅限文本格式。

Gemini 3.1 Pro 对开发者来说特别重要的一点在于它对智能体工作流的深度优化。Google 明确表示该模型针对"软件工程行为和可用性"以及"需要精确工具使用和可靠多步执行的智能体工作流"进行了优化（[Google AI Docs](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview)，2026 年 2 月）。这正是 customtools 变体发挥作用的场景。当 Google 内部使用 Gemini 3.1 Pro 构建智能体时，他们发现标准模型有时更倾向于直接执行 bash 命令，而非使用开发者注册的自定义工具。举个例子，即使你已经注册了一个包含权限控制和结构化日志的 `view_file` 工具，标准模型也可能直接运行 `cat filename.py`，从而完全绕过你的所有安全控制。customtools 变体正是通过优先使用你定义的工具来解决这个问题。

这种区分之所以重要，是因为自定义工具远不只是 bash 命令的简单封装。在生产级智能体系统中，自定义工具通常包含权限验证、结构化输出格式化、审计日志记录、速率限制以及与数据库和 API 等外部系统的集成。当模型绕过这些工具直接使用 bash 时，开发者围绕智能体架构构建的整个安全性和可观测性层都会被打破。如果你正在构建任何通过 API [免费访问 Gemini 3.1 Pro](https://blog.laozhang.ai/zh/posts/gemini-3-1-pro-preview-free-api) 并连接自定义工具定义的系统，理解这种行为差异对于智能体的可靠运行至关重要。

## 标准版 vs Customtools：真正的行为差异

![标准版与 customtools 变体关键差异对比图](https://blog.laozhang.ai/posts/zh/gemini-3-1-pro-customtools/img/comparison.png)

`gemini-3.1-pro-preview` 和 `gemini-3.1-pro-preview-customtools` 之间的根本区别不在于能力、定价或上下文窗口大小，这些完全相同。差异完全在于当模型同时拥有 bash 访问权限和自定义工具时，它如何确定工具调用的优先级。理解这种行为差异对于在智能体系统中做出正确的架构决策至关重要。

**标准版的行为方式**

当你向标准版 Gemini 3.1 Pro 注册自定义工具并要求它执行任务时，模型会将 bash 命令和你的自定义工具视为大致相同的选项。它可能会选择它认为最高效的路径来完成任务，这通常意味着默认使用熟悉的 bash 模式。假设你注册了三个自定义工具：用于带权限检查读取文件的 `view_file(path)`、用于带结构化输出搜索代码库的 `search_code(query)`，以及用于带版本追踪编辑文件的 `edit_file(path, changes)`。当你要求标准模型"找出并修复 auth.py 中的身份验证 bug"时，它可能会执行 `cat auth.py` 而非调用 `view_file("auth.py")`，使用 `grep -r "password" .` 而非 `search_code("password vulnerability")`，最后运行 `sed -i 's/old/new/' auth.py` 而非 `edit_file("auth.py", changes)`。每条 bash 命令都能完成即时任务，但没有一条会触发你的权限检查、生成结构化输出或创建审计日志。

**Customtools 版的行为方式**

customtools 变体使用相同的底层推理能力，但经过微调后能够识别已注册的自定义工具是否匹配当前任务。在上述同样的场景中，customtools 模型会始终首先调用 `view_file("auth.py")`，这会触发你的权限验证并返回结构化的文件内容。然后它会使用 `search_code("authentication vulnerability patterns")` 进行搜索，确保结构化日志正常工作。最后调用 `edit_file("auth.py", proposed_changes)`，通过你的版本控制集成完成编辑。这样每个操作都会流经你设计的安全层，而非绕过它。

**质量方面有什么权衡？**

Google 的官方文档包含一个重要说明：customtools 变体"在某些不需要此类工具的使用场景中可能出现质量波动"（[Google AI Docs](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview)，2026 年 2 月）。从实际角度来说，这意味着如果你在没有注册任何自定义工具的情况下使用 customtools 变体（例如纯对话、摘要生成或创意写作），与标准版相比，输出质量可能会略有不一致。将模型偏向工具选择的微调在没有工具适用时会产生轻微的内部张力，导致输出偶尔不够精炼。因此推荐的策略是：customtools 专门用于智能体工作负载，标准版用于其他一切场景，或者在两者之间实现动态路由。

| 特性 | 标准版 | Customtools 版 |
|------|--------|---------------|
| 模型 ID | `gemini-3.1-pro-preview` | `gemini-3.1-pro-preview-customtools` |
| 工具优先级 | 可能绕过自定义工具使用 bash | 优先使用自定义工具 |
| 通用质量 | 所有任务表现一致 | 非工具场景可能有波动 |
| 定价 | $2.00 / $12.00 每百万 token | $2.00 / $12.00 每百万 token |
| 上下文窗口 | 1,048,576 tokens | 1,048,576 tokens |
| 最佳用途 | 对话、RAG、通用 AI 任务 | AI 智能体、编码助手 |

## 何时应该使用 Customtools？决策框架

选择标准版还是 customtools 变体不是一个放之四海而皆准的决定，而是一个取决于你具体用例、工具架构和生产需求的情境性判断。与其对所有场景默认使用某个变体，更有效的做法是根据一套清晰的标准评估每个场景，并据此路由请求。

**当你的应用满足以下条件时，应该使用 customtools 变体。** 首先，你注册的自定义工具包含了安全控制、日志记录或超出原始 bash 命令所能提供的结构化输出。如果你的自定义工具只是 bash 命令的简单封装，没有任何额外逻辑，那么标准版同样适用，因为模型调用你的封装和直接执行命令之间没有实质性差别。其次，你正在构建一个智能体循环，模型需要进行多次顺序工具调用，且一个工具的输出会作为下一个工具的输入。在多步工作流中，工具跳过会打断数据管道，因为下游步骤期望接收结构化的工具输出，而非原始 bash 文本。第三，你的智能体系统运行在生产环境中，可审计性和权限控制至关重要。如果你无法承受模型偶尔绕过访问控制的风险，customtools 变体是更安全的选择。

**在以下场景中应该继续使用标准版。** 没有注册任何工具的纯对话界面不会从 customtools 中获益，因为微调在无工具的上下文中没有优化目标，反而可能略微降低通用输出质量。检索增强生成（RAG）应用中，模型检索上下文并生成回答而不调用外部工具，使用标准版更合适。对于 bash 绕过无害的单一用途工具（例如 `cat` 和 `view_file` 产生完全相同结果的简单文件读取智能体），不值得为此付出潜在的质量代价。最后，对延迟敏感的应用需要注意，虽然两个变体的响应时间相似，但 customtools 变体倾向于调用工具而非 bash，这取决于你的工具实现可能增加工具执行开销。

**判断何时切换的诊断清单很直接。** 如果你观察到模型在已注册 `view_file` 的情况下频繁使用 `cat`，在 `search_code` 可用时使用 `grep`，在 `edit_file` 存在时使用 `sed`，这些都是切换到 customtools 的明确信号。你可以通过在智能体框架中记录工具调用与 bash 执行的比例来检测这种模式。当 bash 使用量超过本可由已注册工具处理的操作总量的 30% 时，切换到 customtools 将显著提升你的智能体可靠性和可审计性。

## 使用 Customtools 构建你的第一个智能体

![智能体架构图，展示 customtools 变体如何通过 view_file、search_code 和 edit_file 函数处理工具调用](https://blog.laozhang.ai/posts/zh/gemini-3-1-pro-customtools/img/architecture.png)

从理论到实践，以下是一个使用 Gemini 3.1 Pro customtools 变体构建的完整可运行 AI 智能体示例。这不是一个简化的代码片段，而是一个你可以根据自己的用例进行调整的功能完备的智能体循环。该智能体定义了三个自定义工具，通过迭代循环处理用户请求，并以完善的错误管理机制执行工具调用。

**搭建基础框架**

这个实现使用了 Google 官方的 `google-genai` Python SDK。从标准版切换到 customtools 版唯一需要的更改就是将模型 ID 字符串从 `gemini-3.1-pro-preview` 更新为 `gemini-3.1-pro-preview-customtools`。无需其他代码改动，因为两个变体共享相同的 API 接口、输入格式和工具定义模式。

```python
from google import genai
from google.genai import types

client = genai.Client(api_key="YOUR_API_KEY")

# Define custom tools with structured schemas
tools = [
    types.Tool(function_declarations=[
        types.FunctionDeclaration(
            name="view_file",
            description="Read a file with permission validation and structured output",
            parameters=types.Schema(
                type="OBJECT",
                properties={
                    "path": types.Schema(type="STRING", description="File path to read"),
                },
                required=["path"]
            )
        ),
        types.FunctionDeclaration(
            name="search_code",
            description="Search codebase for patterns with structured results",
            parameters=types.Schema(
                type="OBJECT",
                properties={
                    "query": types.Schema(type="STRING", description="Search query"),
                    "file_pattern": types.Schema(type="STRING", description="File glob pattern"),
                },
                required=["query"]
            )
        ),
        types.FunctionDeclaration(
            name="edit_file",
            description="Edit a file with version tracking and validation",
            parameters=types.Schema(
                type="OBJECT",
                properties={
                    "path": types.Schema(type="STRING", description="File path to edit"),
                    "old_content": types.Schema(type="STRING", description="Content to replace"),
                    "new_content": types.Schema(type="STRING", description="Replacement content"),
                },
                required=["path", "old_content", "new_content"]
            )
        ),
    ])
]
```

**智能体循环**

任何智能体系统的核心都是执行循环：发送请求、处理工具调用、执行工具、将结果反馈给模型，直到任务完成。使用 customtools 变体，你可以放心地相信模型会始终选择你注册的工具，而不会尝试执行 bash 命令。

```python
def run_agent(user_request: str, max_iterations: int = 10):
    """Execute an agent loop with the customtools variant."""
    messages = [
        types.Content(role="user", parts=[types.Part(text=user_request)])
    ]

    for iteration in range(max_iterations):
        response = client.models.generate_content(
            model="gemini-3.1-pro-preview-customtools",  # Key: use customtools
            contents=messages,
            config=types.GenerateContentConfig(
                tools=tools,
                temperature=0.1,  # Low temperature for deterministic tool calls
            )
        )

        # Check if model wants to call tools
        if response.candidates[0].content.parts[0].function_call:
            tool_call = response.candidates[0].content.parts[0].function_call
            result = execute_tool(tool_call.name, dict(tool_call.args))

            # Feed tool result back to model
            messages.append(response.candidates[0].content)
            messages.append(types.Content(
                role="user",
                parts=[types.Part(function_response=types.FunctionResponse(
                    name=tool_call.name,
                    response={"result": result}
                ))]
            ))
        else:
            # Model returned a text response - task complete
            return response.candidates[0].content.parts[0].text

    return "Max iterations reached"
```

这种模式之所以能够可靠运行，是因为 customtools 变体理解当你注册了 `view_file`、`search_code` 和 `edit_file` 时，这些就是文件操作的首选机制。模型会为每次工具调用构建正确的参数，而不是试图通过 bash 完成相同的任务。你的 `execute_tool` 函数负责处理实际逻辑，包括权限检查、日志记录和结构化响应格式化，这些是生产可靠性所必需的。

## 高级模式：动态路由与多工具协调策略

在你拥有一个使用 customtools 的工作智能体之后，下一层级的复杂度涉及动态模型路由和多工具协调。这些模式正是区分基础智能体实现与生产级系统的关键所在。

**动态模型路由**

使用 Gemini 3.1 Pro 最强大的模式是根据每个任务的性质，在标准版和 customtools 变体之间进行动态路由。这消除了质量权衡的顾虑，因为工具密集型任务会路由到 customtools，而纯对话则使用标准模型。路由逻辑会检查已注册的工具是否与当前请求相关。

```python
def route_to_model(request: str, has_tools: bool, tool_names: list) -> str:
    """Dynamically select the optimal model variant."""
    # If no tools registered, always use standard
    if not has_tools:
        return "gemini-3.1-pro-preview"

    # Keywords suggesting tool-use scenarios
    tool_indicators = ["file", "code", "search", "edit", "find", "fix",
                       "analyze", "debug", "modify", "create", "delete"]

    needs_tools = any(indicator in request.lower() for indicator in tool_indicators)

    if needs_tools:
        return "gemini-3.1-pro-preview-customtools"
    else:
        return "gemini-3.1-pro-preview"
```

这种路由方式对于同时服务智能体和对话工作负载的应用特别有效。例如，一个编码助手可以通过 customtools 处理工具密集型的调试请求，同时通过标准变体处理解释类查询。由于两个变体的定价和上下文窗口完全相同，路由不会增加任何成本开销，同时能在不同任务类型间实现最佳质量。

**多工具协调**

当构建拥有五个或更多自定义工具的智能体时，工具选择就成为一个协调问题。customtools 变体能够很好地处理这一情况，因为它会在选择每一步最合适的工具之前评估所有已注册的工具。关键设计原则是让工具描述精确且互不重叠，以便模型能清楚地区分它们。每个工具应该有不与其他工具重叠的独特用途，描述不仅要说明工具做什么，还要说明何时应该使用它。例如，应该区分 `read_file`（读取整个文件）和 `read_lines`（读取特定行范围），而非使用一个通用的 `read` 工具。构建[多智能体 AI 架构](https://blog.laozhang.ai/zh/posts/claude-4-6-agent-teams)等系统通常需要精心设计工具边界，以防止模型在工具选择过程中产生混淆。

**并行工具执行**

Gemini 3.1 Pro 支持并行函数调用，即模型可以在单次响应中请求多个工具调用。使用 customtools 变体，你可以确信所有并行调用都将使用你注册的工具，而非混合使用 bash 命令和工具调用。处理并行调用时，需要检查响应中是否有多个 `function_call` 部分，并并发执行它们。

## 质量权衡与你需要了解的局限性

对 customtools 变体的局限性保持透明对于做出明智的架构决策至关重要。每个工程选择都涉及权衡，提前理解这些权衡可以避免在生产环境中出现意外。

**质量波动的现实情况**

Google 关于"在某些不需要此类工具的使用场景中可能出现质量波动"的警告值得从实际角度进行分析，而不仅仅是引用。在实际使用中，这种情况在特定场景下会显现。当 customtools 变体处理一个没有相关工具注册的请求时（例如创意写作提示或通用知识问题），其响应质量可能比标准版略微不够一致。这是因为将模型偏向工具使用的微调在没有工具适用时会产生轻微的内部张力，导致输出偶尔不够精炼。这种效果是微妙的，并非灾难性的。在大多数交互中你不会注意到它，但在对数百个提示进行系统性评估时，标准版在非工具响应方面会产出更加均匀的高质量结果。

**实际建议非常明确。** 不要将 customtools 变体作为所有任务的默认模型。仅在注册了自定义工具且期望使用这些工具的智能体工作负载中使用它。对于其他所有场景，标准变体能提供更一致的结果。如果你的应用同时处理两种类型的工作负载，请实现前面章节中描述的动态路由模式。

**预览状态的注意事项**

`gemini-3.1-pro-preview` 和 `gemini-3.1-pro-preview-customtools` 都带有"preview"（预览）标识，这意味着 Google 可能会在正式发布（GA）之前更新模型的行为。对于生产部署而言，这意味着你应该为潜在的行为变化做好准备，并在新模型版本发布时测试你的智能体系统。Google 的通常模式是在两到四个月内从预览版过渡到稳定版，因此 Gemini 3.1 Pro（包括 customtools 变体）的 GA 版本预计将在 2026 年中期发布。

**功能限制**

无论使用哪个变体，Gemini 3.1 Pro 模型都有一些影响智能体设计的特定限制。它不支持图像生成、音频生成或用于实时流式交互的 Live API。它的知识截止日期为 2025 年 1 月，这意味着除非你通过工具或搜索 Grounding 提供上下文，否则它可能不了解该日期之后的事件。对于需要最新信息的应用，启用 Google Search Grounding 在每月前 5,000 次免费提示之后会增加每 1,000 次查询 $14 的费用，这对于高流量智能体部署来说可能带来显著的成本增加。

## 定价、成本优化与 API 接入

![Gemini 3.1 Pro 定价详解，包含标准版、批量处理及竞品对比与成本优化策略](https://blog.laozhang.ai/posts/zh/gemini-3-1-pro-customtools/img/pricing.png)

了解完整的定价全貌对于预算智能体工作负载至关重要，尤其是因为 AI 智能体由于其多步执行模式，通常比对话应用消耗显著更多的 token。本节所有定价数据均于 2026 年 2 月 22 日通过实时页面检查直接从 [Google 官方定价页面](https://ai.google.dev/gemini-api/docs/pricing)验证。

**标准定价**

`gemini-3.1-pro-preview` 和 `gemini-3.1-pro-preview-customtools` 的标准定价完全相同。对于不超过 200,000 个 token 的提示，输入 token 成本为每百万 $2.00；超过此长度的提示为每百万 $4.00。输出 token（包括模型推理过程中的思考 token）标准提示为每百万 $12.00，超过 200,000 个 token 的提示为每百万 $18.00。Gemini 3.1 Pro 没有免费套餐，这是与提供免费套餐的 Gemini 3 Flash 的一个重要区别。希望零成本体验 Gemini 3.1 Pro 的开发者可以直接通过 [Google AI Studio](https://aistudio.google.com/) 访问它，但编程 API 访问需要付费 API 密钥。如需全面了解接入选项，请查看详细的 [Gemini API 速率限制与配额指南](https://blog.laozhang.ai/zh/posts/gemini-api-rate-limits-guide)。

**适用于智能体工作负载的 Batch API**

Batch API 在所有 token 价格上提供直接的 50% 折扣，将输入成本降至每百万 $1.00，输出降至每百万 $6.00。对于不需要实时响应的智能体工作负载，例如批量代码分析、自动文档生成或定期维护任务，Batch API 在不影响输出质量的情况下将成本减半。代价是更高的延迟，因为批量请求是异步处理的，但对于许多智能体用例来说，这种延迟完全可以接受。

**用于重复提示的上下文缓存**

上下文缓存是对处理同一大型上下文的多个请求的智能体系统最具影响力的成本优化手段。你可以将完整的系统提示、工具定义和上下文缓存起来，在后续调用中引用，而无需每次请求都发送这些内容。缓存的输入 token 成本仅为每百万 $0.20，相比标准的每百万 $2.00 降低了 90%。存储成本为每百万 token 每小时 $4.50，因此缓存对于在短时间窗口内处理多个请求的智能体最为划算。对于一个每小时处理 100 个请求、系统提示为 50,000 个 token 的智能体，与每次发送完整提示相比，缓存每小时可节省约 $9.90。

对于希望以便捷方式将 Gemini 3.1 Pro 集成到应用中的开发者，[laozhang.ai](https://docs.laozhang.ai/) 等服务提供了跨多个 AI 模型的统一 API 接入和具有竞争力的定价，使得在不更改代码库的情况下对比和切换不同模型提供商变得非常简单。

**与竞品的成本对比**

Gemini 3.1 Pro 在前沿模型市场中占据了具有竞争力的定价位置。以每百万 token $2.00/$12.00 的价格，它比 Claude Opus 4.6（$15/$75 每百万 token）便宜得多，同时在基准测试中取得了可比的成绩。与 GPT-5.2（$2.50/$10.00）相比，Gemini 3.1 Pro 的输入价格更低但输出价格更高，因此成本比较取决于你的输入输出比例。对于输出量大的典型智能体工作负载，将 Gemini 3.1 Pro 的批量定价（$1/$6）与上下文缓存相结合，可以打造目前最具成本效益的前沿模型配置之一。

## 开始使用：你的行动方案

在你的项目中实施 Gemini 3.1 Pro Customtools 有一条清晰的路径。首先确认你的用例是否真正受益于 customtools 变体，方法是检查标准模型是否有时会绕过你的自定义工具。如果你正在从零开始构建新的智能体，建议直接使用 customtools 变体，以避免后续发现工具跳过问题。

**你的下一步行动应按以下顺序进行。** 第一步，通过 [Google AI Studio](https://aistudio.google.com/) 设置 API 访问并获取付费套餐的 API 密钥，因为 Gemini 3.1 Pro 没有免费 API 套餐。第二步，用清晰、互不重叠的描述定义你的自定义工具，帮助模型区分它们。第三步，按照本指南的智能体循环模式实现代码，先从简单的两工具配置开始，再扩展到更复杂的方案。第四步，如果你的应用同时处理工具密集型和无工具请求，添加动态路由逻辑。第五步，进入生产环境后为系统提示和工具定义启用上下文缓存以降低成本。

如需最新的技术规格，请始终参考官方的 [Gemini 3.1 Pro 文档](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview)和[函数调用指南](https://ai.google.dev/gemini-api/docs/function-calling)。由于该模型仍处于预览阶段，Google 可能会在正式发布前调整行为和功能，因此建议在生产部署中持续关注官方更新日志。

## 常见问题

### customtools 变体比标准版更贵吗？

不会。`gemini-3.1-pro-preview` 和 `gemini-3.1-pro-preview-customtools` 的定价完全相同，输入 $2.00、输出 $12.00 每百万 token（Google 官方定价，2026 年 2 月）。两个变体之间零成本差异。

### 可以在不注册任何工具的情况下使用 customtools 吗？

技术上可以，但没有任何好处。没有注册工具时，customtools 变体的行为与标准版完全相同，但在非工具任务上可能表现出略低的质量。如果你没有自定义工具，请使用标准变体。

### 如何在现有代码中从标准版切换到 customtools？

将模型参数从 `gemini-3.1-pro-preview` 改为 `gemini-3.1-pro-preview-customtools` 即可。无需其他代码更改。API 接口、工具定义和响应格式完全相同。

**customtools 变体在免费套餐中可用吗？**

不可以。Gemini 3.1 Pro 两个变体都没有免费 API 套餐。你可以在 Google AI Studio 中免费测试，但编程 API 访问需要付费账户。如需了解 [Gemini API 的免费套餐选项](https://blog.laozhang.ai/zh/posts/gemini-api-free-tier)，Gemini 3 Flash 仍然可以免费使用。

**customtools 变体会一直可用吗？**

两个变体目前都处于预览阶段。Google 通常在两到四个月内将预览模型过渡到正式发布（GA）。customtools 变体可能在 GA 版本中合并到标准模型中，也可能作为独立端点继续维护。请关注 Google 的官方公告获取更新信息。

## 参考来源

本文引用的外部页面，按正文出现顺序排列。最后更新于 2026-02-22。

- [Google 官方定价页面](https://ai.google.dev/gemini-api/docs/pricing) (ai.google.dev)
- [Google Blog](https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-1-pro/) (blog.google)
- [Google AI Docs](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview) (ai.google.dev)
- [Google AI Studio](https://aistudio.google.com/) (aistudio.google.com)
- [函数调用指南](https://ai.google.dev/gemini-api/docs/function-calling) (ai.google.dev)
