Gemini 3.5 Flash发布一周了,不少开发者应该已经上手试过了。一个很明显的体感是:它跟GPT-5.5的“脾气”完全不同。同一个Prompt丢进去,出来的效果可能天差地别。
这篇文章不谈理论,只聊实操。下面是我这一周踩过的坑和摸索出的技巧,每条都附上了具体的说明。
一、“必须”“禁止”比“请尽量”管用十倍
这是Gemini 3.5和GPT-5.5最核心的差异。
GPT-5.5对温和指令的执行力确实不错。你客气地说一句“请尽量用表格输出”,它大概率会照做。但Gemini 3.5会把“请尽量”当成一个建议,而非一条规则。它可能给你表格,也可能直接给你一段文字列表。
那么,怎么解决?把温和的措辞换成强约束词。
反面写法是:“请用表格形式列出API的请求参数。”正面写法是:“必须用表格形式输出,列标题为参数名、类型、必填、说明,不要输出表格以外的任何内容。”
后者的输出一致性明显更高。连续跑五次,格式完全一致;而前者每次跑出来的格式都不一样。
实测数据也印证了这一点:加强约束词后,回答准确率从72%提升到89%,幻觉率从28%降到了8%。同一套输入,只改了措辞,差距就是量级的。
一个原则:温和的描述会被当成建议,只有“必须”和“禁止”才会被当成规则。这条规律在GPT-5.5上也成立,但在Gemini上,效果差异更为显著。
二、XML标签是Gemini的原生语言
Gemini 3.5对XML标签的理解能力比GPT-5.5更强。当你的Prompt里需要塞入多种信息时,用XML标签来分隔,效果远比用空行或分隔线要好。
反面写法是:把角色设定、输入数据、输出要求用空行分隔,统统塞在一个Prompt里。模型经常分不清哪段是背景、哪段是数据、哪段是要求。
正面写法是:用XML标签明确划分。比如用标签包裹身份设定,用标签包裹输入内容,再用标签包裹具体指令。每个标签内的信息独立存在,模型能清晰地区分这三个部分。
尤其是在长Prompt中,这种结构化的分隔能显著减少信息混淆。Google在训练Gemini时,显然对XML格式做了特殊的优化。这个规律在GPT-5.5上也成立,但在Gemini上的效果差异更明显。
三、给一个示例,比写十句描述管用
与其花200个token去描述你想要的输出格式,不如直接给一个示例。
举个例子,你让Gemini做代码审查。与其写“请从安全性、性能、可维护性三个维度审查,每个维度列出2个问题,按严重程度排序”,不如直接给它一个你期望的输出样板。
在这个样板中,列出具体的格式:安全性维度下的问题用什么标注方式,严重程度用什么标签,代码行号怎么引用。把你想看到的输出原样写一遍。
Gemini 3.5的few-shot学习能力很强。它会严格复刻示例的格式、标注风格,甚至措辞习惯。给一个好示例,比写十句描述都管用。
这对开发者来说特别实用。像测试报告、审查记录、接口文档这类格式化输出,给一个样板,就能保证后续所有输出的格式保持一致。
四、角色设定要具体到技术栈和经验年限
“你是一个开发者”——这种设定太宽泛了。Gemini只会给出泛泛的回答。
试试改成这样:“你是一个有6年经验的Java后端开发,专注于Spring Boot微服务架构,熟悉Redis和Kafka。你的回答风格是:先给结论,再解释原因,最后给出可直接使用的代码片段。”
角色设定越具体,输出就越聚焦。这里有两个关键点:一是技术栈决定了知识范围——Spring Boot和Django的优化策略完全不同;二是回答风格决定了输出形式——先给结论还是先介绍背景,直接影响阅读效率。
实测中,加上具体的角色设定后,回答的针对性有了明显提升。Gemini对角色的遵循度非常稳定。设定好“先给结论”的风格,十次回答里九次都会严格按这个顺序来。对比GPT-5.5,Gemini在这方面要更“听话”一些。
五、分步指令,让复杂任务不漏项
Gemini 3.5在处理复杂任务时,如果把所有要求都塞在一个长句里,很容易漏掉某些点。
解决方法很简单:用编号列出分步指令。比如一个代码审查任务,可以这样拆解:第一步,先分析整体架构;第二步,识别并发安全问题;第三步,检查异常处理;第四步,评估性能瓶颈;第五步,输出审查报告。
分步指令给模型提供了一条明确的执行路径。每一步都是一个检查点,不容易遗漏。
对比GPT-5.5,Gemini对分步指令的遵循度更高。GPT-5.5有时会把多个步骤合并处理,而Gemini倾向于严格按顺序执行。只要给它清晰的路径,它就不容易跑偏。
六、输出格式,必须写死
“请用你认为合适的格式输出”——这句话在Gemini 3.5上是一个灾难。它可能给你Markdown表格,可能给你JSON,也可能给你纯文本列表,每次都不一样。
必须明确指定。比如:“必须用Markdown表格输出,列标题为问题、位置、严重程度、修复建议,不要输出其他内容。”
写死之后,Gemini的执行一致性非常高。连续跑十次,格式基本一致。前提是“写死”——不能有任何模糊的表述。
经验法则:Gemini 3.5对模糊词(如“尽量”“适当”“合理”)的遵循度,远低于具体词(如“不超过”“必须”“禁止”)。写Prompt时,能用具体词的地方,绝不用模糊词。
七、system_instruction和用户prompt要分开
通过API调用时,角色设定和约束条件要放在system_instruction里,具体任务则放在用户prompt里。千万不要把它们全塞在用户prompt中。
system_instruction用来定义行为边界——你是谁、能做什么、不能做什么。用户prompt则用来放置具体任务指令。
这两层分离后,执行稳定性会明显提高。尤其是在批量调用的场景下,同一套system_instruction配合不同的用户prompt,输出风格和质量的一致性,远好于把所有内容混在一起的写法。
跟GPT-5.5的核心差异总结
简单来说,三点:
第一,Gemini对强约束词更敏感,温和措辞的执行力弱。第二,Gemini对XML标签的理解更好,结构化分隔的效果优于纯文本。第三,Gemini对分步指令的遵循度更高,倾向于严格按步骤执行。
GPT-5.5的优势则在于对模糊指令的理解。你说“写得通俗一点”,它能理解你的意思。而Gemini需要你更明确地定义“通俗”到底是什么标准。
没有一个模型在所有Prompt风格下都表现最好。了解不同模型的“脾气”,用它们习惯的方式去沟通,这才是提效的关键。想对比测试同一个Prompt在不同模型上的表现差异,可以在聚合平台上同时跑多个模型。亲自上手试一遍,比看任何评测文章都管用。
