Tabbit
活动资源博客模型
Tabbit LogoTabbit

Tabbit — 为你工作的 AI 浏览器

主题资源

  • 浏览器排行榜
  • AI 浏览器指南
  • 浏览器对比
  • 浏览器测评
  • 浏览器替代方案
  • 浏览器专题目录
  • Agentic 浏览器
  • 下载与安装
  • 浏览器效率
  • SillyTavern 模型指南

热门指南

  • Best Browsers 2026: Top 10 Ranked & Compared
  • Best Free AI Browsers 2026: Plans & Prices Compared
  • Rabbit Browser: What It Is & Why Tabbit Is Better
  • Firefox vs Chrome 2026: Privacy, RAM & Speed Compared
  • Best Lightweight Browsers 2026: 7 Tested for RAM & Speed
  • AI Browser List 2026: 10 Browsers Compared
  • Neobrowser: Norton Neo, Download & Alternatives
  • Edge vs Chrome 2026: Speed, RAM & Battery Tested
  • Best Internet Browser for Android 2026
  • Best AI Browser 2026: Top 9 Tested & Ranked

活动

  • 别装了,你在《牛来》里早有原型
  • Tabbit 妙招大赛
  • KPOP SBTI 饭圈人格测试
  • Tabbit 校园共创者计划
  • fifi 的论文文献妙招精选
  • 用户问卷

关于

  • Tabbit 博客
  • 媒体报道
简体中文
简体中文English
提示词与工作流

Gemini 3.8 Flash · configuration

配置可校验的 Gemini 函数调用闭环

让模型提出受限的函数调用,由应用校验并执行,再以 function_result 回传;明确模型建议与真实执行的边界。

来源已核对;未实测Google Gemini Interactions API;需要可控的函数白名单、参数校验、超时和日志策略。

前置条件与输入

  • 工具 schema
  • 授权 API
  • 失败策略
  • 人工确认规则

完整可复制模板

编辑改写:工具调用配置

Tabbit 编辑改写;非来源原文
你是使用 Gemini 3.8 Flash 的工具编排助手。

任务:处理 {{USER_TASK}},仅在工具声明允许时提出函数调用。

工具边界:
- 可用工具及参数严格以 {{TOOL_SCHEMA}} 为准;不要发明函数、参数或权限。
- 先检查函数名白名单、必填字段、类型、长度、枚举和值域。校验失败时不要执行,返回可修正的错误。
- 模型只负责提出 function_call;应用负责执行工具并回传 function_result。不要把建议调用写成已执行,也不要臆造结果。
- 对 {{SIDE_EFFECT_POLICY}} 中的写入、发送、付款、删除或设备控制,先展示目标与参数并等待人工确认;需要时使用幂等键。
- 工具失败、超时或结果不完整时,保留失败状态,说明重试或人工处理路径。

输出格式:
1. intent:理解到的任务。
2. proposed_call:函数名与经过校验的参数;没有必要调用则为 null。
3. execution_state:pending_confirmation、awaiting_result、completed 或 failed。
4. answer:只基于用户资料和工具结果回答。

不要输出 API key、认证头、完整敏感输入或用户身份信息。

运行前仍需替换: {{TOOL_SCHEMA}}, {{USER_TASK}}, {{SIDE_EFFECT_POLICY}}

操作步骤

  1. 在工具 schema 中声明名称、参数类型和必填项,仅暴露任务必需的工具。

  2. 先接入无副作用的 mock 函数。将用户任务、工具列表和确认规则替换进模板。

  3. 通过 Gemini API 的工具调用接口发送请求。模型返回的是调用请求;应用校验名称、参数和权限后才执行。

  4. 把工具结果以当前 SDK 要求的消息格式回传。设定最多调用次数、超时与失败退出策略。

  5. 在测试环境验证后才连接真实工具;客户端 SDK 和 API 参数需按原始文档核对。

输出示意

编辑编写的格式示意,不是实际 API 响应,也不是本模型测试结果:

{"tool":"lookup_stock","arguments":{"item_code":"DEMO-01"},"execution":"mock only"}

验收与失败修正

情况预期处理
未注册工具名称拒绝执行,记录受控错误
缺少必填参数请求补充,不猜值
工具超时有限重试并返回失败状态
写入或删除按应用权限与确认规则执行
循环调用达到调用上限后终止

Google 官方文档证明接口支持,不代表此编辑模板已实测,也不代表模型天然拥有工具访问权限。

查看来源研究笔记

一句话结论

Google 的函数调用文档直接以 model="gemini-3.8-flash" 展示 Python 配置:模型只提出函数名称和结构化实参,应用负责校验并执行函数,再将 function_result 通过 previous_interaction_id 回传。该机制适合把自然语言请求接入受控的外部数据或 API;它不会替应用授予工具权限。

适用场景

  • 适合的任务:查询外部数据、创建图表、预约等需要应用调用 API 的任务;也适合把多个独立函数并行调用,或按依赖顺序串联调用。

  • 不适合的任务:把模型输出直接当成本机命令、付款、发送消息或删除操作;这些动作必须由应用侧白名单、参数校验和人工授权控制。

  • 适用的模型版本:本文只记录该页示例明确写出的 gemini-3.8-flash;不要把其他客户端的模型别名或 SDK 映射当作同一证据。

  • 适用的客户端、Agent 或 API:Google Gemini API 的 Interactions API;页面说明 Interactions API 已正式发布,并建议用它访问最新功能和模型。其他 SDK 需自行核对字段映射。

  • Preview 状态:该函数调用页面未将此流程标为 Preview;这不等于所有 SDK 版本、地区或第三方平台都同步可用,部署前仍需做 smoke test。

可直接使用的内容

1. 工具声明:把能力收敛为可校验的契约

下面保留 Google Python 示例的核心字段,并以只读天气查询作为安全起点:

from google import genai

weather_function = {
    "type": "function",
    "name": "get_current_temperature",
    "description": "Gets the current temperature for a given location.",
    "parameters": {
        "type": "object",
        "properties": {
            "location": {
                "type": "string",
                "description": "The city name, e.g. San Francisco",
            },
        },
        "required": ["location"],
    },
}

client = genai.Client()
interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input="What's the temperature in London?",
    tools=[weather_function],
)

for step in interaction.steps:
    if step.type == "function_call":
        print(f"Function to call: {step.name}")
        print(f"Arguments: {step.arguments}")

声明的最小字段是:type="function"、唯一的 name、清楚的 description、parameters(通常是 object)以及必填参数名组成的 required。参数类型、枚举和值域应与真实函数一致,避免把自然语言描述当作权限控制。

2. 四步调用链:模型提议,应用执行

用户输入 + 工具声明
        ↓
Interactions API 返回 function_call(name, arguments, call_id)
        ↓
应用白名单校验参数,并执行自己的函数
        ↓
以 function_result 回传
        ↓
模型生成最终用户回答,或继续提出下一次工具调用

官方文档明确:模型本身不会执行函数。以下示例展示完整的应用侧闭环;get_current_temperature 的实现应替换为你自己的、已授权的 API 客户端:

import json
from google import genai

weather_function = {
    "type": "function",
    "name": "get_current_temperature",
    "description": "Gets the current temperature for a given location.",
    "parameters": {
        "type": "object",
        "properties": {
            "location": {
                "type": "string",
                "description": "The city name, e.g. San Francisco",
            },
        },
        "required": ["location"],
    },
}

def get_current_temperature(location: str) -> dict:
    # 仅示意:生产代码应调用已授权的天气服务并处理超时/错误。
    return {"location": location, "temperature_c": 18, "source": "example"}

client = genai.Client()
interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input="What's the temperature in London?",
    tools=[weather_function],
)

fc_step = next(s for s in interaction.steps if s.type == "function_call")
if fc_step.name != "get_current_temperature":
    raise ValueError(f"Unexpected function: {fc_step.name}")

location = fc_step.arguments.get("location")
if not isinstance(location, str) or not location.strip():
    raise ValueError("location must be a non-empty string")

result = get_current_temperature(location.strip())
final_interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input=[{
        "type": "function_result",
        "name": fc_step.name,
        "call_id": fc_step.id,
        "result": [{"type": "text", "text": json.dumps(result)}],
    }],
    tools=[weather_function],
    previous_interaction_id=interaction.id,
)

print(final_interaction.output_text)

3. 用户模板:只描述工具边界,不伪造执行结果

这是适配该函数声明的用户输入模板,不是 Google 声称的 system prompt:

任务:回答用户的天气查询。

工具边界:
- 只有在需要实时温度时请求 get_current_temperature。
- 参数只能包含 location,必须是非空城市名。
- 不要臆造工具返回值,也不要声称工具已执行;等待应用返回 function_result。
- 如果工具失败,明确说明查询失败,并返回可重试或人工处理的下一步。

用户问题:
[填写城市和问题]

4. 需要固定工具选择时

文档给出 generation_config 的 tool_choice 控制模式:auto(默认,由模型决定)、any(始终预测函数调用)和 none(禁止函数调用)。在多工具场景,还可以使用 allowed_tools 缩小允许调用的函数集合:

generation_config = {
    "tool_choice": {
        "allowed_tools": {
            "mode": "any",
            "tools": ["get_current_temperature"],
        },
    },
}

只在应用确实希望模型从限定集合中选工具时使用 any;强制函数调用不代表参数已经通过业务校验。

测试/工作流步骤

  1. 在隔离环境配置 Gemini API 凭据;密钥只放环境变量或受保护的密钥存储,不写进提示词和仓库。

  2. 用 exact model gemini-3.8-flash 运行只读天气示例,记录请求是否收到 function_call、函数名、参数类型和 call_id。

  3. 应用侧先检查函数名白名单,再校验必填字段、类型、长度、枚举和值域;校验失败时不要调用外部 API。

  4. 执行函数时设置超时、错误分支和审计字段;将最小必要结果封装为 function_result,通过 previous_interaction_id 回传。

  5. 检查最终回答是否区分“模型建议调用”“应用已执行”和“工具返回结果”;工具失败时应保留错误状态,不补猜数据。

  6. 另测一组需要并行或组合调用的任务;确认只有无副作用且相互独立的函数才并行,存在依赖时按顺序回传。

  7. 对写入、发送、付款、设备控制和删除类工具加入人工确认与幂等键;未经确认不得执行,即使模型发出了合法格式的调用。

原始证据与数据

文档位置Google 可核实内容本文使用方式
预约会议 / 获取天气 / 创建图表示例Python 示例将 model 写为 gemini-3.8-flash,并通过 tools 传入函数声明证明本文使用的 exact model 与函数工具配置来自同一官方页面
函数调用的工作原理流程为定义声明、调用模型、应用执行函数、回传结果;模型不会执行函数形成四步调用链和权限边界
函数声明type、name、description、parameters、required 的字段说明形成可校验的工具契约
函数调用模式auto、any、none,以及限定 allowed_tools 的配置形成工具选择配置
使用思考模型的函数调用 / 多工具使用Gemini 3 系列可在互动中进行并行、组合和多工具调用;SDK 处理思考签名只用于编排测试建议,不推断成功率或权限
页面顶部说明Interactions API 已正式发布,并建议使用该 API 访问最新功能和模型说明 Preview 边界;不外推至所有 SDK 或平台

合法使用与安全边界

  • 仅对自己拥有或已获授权的 API、数据和设备注册工具;工具声明不是授权证明。

  • 函数名和参数必须做应用侧白名单校验。模型返回的 arguments 是不可信输入,不能直接拼接 SQL、shell、URL 或付款请求。

  • 预约、发邮件、控制设备、写入数据库、付款和删除等副作用操作,先展示目标、参数和风险,等待人工确认;必要时加幂等键和重放保护。

  • 工具结果也属于外部输入,可能过期、错误或含提示注入。只回传完成任务所需的最小字段,并保留来源、时间和错误状态。

  • 日志只保存必要的调用元数据;不要记录 API key、认证头、邮箱、手机号、用户 token 或完整的敏感请求原文。

  • previous_interaction_id 只用于关联互动上下文,不应被当作权限令牌。访问权限、速率限制、审计和人工接管仍由应用负责。

  • 页面示例不构成生产质量或安全保证。上线前须在沙箱中验证工具选择、参数拒绝、超时、重试、取消和人工接管路径。

来源摘录或观察(合规短引)

该文档将函数调用定义为“自然语言与实际操作和数据之间的桥梁”,并强调执行函数是应用的责任。最重要的工程含义是:把模型的 function_call 当作待审核的结构化请求,而不是已经发生的外部动作。

来源与日期

Google AI for Developers · 原文日期: 未公开 · 编辑日期: 2026-09-20

阅读原始来源
变量检查

仍需替换: 3

{{TOOL_SCHEMA}}{{USER_TASK}}{{SIDE_EFFECT_POLICY}}

相关提示词

把资料抽取成可校验 JSON把产品规格拆成可交付的编码任务配置 Gemini 3.8 Flash API用结构化提示拆解 Agent 任务

相关测评

Google 官方发布基准:相对前代的提升与复现边界Vals AI Finance Agent v2:金融检索与分析Arena.ai:High 档的 Agent、文本与 WebDev 排名Reddit:代码仓库短任务与自主边界

模型深度阅读

总览 · 简体中文

Gemini 3.8 Flash:有哪些变化,如何获取

以官方资料说明 Gemini 3.8 Flash 的定位、与 3.7 的变化、获取方式、限制、价格时点和适用场景。

完整测评 · 简体中文

Gemini 3.8 Flash 评测:能力很强,但是否值得用取决于任务

基于公开证据评测 Gemini 3.8 Flash,分析推理档位、基准数据、速度、成本、社区反馈和适用工作负载。

定价 · 简体中文

Gemini 3.8 Flash 价格:2027 年费率翻倍与任务成本

用公式和算例解释 Gemini 3.8 Flash 的输入、输出、thinking、缓存、Batch 与 Flex 费用。

替代品 · 简体中文

Gemini 3.8 Flash 替代方案:按任务与预算选择模型

按完成任务成本、响应路径、工具、上下文和部署适配,比较四个 Gemini 3.8 Flash 替代方案。

Gemini 3.8 Flash

在 Tabbit 中使用 Gemini 3.8 Flash

请在上方所列环境中运行本指南。下载不会自动传入模板,也不代表账户已开放该模型。