本地仲裁器的理由
消费级 Agent 功能越来越被期望在人类交互的节奏内响应:唤醒词处理、视线估计、传感器融合、短文本分类。这些步骤对延迟敏感,且处理的数据要么是连续的(音频、运动、摄像头帧),要么足够个人化,将其发送到远程端点只会增加数据外泄面,而几乎没有功能上的收益。云端往返带来成本、尾部延迟和隐私边界,而大多数这类步骤并不需要跨越这条边界。
纯远程 Agent 在离线时也会失效。对于设备级助手而言,离线行为不是降级模式,而是基线要求。如果仲裁器无法在没有网络跳转的情况下响应唤醒词或本地分类,那么该功能在飞机上、电梯里或拥塞的蜂窝网络中就无法使用。仲裁器的存在就是为了让短步骤保持本地,并使升级成为一个显式、可审计的决策。
仲裁器决定什么
仲裁器按任务类别路由,而非按单个请求。一个可行的划分:
- 保持本地。 唤醒词处理、语音活动检测、视线与传感器融合、短分类、针对小型本地索引的 embedding 查找,以及仅依赖近期本地上下文的状态转换或格式化。
- 升级。 需要长上下文、更大模型或设备无法访问的工具(远程检索索引、支付或预订 API、共享多用户状态存储)的步骤。
路由规则应编码为策略,而非埋在应用代码中的启发式。策略对象按任务类别声明允许的执行目标、最大本地上下文、隐私类别,以及本地目标不可用时的回退行为。应用向仲裁器请求决策,并收到一个目标加一个原因码。这使划分可检查、可测试,并防止一个善意的功能分支悄悄把麦克风缓冲区发送到远程端点。

一个具体机制:将每个步骤表示为一个小型描述符,包含任务类别、估计的 token 或帧预算、所需工具、隐私类别和截止时间等字段。仲裁器根据设备能力(可用的本地模型、空闲内存、热状态、网络可达性)评估该描述符,并返回 local、remote 或 defer 之一。决策及其输入按运行记录日志。没有该日志,划分就不可复现;有了它,升级可以被重放和解释。
塑造划分的约束
内存上限与热预算。 手机在降频前只能运行有限数量的本地步骤。仲裁器需要将热余量视为一等输入,而非事后考虑。当设备发热时,正确的行为通常是让最廉价的本地步骤保持本地,并推迟或升级其余步骤,而不是运行所有步骤并让调度器拖垮整个流水线。这是一个真实的权衡:在热压力下升级会增加云成本和延迟,而这恰恰是用户最可能察觉的时候;但让本地步骤进入降频状态会产生更差且更不可预测的延迟。
模型版本偏移。 设备模型和服务器模型会漂移。除非按运行记录划分——哪个模型在哪个版本服务了哪个步骤——否则行为变化无法归因。可复现性记录应捕获仲裁器决策、每个已执行步骤的模型标识符和版本,以及生效的策略修订版。这就是可调试系统与只在构建它的机器上行为正确的系统之间的区别。
序列化前进行隐私分类。 隐私分类必须在载荷序列化之前进行,而非之后。一旦缓冲区被编码进请求体,分类就成了传输的属性,而非数据的
测试划分

划分是一个系统边界,因此需要自己的评估。三点实践很重要。
将纯本地路径与升级路径分开衡量。 单一的聚合成功率会掩盖一个事实:本地模型可能恰好在被升级的案例上失败。按路径报告任务成功率,并在每条路径内按任务类别报告。如果本地路径的成功率稳定但升级率攀升,说明本地模型正在退化,或输入分布已经偏移。
将升级率作为一等指标进行埋点。 升级率是本地模型健康度最清晰的信号。上升的比率意味着设备更多依赖云端,这会改变成本、延迟和隐私暴露。按任务类别和设备层级跟踪它,并设置审查阈值而非告警阈值:重点是在漂移变成成本或合规问题之前注意到它。
将离线和降级网络条件模拟为标准 eval 场景。 对于设备级助手而言,离线不是边缘情况。Eval 运行应包含:完全离线、高延迟可达网络,以及可达但在步骤中途断开。仲裁器的 defer 路径及其回退行为需要被实际演练,而非假设。一个升级后失去网络的步骤必须以定义好的方式失败,而该定义属于 eval 套件。
一个诚实的权衡
本地优先的划分并非没有代价。保持本地模型最新意味着发布模型更新、管理设备层级能力差异,并接受某些步骤将由比云端所能提供的更小的模型来服务。仲裁器增加了一个决策层,它本身必须被测试,其策略必须与模型一起版本化。另一种选择——纯远程 Agent——构建更简单、更容易保持一致,但它离线失效,为每个短步骤增加一次往返,并扩大数据外泄面。对于消费级设备助手而言,本地仲裁器是更站得住脚的默认选择,前提是划分被记录、被衡量,并被视为工程边界而非实现细节。
封面照片:Jakub Pabis / Pexels。
