ARTICLE · 1270966
AI Agent #37
AI Agent #37请自行验证是否准确哈~ 声明:仅供参考,应该没有任何“原题”。
AI Agent · 单位 U37(工具调用 + 工作流进阶:工具结果校验与结构化数据接口)
本段主题:工具调用与工作流的进阶——工具结果校验与结构化数据接口(schema 与字段校验、数值范围校验、校验混淆矩阵与期望代价、校验层设计、结构化输出与修复、单位/口径一致性、结果可信度分级、串联校验的净效果、多工具组合校验顺序、接口契约与版本演进)。 合规声明:不含具体交易信号、投资建议、内幕信息;不鼓励绕过风控/合规。
题目编号:TRACK-03-U37-Q01
题型:笔试 | 考点:工具结果校验 / schema 与字段校验统计 / 通过率 题干:对某工具返回的 1000 条结构化结果做校验:950 条 schema 合法,其余 50 条 schema 非法;在 950 条合法记录中,有 20 条数值越界。合法且不越界的记录视为"通过校验"。(1) 求直接通过校验的比例;(2) 若对 schema 非法的记录可做自动修复,修复成功率为 60%(修复成功且不再越界,视为通过),求最终可用比例;(3) 给出修复率为 0 与 100% 的边界值。 假设与边界:schema 合法与数值越界是两个独立的检查维度;修复仅作用于 schema 非法记录,修复成功后不再触发越界;修复不作用于合法但越界的记录(此类仍为不通过);比例以条数计。 解析: (1) 合法且不越界 = 950 − 20 = 930 条 ⇒ 930/1000 = 93.0%。 (2) 修复成功 = 50 × 60% = 30 条 ⇒ 可用 = 930 + 30 = 960 条 ⇒ 960/1000 = 96.0%。 (3) 修复率 0 ⇒ 930/1000 = 93.0%;修复率 100% ⇒ (930 + 50)/1000 = 980/1000 = 98.0%。 参考答案:(1) 93.0%;(2) 96.0%;(3) 边界为 93.0% 与 98.0%。 验算/自检:另一种解法(分维度计数)——总不通过 = schema 非法 50 + 合法但越界 20 = 70 ⇒ 通过 = 1000 − 70 = 930 ✅。加修复后,不通过剩余 = (50 − 30) + 20 = 40 ⇒ 通过 = 960 ✅。边界复算:修复率从 0→100% 时,可用比例从 93% 单调升到 98%,区间宽 5 个百分点,恰好等于 50/1000。 常见错误:把 20 条越界从"非法"里重复扣除;把修复作用于全部 70 条(只应作用于 50 条 schema 非法);把"合法"直接当作"通过"而漏掉越界维度。 评分要点:两个维度分别计数;930/960 的中间量可复算;给出修复率两端的边界。 追问/变形/还能这样考:若修复本身有 5% 概率"改错"(引入新错误),通过率如何变化?若越界检测也有误报(把合法值判为越界),结论如何变?当校验维度增多(类型、枚举、跨字段一致性)时如何组织校验管线?
题目编号:TRACK-03-U37-Q02
题型:笔试 | 考点:工具结果校验 / 两层校验管线覆盖 / 漏检率反解 题干:校验管线分两层:L1(schema 与必填,检出率 100%、无漏检);L2(数值范围与口径校验,对存在问题的记录检出率 r = 0.9)。输入 10000 条记录,其中 A 类缺陷率 3%、B 类缺陷率 4%(两类缺陷相互独立,一条记录可同时含 A、B)。(1) 求至少含一类缺陷的记录比例;(2) 经两层校验后,仍会漏过(未被拦截)的缺陷记录数是多少条;(3) 若要求漏检不超过 20 条,L2 检出率至少需提高到多少? 假设与边界:A、B 两类缺陷相互独立(P(A)=0.03、P(B)=0.04):L1 检出 A 类且无漏检,L2 检出 B 类但检出率仅 r;L2 检出不依赖 A 类;校验器本身无误报(正常记录不被误拦)。 解析: (1) 至少一类 = 1 − (1−0.03)(1−0.04) = 1 − 0.97×0.96 = 1 − 0.9312 = 0.0688 ⇒ 6.88%。 (2) 漏检只可能来自"仅有 B 类缺陷且 L2 未检出"的记录——同时含 A、B 的记录已被 L1 全部拦截,不会漏过。仅 B 类记录数 = 10000 × (0.04 − 0.03×0.04) = 10000 × 0.0388 = 388 条;漏检 = 388 × (1 − 0.9) = 38.8 条 ≈ 39 条(A 类被 L1 全部拦截)。 (3) 令 388 × (1 − r) ≤ 20 ⇒ (1 − r) ≤ 20/388 ≈ 0.05155 ⇒ r ≥ 0.9485 ≈ 0.949(约 95%)。 参考答案:(1) 6.88%;(2) 约 39 条(38.8 条);(3) r ≥ 约 0.949(≈95%)。 验算/自检:另一种解法(分类计数)——含 A 的有 300 条、含 B 的有 400 条、同时含 A、B 的有 0.03×0.04×10000 = 12 条;至少一类 = 300 + 400 − 12 = 688 条 = 6.88% ✅。仅 B 类 = 400 − 12 = 388 条;漏检 = 388 × 10% = 38.8 条 ✅。边界复算:r = 1 ⇒ 漏检 0;r = 0 ⇒ 漏检 = 388 条(全部仅 B 类漏过);r = 0.9 对应 38.8 条,符合线性关系。 常见错误:把 A 类也当作会漏检(L1 无漏检);漏检基数误用全部 B 类 400 条而不是仅 B 类 388 条(忽略 A、B 重叠已被 L1 拦下);把 B 类漏检算成 400(忘了乘 (1−r));用"缺陷率相加"求"至少一类"(应 1−Π(1−p),因独立而非互斥)。 评分要点:至少一类用独立性公式;漏检基数为仅 B 类 388 条、结果约 39 条;(3) 反解 r ≥ 约 0.949 并给出代入验证。 追问/变形/还能这样考:若 L1 也有 1% 漏检,漏检总量如何叠加?若两类缺陷相关(非独立),"至少一类"如何用联合分布表达?若允许"两级串联必须都报警才拦截",覆盖与误报如何权衡(见 Q08)?
题目编号:TRACK-03-U37-Q03
题型:笔试 | 考点:工具结果校验 / 校验器混淆矩阵与期望代价 / 阈值取舍 题干:一个数值校验器把工具返回的数值标记为"异常"(触发重取)。在"真异常"记录上检出率 0.95,在"正常"记录上误报率 0.04;真异常占比 2%。重取一次成本 $0.01;未被拦截的真异常导致下游损失 $0.5(每条)。(1) 求该校验器的精确率(precision)与召回率(recall);(2) 求每条记录的期望总成本;(3) 另一方案"零误报"但检出率降到 0.70,比较两者期望成本,给出选择。 假设与边界:真异常先验 2%(固定);检出率、误报率在校验器阈值下固定;"重取"即触发一次额外调用,成本 $0.01;未被拦截的真异常下游损失 $0.5;误报造成的重取不带来损失、仅计成本;不考虑重取后仍失败。 解析: (1) 召回率(真异常被检出)= 0.95。精确率:每条记录上被标记的概率 = 0.02×0.95 + 0.98×0.04 = 0.019 + 0.0392 = 0.0582;其中真异常 0.019 ⇒ precision = 0.019/0.0582 ≈ 0.3265。 (2) 重取成本/条 = 0.0582 × $0.01 = $0.000582;漏检损失/条 = (0.02 × 0.05) × $0.5 = 0.001 × 0.5 = $0.0005;合计 ≈ $0.001082/条。 (3) 方案二(检出 0.70、误报 0):重取成本/条 = 0.02×0.70×0.01 = $0.00014;漏检损失/条 = (0.02×0.30)×0.5 = 0.006×0.5 = $0.003;合计 = $0.00314/条 > $0.001082 ⇒ 保留原方案。 参考答案:(1) recall = 0.95、precision ≈ 0.327;(2) ≈ $0.001082/条;(3) 方案二 $0.00314 > 原方案 $0.001082,故选原方案。 验算/自检:另一种解法(每 1000 条计数)——真异常 20 条、检出 19 条;正常 980 条、误报 39.2 条。重取 58.2 次成本 $0.582;漏检 1 条损失 $0.5;合计 $1.082/1000 = $0.001082/条 ✅。方案二:重取 14 次 $0.14,漏检 6 条 $3.0,合计 $3.14/1000 ✅。边界复算:若漏检代价改为 0,则方案二($0.00014)优于原方案($0.000582)——说明"选择取决于漏检代价",代价越高越应容忍误报以保召回。 常见错误:把精确率算成 0.95(那是召回率);漏检损失漏算 (1−检出率);把误报也当作有损失;只比较重取成本而忽略漏检代价,导致阈值选反。 评分要点:precision/recall 区分正确;期望成本含重取 + 漏检两部分;能说明"漏检代价决定方案取舍"。 追问/变形/还能这样考:若可以调节阈值,使 (检出率, 误报率) 沿 ROC 曲线移动,如何用代价最小化选点?当先验异常率随行情变化时,precision 会如何漂移?把"重取"改为"转人工复核(成本更高、检出更高)"后如何设计三级阈值?
题目编号:TRACK-03-U37-Q04
题型:面试 | 考点:工具结果校验 / 校验层设计 / schema-范围-交叉-时序 题干:请为一个"调用外部数据工具并消费其结果"的 Agent 设计工具结果校验层:要覆盖哪些校验类型、如何组织校验顺序与失败处理、如何平衡严格性(漏检)与可用性(误报)。(本类为思路题,无唯一答案,考察思路。) 假设与边界:面向工程;工具返回结构化数据(JSON/表格);不涉具体库;下游对错误数据可能放大损失;不鼓励静默修复掩盖问题。 解析:校验类型——① 结构校验:schema/类型/必填/枚举(快、便宜,先做);② 取值校验:数值范围/单调性/正负/单位量级(如价格非负、概率在 [0,1]);③ 交叉字段校验:字段间关系(如"最高价 ≥ 最低价""市值 = 股价 × 股本");④ 时序校验:时间戳是否递增、是否在合理区间、是否时区一致、是否落在交易日;⑤ 一致性校验:跨源交叉比对(同一指标多源是否一致,与 Q07 联动)。组织与失败处理——按"便宜且确定性强 → 昂贵且需上下文"排序(fail-fast);失败分级:致命(结构/时序错)直接拒绝并重取/上报,非致命(轻微越界)标注 + 降级;每条校验输出"问题类型 + 严重度 + 证据"。严格性与可用性权衡——校验过严导致大量误报、拖慢流程;过松导致脏数据流入下游;用"误报成本的量化(见 Q03)"校准阈值,并对不同用途采用不同严格度(用于实盘风控的更严,用于探索的更松)。 参考答案:要点:① 五类校验(结构/取值/交叉/时序/一致性);② 按便宜→昂贵排序、fail-fast;③ 失败分级(致命拒绝 vs 非致命标注降级);④ 每条校验输出类型+严重度+证据;⑤ 用误报成本量化校准严格性;⑥ 不同用途不同严格度。 验算/自检:自检——构造含"最高价 < 最低价""时区错位""字段缺失"的样本,验证校验层能分别命中交叉/时序/结构校验并给出严重度;对"轻微越界"验证走标注降级而非整体失败。边界:当校验所需上下文缺失(如缺交易日历)时,时序校验应"无法判定"而非"默认通过";当多源不一致时,应输出冲突标记交下游裁决而非静默取其一。 常见错误:只做 schema 校验、忽略取值/交叉/时序;校验过严导致大量误报与重取风暴;非致命问题也整体拒绝(牺牲可用性);缺上下文时默认"通过"(漏检掩盖)。 评分要点:五类校验齐全、有顺序与分级;输出含证据与严重度;给出严格性/可用性的权衡与校准方式。 追问/变形/还能这样考:如何把校验规则做成"声明式配置"便于随数据源演进?如何用"历史分布"做异常检测(如超出历史分位)?校验失败时的"证据"如何进入审计日志以支持溯源?
题目编号:TRACK-03-U37-Q05
题型:面试 | 考点:工具结果校验 / 结构化输出与修复 / 缺字段与格式错误 题干:LLM 通过 function calling / JSON 模式产出的结构化参数常常缺字段、类型错或多包一层。请设计"结构化输出校验与修复"方案:如何让模型更守约束、如何在解析失败时修复、以及如何避免修复引入错误。(本类为思路题,无唯一答案,考察思路。) 假设与边界:面向工程;模型支持 JSON 模式/约束解码的有无两种情况;不涉具体模型厂商;修复需可审计,不得凭空编造字段值。 解析:预防——① 用严格的工具 schema(明确类型、必填、枚举、取值范围)并作为函数定义提供给模型;② 启用约束解码(constrained decoding / 语法约束)在采样阶段保证合法 JSON;③ few-shot 示例覆盖边界(空值、多值、嵌套);④ 给"最小示例"而非冗长说明,降低格式漂移。修复(解析失败时)——① 结构修复:补全缺失的括号/引号、去多余包裹层、类型强转(可无损时);② 约束重试:把解析错误信息回喂模型,要求仅返回修正后的 JSON(限制改动范围);③ 降级:若某必填字段确实无法获得,标记"缺失"而非编造默认值交上层决策。避免修复引入错误——修复必须是"结构/格式"层面且可逆,禁止"语义脑补"(如缺失的价格不许猜);修复前后都要留痕(原输出、修复后、修复规则),并对高频修复模式做统计以改进提示或 schema。 参考答案:要点:① 严格 schema + 约束解码 + few-shot;② 结构与格式修复(无损、可逆);③ 错误回喂的定向重试;④ 缺失即标注、禁止编造;⑤ 修复留痕与模式统计;⑥ 区分"可自动修复"与"必须重试/上报"。 验算/自检:自检——构造 4 类坏样本(缺右括号、多包一层、字段类型错、缺必填),验证修复器能处理前三类、对缺必填走"标注/重试"而非默认填值;对"语义缺失"(如要日期却返回自然语言)验证不进行猜测。边界:约束解码不可用时需退化为"解析 + 重试 + 修复"三级;当修复率持续偏高(>阈值)时,应视为 schema/提示缺陷并迭代,而非长期依赖修复。 常见错误:用正则"猜"缺失字段值(编造);修复后不留痕导致不可复现;把"类型强转"当成万能(可能丢精度/改变语义);不区分"格式错"与"语义错",把两者都自动修。 评分要点:预防(schema/约束解码/few-shot)+ 修复(结构/重试/降级)+ 留痕;明确禁止编造;给出修复率监控与迭代。 追问/变形/还能这样考:如何用"JSON Schema 的 $ref/oneOf"表达复杂参数?当工具参数高度嵌套时,拆成多步小 schema 有何利弊?如何对"模型输出"与"修复后"都做一份可复算的审计记录?
题目编号:TRACK-03-U37-Q06
题型:面试 | 考点:工具结果校验 / 单位与口径一致性 / 金额单位-复权-时区 题干:不同数据工具返回的同一指标可能单位、口径、时区不一致(如金额"元/万元/亿元"、价格"原始/前复权/后复权"、时间戳不同时区/交易日)。请设计"单位与口径一致性校验",说明要检查什么、如何统一、以及不一致时如何处理。(本类为思路题,无唯一答案,考察思路;不含具体交易信号。) 假设与边界:面向工程与投研数据处理;不含具体交易策略;需对接多来源;强调"可复算、可追溯";不涉监管合规细节。 解析:检查什么——① 单位/量纲:金额(元/万元/亿元)、比率(小数/百分数)、股本科数、成交量单位;② 口径:复权方式(原始/前复权/后复权)、是否含税、是否合并口径(母公司/合并报表)、是否年化;③ 时间:时区、时间戳精度、是否收盘/复权基准日、是否交易时段;④ 频率:日频/分钟频、是否对齐同一交易日。如何统一——建立"标准单位与口径字典",工具返回值先做"单位归一 + 口径标注(附元数据)",统一到内部标准(如金额一律"元"、价格一律标注复权方式并统一到某一基准);用元数据(单位、复权、时区)随数据一起传递,而非仅传数值。不一致时处理——① 能无损换算则换算并标注换算规则;② 口径不可换算(如不同复权基准)则分别保留、明确标记、禁止直接比较;③ 冲突时以"权威源优先级 + 一致性校验"裁决(见 Q07);④ 一律在结果里保留"原始值 + 单位 + 口径 + 换算记录",做到可复算。 参考答案:要点:① 检查单位、口径、时间、频率四类;② 用标准字典归一 + 元数据随数据传递;③ 可换算则换算并留痕,不可换算则分别保留、禁止混比;④ 冲突按权威源优先级裁决;⑤ 全程保留原始值与换算记录以支持复算。 验算/自检:自检——构造"同一公司金额,A 源给亿元、B 源给万元""价格一前复权一原始"两例,验证归一后数值一致(亿元×10⁴ = 万元)、口径不可换算者被标记为"不可直接比较"。边界:当换算因子本身有时点依赖(如复权因子随日期变)时,须记录换算基准日;跨时区时间戳对齐到同一交易日需以交易场所日历为准,而非简单 +8 小时。 常见错误:直接混用不同单位/口径的数值(如把万元当元);换算不留痕导致无法复现;用"默认减 8 小时"做时区对齐(忽略夏令时/交易场所);把不同复权方式的价格直接算收益率。 评分要点:四类一致性检查;标准字典 + 元数据传递;可换算留痕、不可换算分开;冲突裁决;强调可复算与可追溯。 追问/变形/还能这样考:如何设计"单位/口径元数据"的 schema 使其可机器校验?当来源缺失单位信息时如何推断(且如何标注推断置信度)?口径不一致的下游影响如何在因子层面兜底(如强制统一到同一基准)?
题目编号:TRACK-03-U37-Q07
题型:面试 | 考点:工具结果校验 / 多源冲突与可信度分级 / 下游裁决 题干:同一指标由多个工具/数据源返回,数值可能冲突。请设计"结果可信度分级与冲突裁决"机制:如何给来源分级、如何量化可信度、冲突时如何裁决、如何把不确定度传给下游。(本类为思路题,无唯一答案,考察思路。) 假设与边界:面向工程与投研辅助;来源含权威官方源、付费数据商、公开网页等;不涉具体产品;强调可复算与可追溯;不鼓励用不可靠来源冒充权威。 解析:来源分级——按可靠性维度打分:权威性(官方/一手 > 二手)、时效性(更新及时)、历史准确率(回测该源与权威源的历史一致率)、覆盖完整度。可信度量化——静态分数(来源等级)+ 动态分数(历史一致率加权),得到每条记录的可信度分;可结合"多源一致则提升、孤证则降低"。冲突裁决——① 若存在唯一高等级来源 → 采用并标注;② 若无绝对权威 → 用"加权投票/中位数"或"多数+与多数一致性"裁决,并保留分歧;③ 分歧无法消解 → 输出"冲突标记 + 候选值集合",交下游或人工复核;④ 记录裁决规则与依据。不确定度传递——输出不只是一个值,而是"值 + 可信度分 + 来源 + 分歧项",下游按用途决定是否采用(高影响用途要求高可信度,探索性用途可放宽)。 参考答案:要点:① 来源分级(权威/时效/历史准确率/完整度);② 可信度 = 静态等级 + 动态一致率;③ 冲突裁决:权威优先 / 加权投票 / 输出候选集合 + 标记;④ 输出值 + 可信度 + 来源 + 分歧项;⑤ 保留裁决依据以复算。 验算/自检:自检——构造"3 源中 2 源一致、1 源为高等级但偏离"的用例,验证机制既能用高等级纠正、也能在多数一致时提示争议;构造"单源孤证"用例,验证可信度被下调。边界:当所有源都低可信且互不一致时,应明确"结论不可靠"而非硬选一个;当高等级源持续偏离历史时,其动态可信度应被下调。 常见错误:按"最新到达"或"随机第一个"取值(无原则);只看来源名气不动态校准;冲突时静默取平均(掩盖分歧);把可信度当成确定性(不传递不确定度)。 评分要点:来源分级维度;可信度量化(静态+动态);冲突裁决有明确规则并保留分歧;输出含不确定度与来源。 追问/变形/还能这样考:如何用"历史与权威源的一致率"在线更新来源可信度?当多源冲突而下游是"风控"用途时,是否应更保守(取最坏值或拒绝)?可信度如何与第 Q04 的校验层联动,形成"校验 + 裁决"闭环?
题目编号:TRACK-03-U37-Q08
题型:逻辑概率 | 考点:工具结果校验 / 串联校验的净检出与净误报 / OR 与 AND 组合 题干:两个校验器,其检出率(对有问题记录报警)与误报率(对正常记录报警)分别为 d₁ = 0.9、e₁ = 0.05 与 d₂ = 0.8、e₂ = 0.03,两者在给定记录上的报警事件相互独立。(1) 串联使用"任一报警即拦截"(OR 组合),求净检出率与净误报率;(2) 并联使用"都报警才拦截"(AND 组合),求净检出率与净误报率;(3) 说明两种组合各适用于什么场景。 假设与边界:两校验器在同一记录上的报警相互独立;"有问题/正常"为真实标签;检出率、误报率固定;拦截/放行二值;不考虑阈值可调。 解析: (1) OR 组合:净检出 = 1 − (1−0.9)(1−0.8) = 1 − 0.1×0.2 = 1 − 0.02 = 0.98;净误报 = 1 − (1−0.05)(1−0.03) = 1 − 0.95×0.97 = 1 − 0.9215 = 0.0785。 (2) AND 组合:净检出 = 0.9 × 0.8 = 0.72;净误报 = 0.05 × 0.03 = 0.0015。 (3) 场景:OR 适合"宁可误报不可漏检"(高召回优先,如风控前置筛查),代价是误报升高;AND 适合"宁可放过不可误伤"(高精确优先,如对正常流程少打扰),代价是漏检升高。 参考答案:(1) OR:净检出 0.98、净误报 0.0785;(2) AND:净检出 0.72、净误报 0.0015;(3) OR 用于高召回场景,AND 用于高精确/低打扰场景。 验算/自检:另一种解法(布尔事件展开)——OR 的"同时漏检"= 两者都漏 = 0.1×0.2 = 0.02 ⇒ 检出 0.98 ✅;OR 的"同时正常放行"= 两者都不误报 = 0.95×0.97 = 0.9215 ⇒ 误报 0.0785 ✅。AND 直接用独立性相乘 ✅。边界复算:d 都为 1 时 OR=1;e 都为 0 时 AND=0;单校验器(退化为只用一个)时 OR/AND 均等于自身 (0.9,0.05) 或 (0.8,0.03)。 常见错误:把 OR 的净检出写成 d₁+d₂(忽略重叠,应 1−乘积);把 AND 的误报写成加减(应相乘);混淆两组合的适用场景。 评分要点:OR 与 AND 的净检出/净误报计算正确;用"重漏/重误"交叉验证;能给出场景选择依据。 追问/变形/还能这样考:若两校验器不独立(共享同一特征而相关),公式如何失效、需要什么(联合分布/相关系数)?三级串联的净指标如何递推?如何用"净精确率"(结合先验)比较两种组合的成本(衔接 Q03)?
题目编号:TRACK-03-U37-Q09
题型:逻辑概率 | 考点:工具结果校验 / 多工具组合校验顺序 / 期望成本最小排序 题干:为排查一条"必有缺陷"的记录,依次运行三个校验工具,一旦某工具检出即停止。各工具的成本 c 与检出率 d 为:T1 (c=0.01, d=0.6)、T2 (c=0.04, d=0.9)、T3 (c=0.015, d=0.7)。各工具检出事件相互独立(对同一缺陷,检出/漏检独立)。(1) 求使期望成本最小的执行顺序,并计算该顺序的期望成本;(2) 验证一个非最优顺序的期望成本更高;(3) 说明排序规则。 假设与边界:记录必含缺陷(先验=1);工具按顺序运行,一旦检出即停止,否则继续下一个;各工具对同一缺陷的检出事件独立(漏检概率 = 1−d);成本以"每次运行"计;不考虑人工兜底。 解析:期望成本 = Σᵢ cᵢ × P(前面都未检出) = c₁ + (1−d₁)c₂ + (1−d₁)(1−d₂)c₃ + … 排序规则:按 cᵢ/dᵢ 升序(等价于交换相邻两项时,cᵢ/dᵢ ≤ c_{i+1}/d_{i+1} 更优)。 比值:c₁/d₁ = 0.01/0.6 ≈ 0.01667;c₂/d₂ = 0.04/0.9 ≈ 0.04444;c₃/d₃ = 0.015/0.7 ≈ 0.02143。升序为 T1 (0.01667) → T3 (0.02143) → T2 (0.04444)。 期望成本(T1,T3,T2) = 0.01 + (1−0.6)×0.015 + (1−0.6)(1−0.7)×0.04 = 0.01 + 0.4×0.015 + 0.4×0.3×0.04 = 0.01 + 0.006 + 0.0048 = 0.0208。 (2) 非最优顺序 (T1,T2,T3):0.01 + 0.4×0.04 + 0.4×0.1×0.015 = 0.01 + 0.016 + 0.0006 = 0.0266 > 0.0208 ✅。 参考答案:(1) 最优顺序 T1→T3→T2,期望成本 0.0208;(2) T1→T2→T3 为 0.0266 > 0.0208;(3) 按 cᵢ/dᵢ 升序。 验算/自检:另一种解法(交换论证验证最优性)——相邻 i、i+1 谁在前取决于 cᵢ + (1−dᵢ)c_{i+1} ≤ c_{i+1} + (1−d_{i+1})cᵢ ⟺ cᵢ·d_{i+1} ≤ c_{i+1}·dᵢ ⟺ cᵢ/dᵢ ≤ c_{i+1}/d_{i+1}。检验 T3 与 T2:0.02143 < 0.04444 ⇒ T3 在前 ✅;T1 与 T3:0.01667 < 0.02143 ⇒ T1 在前 ✅,与逐对交换结论一致。边界复算:再算顺序 (T3,T1,T2) = 0.015 + 0.3×0.01 + 0.3×0.4×0.04 = 0.015 + 0.003 + 0.0048 = 0.0228 > 0.0208 ✅,进一步支持 T1 在前。 常见错误:按成本或检出率单独排序(应看比值 c/d);把期望成本算成"各工具成本之和"(忽略停连);漏掉前序都漏检的概率因子。 评分要点:给出 cᵢ/dᵢ 升序规则与理由;最优顺序与 0.0208 可复算;(2) 给一个更高成本的对照。 追问/变形/还能这样考:若工具可并行运行,问题变为"选择子集使期望成本最小",如何建模?若允许"某工具漏检后其后续检测概率变化(相关)",独立性假设破坏后如何修正?若加入了"人工兜底成本 F",最优停止点如何确定?
题目编号:TRACK-03-U37-Q10
题型:扩展延伸 | 考点:工具调用与工作流 / 结构化数据接口契约与版本演进 / 向后兼容与失败模式 题干:Agent 与多个数据工具之间的结构化接口会持续演进(字段新增、废弃、单位或口径变更、类型收紧)。请设计"接口契约与版本演进"方案:契约如何描述与校验、如何做版本迁移与向后兼容、如何避免"静默破坏"。并给出容量与失败模式分析。(本类为设计题,无唯一答案,考察思路;面向工程与投研数据处理。) 假设与边界:面向工程;接口由多个团队/数据源提供;消费者为 Agent 与下游计算;不涉具体库;强调可复算、可审计、向后兼容。 解析:契约描述——用机器可读 schema(字段、类型、必填、枚举、单位、口径、时间字段语义)作为单一事实来源,随接口版本发布;用契约做"生产端校验(返回值合规)+ 消费端校验(消费前校验)"。版本演进策略——① 加性优先:只新增可选字段、不删不改已有字段语义(保证向后兼容);② 破坏性变更必须升主版本并走并行期(新旧字段共存一段时间);③ 字段废弃走"标废弃 → 双写 → 观测零使用 → 移除"的渐进流程;④ 单位/口径变更视同破坏性变更(因语义改变),需并行与显式换算。避免静默破坏——契约校验进 CI(schema 回归测试);消费端对未知字段宽容(忽略而非报错)、对缺失必填严格(报错/降级);对"单位/口径"变更要有显式断言,不能靠"数值看起来差不多"蒙混。容量与失败模式——契约元数据存储按"接口数 × 版本数 × 字段数",量级小(MB 级);失败模式:① 生产端返回不合规(用契约校验拦截并重试/上报);② 消费端版本不匹配(用兼容层/适配器转换,并记录使用的版本);③ 破坏性变更未并行(导致下游静默取到错误值 → 必须靠契约断言 + 监控);④ 弃用字段被依赖(靠使用量观测在移除前发现)。 参考答案:要点:① 机器可读契约作为单一事实来源,双端校验;② 加性优先 + 破坏性升主版本 + 并行期;③ 废弃走渐进流程;④ 单位/口径变更视为破坏性;⑤ 契约校验进 CI、未知字段宽容、必填严格;⑥ 失败模式与对策、版本可追溯。 验算/自检:自检——模拟"新增字段"(旧消费者应忽略不报错)、"单位由元改万元"(应因契约断言而不被静默接受)、"删除字段"(应在过渡期双写、零使用后再删)三类变更,验证方案;核对"契约断言 + 适配层"能否把不兼容变更转为显式失败而非静默错误。边界:当新旧版本必须长期共存时,适配层需同时维护 N 个版本,复杂度随版本数上升,应用"最少活跃版本"策略收敛;当源端无法提供契约时,消费端需自建"约定 + 探测"并标注不确定度。 常见错误:无契约、靠口口相传(易静默破坏);破坏性变更不并行直接替换(下游崩溃或静默错);对未知字段直接报错(交互脆弱);单位/口径变更不做显式断言。 评分要点:机器可读契约 + 双端校验;加性优先与破坏性并行;废弃渐进;单位/口径变更显式化;失败模式与对策(含"静默破坏"专门防御)。 追问/变形/还能这样考:如何用契约自动生成消费端校验代码与测试用例?当上游是"LLM 生成的工具调用参数"时,契约如何同时约束生成端(衔接 Q05)?如何度量"契约漂移"(接口实际满足契约的比例)并告警?















































































