Skip to content

第十章:换一个模型,哪些部分需要适配 ​

简报方法已经可以保存和复用。现在你想换一个响应更快的模型:工具、材料、偏好和技能都保留,只改模型名称,是否就能得到同样可靠、开销更小的助手?

不一定。新模型可能不支持原来的工具格式,可能看不懂图片,也可能需要更多轮才能分清 A 与 B。能收到一段回复,只证明请求走通了,还没有证明整个任务表现相当。

本章沿着第三章的输入包,走进“调用模型”这个方框。产物是一份模型切换检查表:哪些属于能力,哪些属于接口,哪些仍由 Hermes 的运行程序负责。

10.1 一个“模型选择”包含三个问题 ​

先分清模型与服务。模型承担理解和生成;服务提供访问入口,并规定请求、认证和返回格式。同一个模型可能经不同服务访问,同一服务也可能提供多个模型。

接口可以理解为双方交换信息的约定。认证则回答“谁在请求、能否使用这项服务”,通常依靠登录状态或访问密钥。读者不需要编写接口,只需知道它们不是模型的推理能力。

图 10-1 教学分层:会判断、能访问、能完成任务,是三个相互关联的条件。 点击图解可放大
左右滑动查看图解细节
模型能力、访问适配和运行程序分成三行,各自包含判断、协议、上下文、执行与预算等职责

图 10-1 教学分层:会判断、能访问、能完成任务,是三个相互关联的条件。

要回答的问题简报中的例子改了什么仍不能保证
模型是否胜任能否发现 B 夸大了 A 的能力不能保证接口能正确表达工具调用
服务是否可接入登录有效,工具格式被接受不能保证多轮任务质量相同
运行程序是否配合正确带回结果,控制预算与结束不能替模型补出未知事实

这三层分开,才不会把“认证失败”诊断成“模型笨”,或者把“重复取材”全部归咎于网络。

10.2 Hermes 怎样确定本轮用哪项服务 ​

在 Hermes 中,交互对话、网关、定时任务和部分辅助任务会使用共享的服务解析能力。它根据显式请求、已保存配置、环境及相应默认规则,确定服务、模型访问方式、地址与凭据等信息。

这个设计解决配置散落的问题。如果每个入口分别猜测用哪个地址、哪份登录状态,那么在电脑里能聊的模型,定时任务可能根本访问不了;模型切换后,另一个入口还可能悄悄沿用旧设置。

普通运行中,已保存的模型选择具有明确地位,旧的环境设置不应随意覆盖用户后来选定的服务。不过,任务可以有专门选择,辅助调用也可能单独配置。不能只看聊天界面里的模型名称,就断定所有模型请求都发给它。

例如,主模型负责选择行动,压缩摘要可能交给另一个模型。分析任务开销和数据去向时,这两种调用都要计入。共享解析逻辑带来一致的处理方式,并不表示所有调用必须共享一套能力和失败恢复策略。

10.3 适配层翻译什么,保留什么 ​

第三章画的是概念输入包。真实服务可能将系统说明、消息、图片、工具定义放在不同字段中;工具响应的形式也会不同。适配层负责把运行程序组织的内容转换成选定服务接受的请求,再把返回转换成后续循环能处理的结果。

图 10-2 教学视图:适配层处理交换约定,不替代模型判断,也不直接完成简报中的外部动作。 点击图解可放大
左右滑动查看图解细节
核心运行经适配与归一向选定模型服务发送请求,响应沿相反方向返回,业务工具仍由运行程序组织执行

图 10-2 教学视图:适配层处理交换约定,不替代模型判断,也不直接完成简报中的外部动作。

Hermes 包含多种访问路径,例如常见的聊天补全格式、原生 Anthropic 消息格式,以及 Codex 的 Responses 路径。所谓“兼容”,通常只覆盖一组约定,不意味着所有字段、流式片段和历史内容都可以原样互换。

一次响应可能陆续到达:先有文字片段,随后才拼成完整工具名称与参数。运行程序需要区分可展示的文字、工具调用、用量和错误。一条显示中的句子,不一定就是完整最终答复;一个尚未收全的工具参数,也不能当成已经可执行的动作。

还有一些返回内容带有服务特定的延续信息。恢复历史、切换服务时,不能想当然地把它们当成普通文字改写。这里的设计要求是:尽量保留后续调用必需的语义,同时把可供共同循环处理的部分整理清楚。

10.4 凭据为什么必须跟着正确的地址 ​

服务解析不只为了方便。若用户配置了自己的服务地址,程序还顺手发送另一家服务的访问密钥,就会把身份凭据交给错误对象。

Hermes 对部分服务的密钥与地址有相应的匹配和选择逻辑,并区分用户指定的自定义入口与默认回退路径。不同认证方式还可能需要刷新登录状态。它们共同说明:地址、访问方式、凭据应当作为相互约束的一组信息处理,不能各取一个“看起来能用”的值。

这些机制也有范围。不能从某个受支持路径的检查推导出任意代理都可信;选择服务仍然决定资料可能交给谁。把模型放在本地运行,也只改变相关处理的位置,不会自动阻止工具访问外网或读到其他文件。权限问题后面会单独展开。

10.5 失败时换模型,为什么仍需重新检查 ​

Hermes 支持配置模型回退,在特定错误与重试条件下尝试备用选择。这能提高可用性,但备用模型接手的是已经进行中的任务,历史长度、工具格式与能力可能不同。

如果主模型已读到“图片暂不支持”,备用模型仍必须获得这一条件。若它无法接受相同历史或某种输入,恢复策略还需要处理格式和上下文,而不能只把名称替换一下。

更关键的是,主任务、委托子任务与辅助调用的回退规则不必相同。确认主对话有备用链,不代表每项内部调用都具备同样恢复能力。因此,检查表需要写明具体调用路径,而不是一句“系统支持自动切换”。

回退解决“原来的服务当前无法继续”,没有证明“接手后的结果一定等价”。能否继续、结果是否正确,需要分别验证。

10.6 比较一次任务,而不是只比较一次回复 ​

设想两个模型处理同一组材料。这只是比较方法的教学情境,没有实测分数:甲单轮较快,却反复读取 B;乙单轮较慢,但在发现冲突后直接回到 A。仅凭单轮响应速度无法判断最后谁更快完成。

完整开销包括所有模型轮次、工具等待、重试、压缩摘要和核对。价格也要根据实际服务的计费规则计算,不能用模型名字估算,更不能把缓存命中或零错误当作默认条件。

切换前后保持一致实际需要观察发现问题后往哪层找
固定材料、目标与授权是否仍只交付两件事、保留图片限制能力与实际输入
同样的可用工具是否发出有效参数、正确使用反馈工具说明、适配与模型选择
相同历史长度范围是否接受请求,压缩后是否保留约束服务限制与上下文处理
同样的完成标准总轮次、等待、失败和费用整条任务链

先检验最小闭环:材料进入、模型提出有效工具请求、工具结果被接收、最终答复保留事实边界。再加入长历史、服务失败和后台运行。一次对话走通,不宜直接推广到所有入口。

本章要点 ​

  • 模型能力、访问协议与运行程序承担不同责任;格式兼容不能证明任务等价。
  • Hermes 通过共享解析与不同适配路径组织服务访问,地址、凭据和请求方式需要匹配。
  • 辅助调用和委托可能采用不同配置;比较开销时要覆盖完整任务。
  • 模型回退提高可用性,接手后的输入完整性与结果仍需检查。

理解题 ​

1. 新服务可以回答“你好”,却没有执行读取材料,应该先判断模型不支持 Agent 吗?

不能。先确认读取工具是否真的提供给它,服务是否接受了相应定义,返回是否包含完整调用,以及运行程序是否正确识别。只有定位到实际输入与响应,才能区分能力、配置和适配问题。

2. 用户切换了主模型,压缩摘要的费用为什么可能没变?

辅助摘要可能单独配置了模型与服务。主模型选择不是所有内部调用的唯一依据。应检查压缩路径实际解析的配置,而不是从聊天界面的名称推断。

3. 备用模型成功接手并交付三条消息,是否说明回退很成功?

最多说明任务恢复到了输出阶段。固定材料只有两件事,还要检查是否重复计算 A 与 B、是否编出第三件事。回退可用性与任务正确性分别成立。

下一章把同一套运行能力放到多个入口,理解是谁在使用它,以及任务应落到哪一段状态。

社区学习手册 · 正文与原创图解 CC BY-SA 4.0 · 代码 MIT