
换了接口后,先确认固定规则有没有发出去
你的应用每次都要先要求模型“用中文解释,并在结尾列出待确认项”,再发送本轮任务。接入 AIGoCode 后准备切换协议,如果只搬运用户输入,固定规则可能在请求构造时被遗漏。此时先查看自己最终序列化的请求,比立即归因于模型没有遵从要求更有助于定位问题。
本文对照本站 Responses、Anthropic Messages 和 Gemini 三页参数说明,处理一个具体任务:迁移应用保存的系统指令,核对对应字段及类型。它不讨论哪个模型更听话,也不承诺相同文字在不同模型上产生完全相同的回答。
先在应用层分清固定规则与本轮任务
可以先在自己的程序中分开保存两段内容:一段是需要重复使用的固定规则,另一段是本轮用户任务。例如,固定规则写“用中文解释,并在结尾列出待确认项”,本轮任务写“检查下面这份发布说明是否缺少回滚步骤”。这只是组织应用输入的建议,并非 AIGoCode 新增的提示词管理功能。
分开保存的目的,是让协议适配时能明确检查两者分别去了哪里。下面的字段对照来自官方参数表:
| 接口 | 系统指令字段 | 文档列出的类型 | 本轮输入入口 |
|---|---|---|---|
| Responses | instructions | string | input,可为字符串或 Responses 输入条目数组 |
| Anthropic Messages | 请求体顶层 system | string / array | messages,角色为 user 或 assistant |
| Gemini generateContent | systemInstruction | object | contents,内容块使用 parts,文本放在 text 中 |
这三行需要分别适配。不能只给同一段 JSON 换个请求地址,就把字段名称和数据类型的差异一并解决。若你还没有区分用户输入的位置,可以先看把测试问候语换成业务输入;本篇在此基础上单独检查固定规则。
Responses:检查 instructions 是否仍是字符串
Responses 参数说明把 instructions 列为可选字符串,把 input 列为文本输入或 Responses 格式的输入条目数组。迁移自己的构造函数时,可以分别核对:固定规则是否送入 instructions,本轮任务是否按所用形式送入 input。
例如,应用原来把所有文字放进一个“内容”变量,现在拆成两个变量后,应检查序列化输出里是否真的出现了 instructions。变量在内存中存在,不代表构造最终请求对象时已经把它带上。不要因为最小示例只展示 input,就漏掉自己业务中原本需要的固定规则。
这里没有给出历史对话的通用转换方法;如果你使用输入条目数组,应进一步按 Responses 对应结构组织,不能把其他协议的数组机械改名后直接复用。
Anthropic Messages:system 在请求体顶层
Anthropic 参数说明明确把 system 放在请求体顶层,类型为字符串或数组;messages 是对话消息列表,角色为 user 或 assistant。
从另一套消息构造逻辑迁移时,先检查固定规则是否仍被塞进某条历史消息里。按这份文档的结构,系统指令应交给顶层 system,本轮用户文字则放在相应的消息内容中。不要仅因为几种协议都能处理文本,就假定它们使用相同的角色和嵌套位置。
如果原规则只是普通字符串,可以先核对字符串形式的映射;如果原来保存的是数组,则需要检查目标格式所要求的数组内容,不能只凭参数表允许“array”就认定任意数组都合法。本文不扩展内容块的完整格式。
Gemini:字段名与对象类型都要检查
Gemini 参数说明列出 systemInstruction,类型为对象。相对前两行,这里尤其不能只把字段名替换后仍原样传一个字符串。
迁移检查至少包括:字段名称是否准确、最终值是否按目标格式构造为对象、固定规则是否仍在构造逻辑中保留。本站本页参数表没有展开这个对象的完整内部结构,因此本文不凭其他协议的写法补出一份可直接运行的对象示例。实际实现时还需核对所用 Gemini 客户端或接口的对应对象结构,再完成请求验证。
用户输入继续按 contents 和 parts 组织;不要为了容纳系统指令,把原本正常的用户输入层次一并重写。
给协议适配器加两层核对
第一层可以在本地完成:给构造函数提供一段固定规则和一段本轮任务,检查最终对象中目标字段是否存在、类型是否符合所选协议,以及两段文字是否遗漏。记录时只保留必要的脱敏样本,真实 Key 不进入快照。
第二层是在自己的环境中发出最小请求,查看实际返回是否满足这次任务的预期。字段映射正确只是请求结构的核对,不能替代对模型输出的人工检查,也不能由一次成功推导所有后续回答都会遵从规则。若格式无误但回答仍有偏差,应保留脱敏请求与输出分别分析,避免再次同时更换地址、模型和提示词。
迁移提示词时,认证与模型范围也要单独确认
这些接口各自的文档还规定了调用方式:Responses 使用 Bearer 鉴权,Anthropic 使用 x-api-key,Gemini 使用 x-goog-api-key;模型与 Key 分组应符合所选接口和目标模型。系统指令字段映射不会自动改变账号权限或模型范围。
交接时,可以给每个协议记录一行“固定规则来源、目标字段、目标类型、用户输入入口、本地构造检查结果和实际验证结果”。这份记录能够区分提示词有没有被发出、请求结构是否对上,以及模型回答是否符合任务,减少换接口后把所有偏差混成同一个问题。