题目重点:区分消息历史、任务状态与证据库,用预算、检查点和版本化摘要控制多轮搜索。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 教学任务为多轮查证并回答用户问题,工具可搜索/读取网页;只读研究,不虚构原题有邮件/购买等动作。
- 模型上下文容量、tool schema、最大回合和原验收规则未知,以下预算/状态都是训练设计。
- Computer Use Agent见q28、RAG评估见q29;本题关注跨轮任务状态与上下文,不以换个名字重复其训练奖励题。
解题路线
- 每轮状态至少分当前用户目标/约束、待核问题、已读证据和来源、消息历史、工具调用/结果ID、预算与失败记录。聊天message不是唯一状态库,旧工具结果可外存并用ID引用。
- 循环为读取最新用户输入→计划下一步→选择结构化tool call→校验参数/执行→附tool result→更新任务状态→决定继续或答复。用户补充约束时更新任务版本,不能按旧目标继续搜索;tool结果与call ID一一对应避免错配。
- 长context先按token预算分配system/当前目标/近期回合/必要证据/生成余量,工具大正文只放相关片段与定位信息。裁剪不能把证据变成无出处结论;原始全文外存,关键引用能取回。
- 摘要应结构化区分事实/推断/待核/用户明确要求,并附sourceID与版本。对冲突证据保留分歧和日期,不用压缩过程“投票”成假确定;定期用原文检查摘要失真。
- 可按主题检索旧证据,但不把低相关历史全丢掉:否定要求、禁止动作、已验证反例和失败原因可能决定下一步。窗口保近期对话,持久task state保关键约束,证据retrieval提供需要的原文。
- 设置最大调用/token/时间预算,搜索结果不相关时改query,网络失败按幂等读操作重试与backoff;不是把模型自述“还需更多信息”当无限循环许可证。checkpoint存已完成结果和pending call,恢复先确认调用是否已完成。
- 评估多轮成功率、证据正确率/可追溯、修改目标后的符合率、预算和恢复质量;长context测例加入中途纠错/相互矛盾证据/旧摘要错误,不能只测单轮问答accuracy。
手动走一遍
第1轮查某技术A优点,存证据E1;第2轮用户增加“只比较内存且需支持长输入”,任务版本v2保留此约束。工具得到长论文E2,context放内存相关段落、页码和E2ID,其余外存;摘要不写“已证明A最好”,而记测量环境与未核实现。第3轮发现E1是旧版本,保留冲突并重新查证,避免摘要反复自引用。
规模与取舍
每轮模型开销随输入/输出token和模型架构增长;预算固定可控context占用,但检索/外存/摘要额外消耗。轮数R的成本要算全部tool+model+摘要调用,不能仅最终答案生成时间。
易错点与追问
容易失分的边界
- 全部状态只在对话窗口。
- 摘要把假设变事实。
- 工具结果无call/source ID。
- 保留证据却丢用户否定约束。
- 没有停止预算。
- 恢复重复执行pending动作。
继续深挖
- 摘要错了如何回到原文修复?
- 用户改目标后如何避免旧工具结果误用?
- 外存检索怎样保证关键约束不会漏?
- 多轮评测怎样测引用失真?
