使用 Gemini 系统指令保持行为一致,但不要把它当作安全边界。
Gemini 系统指令会先于用户提示词处理,可在交互中持续引导角色、语气、上下文、规则和输出格式。它能改善一致性,却不能保证事实正确、防止提示词注入或安全保存密钥。
系统指令可以控制什么
角色与身份
定义助手采用的视角、受众、专业程度和沟通风格。
目标与规则
声明持续生效的优先级、边界、升级处理方式和不确定性表达方式。
输出格式
要求多轮对话统一使用指定标题、Markdown 规则、字段名称或响应结构。
共享上下文
提供对整个交互有效的术语和业务背景,但不要包含秘密信息。
分离长期规则与当前任务
把稳定行为放入系统指令,把当前请求和数据放入用户消息,避免应用政策与用户资料意外混合。
- 统一定义角色、受众、语气、目标和输出约定。
- 当前问题和来源资料保留在用户消息中。
- 明确优先级冲突,并测试模型对模糊指令的处理。
编写可执行的行为要求
有效指令应描述可观察行为:证据缺失、来源冲突、不支持的请求和格式要求应如何处理,而不只是要求“有帮助”或“准确”。
- 要求明确区分已验证事实和假设。
- 规定何时应追问、说明限制或拒绝猜测。
- 下游需要固定格式时,指定确切字段或标题。
通过 API 设置系统指令
Google Gen AI SDK 可在生成配置中设置 system instruction。把模型标识符和指令文本纳入版本管理,变更后先评测再发布。
- 使用官方 SDK,凭据保存在服务端环境变量。
- 日志记录提示词版本,但不要记录敏感正文。
- 通过当前官方文档确认 SDK 语法和模型兼容性。
了解安全限制
系统指令只能影响模型行为,不能执行授权。Google 也指出它无法完全阻止越狱或泄露,因此敏感数据和安全决策必须放在提示词之外。
- 不要把 API 密钥、密码、私有规则或用户秘密写入系统指令。
- 把用户内容、检索网页和文档视为提示词注入来源。
- 工具权限、数据访问与业务规则由确定性的应用代码执行。
测试一致性和失败模式
用正常请求、边界案例、恶意覆盖、多语言输入和长对话评测系统指令,同时检查它是否妨碍有用回答。
- 测试泄露、替换或违背系统指令的尝试。
- 检查格式、拒绝质量、事实性与升级处理。
- 指令、模型、工具或检索来源变化后重新测试。
Python
示例将角色、证据处理和格式与用户请求分开。请将 GEMINI_MODEL 设置为当前受支持的模型。
import os
from google import genai
from google.genai import types
client = genai.Client()
model = os.environ["GEMINI_MODEL"]
config = types.GenerateContentConfig(
system_instruction=(
"You are a concise API documentation assistant. "
"Separate verified facts from assumptions. "
"Return Markdown with short headings."
)
)
response = client.models.generate_content(
model=model,
contents="Explain how request retries should be designed.",
config=config,
)
print(response.text)