AFAgent Field Notes会员账号
知识目录选择核心方向与细分内容
Q15高级场景设计约 18 分钟

长期任务中的工具语义与版本迁移

工具上线 v2 后旧任务还没跑完,如何兼容参数和结果变化?

考察工具 Schema 版本、长期任务兼容与发布回滚。

Schema版本兼容回滚

知识内容核对 2026-10-03 · 原题来源核对 2026-10-02

本题目录

READ · UNDERSTAND · TRANSFER

阅读理解,按需巩固

我的笔记与复习 ↗

先沿着原理、问答和迁移案例阅读。需要检查理解时,再切换巩固练习或展开个人记录。

作答与个人记录

每次修改后的提交会保留为独立历史。掌握程度由你对照标准自评。

核心知识 · 长期任务中的工具语义与版本迁移

先理解核心原理

先备概念:API 兼容性、不可变批准对象、灰度发布

兼容不只意味着 JSON 能解析,还意味着旧调用的业务含义与结果判断保持。长期任务必须知道按哪份契约执行;无法无损转换时显式迁移或阻塞,不能让模型猜新旧单位与状态。

形状没变也会出事故

amount 都是数字,从元改成分却可能放大百倍差异;新 status 能被解析,但旧分支把“非失败”都当成功,会让待确认状态漏验收。字段类型检查覆盖格式,业务契约还包含单位、时区、空值、错误与副作用。

版本由运行时选择

任务保存创建时的契约版本和参数摘要,恢复检查该版本是否仍可用。可无损转换的适配在确定程序中实现并记录;转换改变实际动作就重新核验批准。把 version 交给模型任意填写不能保证版本选择。

发布要留回头路

新旧版本共存、只读影子比较和有限灰度可降低风险。写工具不能为比较结果双写真实系统,影子侧只能生成计划或在隔离环境运行。Google SRE 支持灰度观察思路;具体保留期和迁移规则是业务设计,不由 MCP 自动规定。

回到问题:怎样回答?

任务创建时记录工具契约版本,不能让未完成任务静默切换到不兼容的接口。优先采用新增可选字段等兼容变更;语义、单位或必填参数改变时发布新版本并提供明确适配或迁移。请求和结果都要校验,旧任务按锁定版本继续或显式阻塞。发布前用保存的合法和非法样本做契约回归,回滚也需要保留旧版本可用性。

实现与取舍

兼容性不只是 JSON 能解析

把 amount 从“元”改成“分”,字段仍是数字却已经破坏语义;把 status 新增一个枚举值也可能使旧客户端进入默认成功分支。因此契约应记录单位、时区、空值含义、错误码和副作用语义。工具名不变不代表业务行为没变,运行日志需要保存 Schema 与实现版本。

长期任务怎样选版本

给运行记录绑定工具版本与输入摘要,恢复时校验版本仍可调用。如果新版本可无损适配,适配器在确定性代码里转换,并记录转换结果;不能让模型猜字段含义。无法兼容时进入待迁移状态,由明确迁移规则或人工处理。涉及已批准动作时,迁移后重新计算动作摘要并检查批准是否仍有效。

发布与回滚

先让新旧版本并存,选取只读流量或测试副本做影子比较,再小范围放量。写工具不应为了比较结果执行两遍,影子侧只生成动作计划或使用隔离环境。回滚要恢复工具目录、实现与配置的匹配版本,并保证已经创建的新任务有可处理路径,不能只回滚提示词。

怎么验收

契约测试覆盖缺字段、未知字段、单位边界、异常结果和旧任务恢复。监测参数拒绝率、适配器使用率及业务结果差异。候选人应给出版本保留期限和下线前未完成任务清单;若只说“Schema 加一个 version 字段”,却说不清由谁选择、何时失效,方案仍不完整。

工程推演

场景
面试假设:付款工具将金额单位从元升级为分,有任务等待审批两天。
设计决策
保留旧版本或使用显式适配,恢复时重新验证动作摘要。
验证目标
旧任务不因单位变化付款百倍,异常迁移会阻塞而非猜测。
适用边界
例子用于考察契约治理,不代表实际支付系统实现。

连续追问与解答

沿着问题的前提和约束继续向下读。先理解参考解答,再尝试收起答案,用自己的话解释因果和取舍。

举一反三:条件变了,怎样推导?

先找出改变的条件,再判断原方案中哪些前提仍成立。下面的案例是教学推演,便于将原理迁移到新问题。

新增可选字段

改变的条件:不兼容单位变更换成默认行为不变的字段扩展

延伸问题:是不是一定兼容?

推导与参考解答

不一定。确认旧端是否拒绝额外字段,新端缺字段时是否保持原行为,以及下游序列化与签名是否受影响。仅请求侧新增字段与结果侧新增字段的消费者不同,需要分别验证;确定兼容后可不迁移旧任务。

保持不变的原理:兼容以真实消费者行为为准,变更标签不能代替验证。

紧急安全修复

改变的条件:正常共存升级变成旧实现不可继续

延伸问题:还要坚持锁版本运行吗?

推导与参考解答

锁定契约不代表必须运行有漏洞实现。若修复保持契约,可以替换实现并记录版本、回归关键行为;若无法保持则暂停旧任务、核验在途动作并迁移。安全修复需要具体收尾规则,不能静默改变动作含义。

保持不变的原理:版本追溯服务于可解释执行,风险改变时仍需显式决策与证据。

易错点

  • 只按字段类型判断兼容
  • 恢复时直接用最新工具
  • 用模型猜测单位转换

参考资料

依据公开技术资料设计;参考资料支持技术机制,场景与评分标准为本站设计,不代表某公司面试原题。 新增问答与迁移案例用于原理讲解,来源核查与案例运行验证分别记录。

检查自己理解到哪一步

读完后可以对照这些标准解释原理、边界和取舍。掌握程度由你自评;需要进一步验证时,再完成下方小任务。

基础达标
能指出金额单位等语义变更风险。
中高级信号
给出任务版本锁定、适配与双版本运行策略。
资深信号
完整考虑审批失效、影子无副作用和新旧任务回滚。

巩固练习 按需完成 · 建议 15 分钟

设计 amount 元转分的升级流程,标出适配点与审批校验点。

展开验收要求与检查点
  • 转换规则确定且可测
  • 待执行任务有明确版本
  • 写工具对比不产生双写

重点检查

  • 识别结构兼容与语义兼容
  • 锁定任务使用的工具契约
  • 能描述迁移、并存与回滚