Gemini 2.5 隐藏功能揭秘:你可能不知道的用法
一个真实的问题让我发现了这些功能
上个月我接手了一个老项目的维护工作,前端是五年前写的 React 代码,后端是 Node.js,加起来差不多八万行。客户要求把整个认证系统从 session 迁移到 JWT,还要保留旧的登录方式做兼容。
我先把关键文件导出到 Gemini 2.5 Pro 里分析。说实话,一开始我只是把它当普通的聊天工具用——贴代码、问问题。直到有一次我随手把一个 700 行的 authService.js 直接拖进了对话框,它不仅完整读懂了,还指出了文件里一个我从没注意到的循环依赖问题。那一刻我意识到,我可能只用到了这个工具 30% 的能力。
接下来几周,我系统地把 Gemini 2.5 的各种功能翻了个遍,踩了不少坑,也发现了几个官方文档里写得含糊、但实际非常好用的能力。下面按我的使用频率排序,逐个讲。
一、超长上下文:不只是“能塞进去”,而是“会分析”
Gemini 2.5 Pro 支持 100 万 token 的上下文窗口。这个数字大家都听过,但很多人不知道怎么用好它。
我的实际做法:我把整个项目的 src 目录打包成 zip 直接上传了。它处理大约 400 个文件没问题。然后我问:
这个项目中所有直接操作数据库的函数,列出文件名、函数名、
以及是否有参数化查询。用表格输出。
它返回了一张 40 多行的表格,其中标出了 3 处字符串拼接的 SQL。我人工核对了那三处——两处确实是隐患,一处是内部工具代码可以接受。这个准确率对安全审计的初筛来说已经很值了。
踩过的坑:上下文长不代表可以无限堆。我发现当上传内容超过大约 30 万 token 后,对细节的召回会明显变差,尤其是代码中间部分的函数名可能会记混。所以我的经验是:大仓库分模块上传,每次控制在 10 万 token 以内,效果远好于一次性全塞。
二、思考预算(Thinking Budget):被大多数人忽略的开关
这是 2.5 系列最有价值的新特性之一。你可以通过 API 参数控制模型的“思考”程度:
from google import genai
from google.genai import types
client = genai.Client(api_key="YOUR_KEY")
response = client.models.generate_content(
model="gemini-2.5-pro",
contents="分析这段并发代码是否存在死锁风险:...",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(
thinking_budget=8192
)
)
)
实测对比:我拿 20 道有陷阱的算法题测试,thinking_budget=0(关闭思考)时答对 13 道,budget=8192 时答对 18 道。但思考开启后响应时间从 3 秒涨到 15 秒左右。
所以我的用法是分场景:
- 代码补全、格式转换、简单问答:关掉思考,省时间省钱
- 架构设计、并发问题、复杂 debug:给足预算
- Flash 模型的思考预算设为 24576 可以达到接近 Pro 的推理质量,这是我最近才试出来的——日常开发中大部分复杂问题 Flash + 高思考预算就够了,成本只有 Pro 的几分之一。
三、原生多模态:视频分析是我用得最狠的功能
大多数人知道它能看图,但直接上传视频并分析这个能力用的人不多。
上周我在调一个 UI 动画 bug,复现步骤依赖特定的滚动和点击顺序,文字描述根本说不清。我直接录了一段 40 秒的屏幕录像上传,然后问:
视频里 0:12 到 0:18 之间,侧边栏的展开动画卡顿了。
分析可能的原因。我的动画实现代码如下:[贴代码]
它准确地描述了视频中的时间线——侧边栏在展开时宽度变化和阴影渐变同时触发,然后指出我的代码里 transition 同时作用于 width 和 box-shadow,建议把阴影改用 will-change 预渲染或换成 transform 方案。改完之后动画确实流畅了。
这个能力我还用在:看会议录像让生成纪要和行动项、分析用户反馈的操作录屏。支持到 45 分钟左右的视频,更长的需要切片。
四、结构化输出(Structured Output):让输出可以直接进代码
如果你的工作流需要程序处理 Gemini 的回答,一定要用 response_schema,别再费劲解析自然语言了:
schema = types.GenerateContentConfig(
response_mime_type="application/json",
response_schema={
"type": "OBJECT",
"properties": {
"bugs": {
"type": "ARRAY",
"items": {
"type": "OBJECT",
"properties": {
"file": {"type": "STRING"},
"line_estimate": {"type": "INTEGER"},
"severity": {"type": "STRING"},
"description": {"type": "STRING"},
},
"required": ["file", "severity", "description"],
},
}
},
},
)
返回的就是严格符合 schema 的 JSON,直接 json.loads 就能用。我现在的代码审查流水线就是靠这个,每个 PR 自动过一遍,结果写进数据库。
五、URL Context 与代码执行:让它自己查、自己算
在 AI Studio 里打开 URL Context 工具后,你可以让它读取网页实时内容。我经常拿它做“技术方案调研”:
读取 https://example-docs.com/library-v3/migration 这篇迁移指南,
对比我现在的 v2 用法 [贴代码],列出所有需要改动的点。
代码执行工具则是让它在沙箱里真的跑 Python。有一次我怀疑自己算的一个缓存 TTL 策略有问题,让它直接写模拟脚本验证两个策略在 10 万次随机请求下的命中率差异——它跑了脚本,给出了具体的数字对比,比让它“心算”可靠得多。
六、一个冷门但好用的技巧:用系统指令固化你的规范
很多人每次对话都重复贴代码规范。其实可以写一份系统指令,比如:
你是我团队的资深代码审查者。规则:
1. 所有回答用中文,代码注释用英文
2. 指出问题时给出修复代码,不要只说"建议修改"
3. 涉及安全的回答要引用 OWASP 条目
4. 不确定时明确说"我不确定",不要编造 API
存成模板后新建对话直接套用,团队里统一这份模板,所有人得到的回答风格就一致了。第 4 条特别重要——明确要求它承认不确定性后,编造 API 的情况明显减少。
实用建议与诚实的局限
给你的几条建议:
- Flash + 高思考预算是性价比最高的组合,先试它,不够再上 Pro
- 长上下文按模块切分上传,别迷信 100 万 token
- 需要程序化处理输出时,永远用 Structured Output,不要解析自然语言
- 视频、音频直接传原件,别自己转文字——原生多模态保留的信息更多(比如视频里的画面细节)
局限也要说清楚:
- 超长上下文中段的召回精度确实会下降,关键信息尽量放在开头或结尾
- 代码执行沙箱有超时限制,跑不了长时间的大规模模拟
- 视频分析对快速切换的画面有时会漏帧,关键操作建议放慢录制
- URL Context 偶尔读不到需要登录的页面,这种就得自己贴内容了
总体来说,Gemini 2.5 最打动我的不是某个单一功能,而是这些能力组合起来后,它能真正介入我开发流程的多个环节——从审计、调试到流水线自动化。花一个下午把这些功能摸熟,绝对是值得的投入。