附录 C 练习题


附录 C 练习题

八道题覆盖全书:12 题归位与算账(第 12 章)、3~4 题装配(第 2 章)、5 题记忆(第 4 章)、6 题检索(第 5 章)、7 题压缩(第 6 章)、8 题综合设计(全书)。提示默认折叠——先自己动手,卡住了再展开;每题提示只给思路与出处小节,不给完整答案。建议拿自己的项目当第 8 题的素材。

第 1 题 三问归位(1.2 节)

某编码 Agent 的某轮窗口里有以下六段内容,逐段过三问(谁产生 / 多久有效 / 谁负责裁剪),归入四成分之一:

  1. 系统提示里的输出格式约定("修改代码后必须跑测试并贴出结果");
  2. 用户 40 分钟前发的任务原文("帮我修复登录页在 Safari 的样式错乱");
  3. 第 5 轮 grep 的输出(现在第 28 轮);
  4. read_file 工具的 schema;
  5. 跨会话记忆里的一条:"该用户的项目用 pnpm,不要用 npm";
  6. 上一轮模型自己写的中间推理草稿。

提示:三问的关键在第二问(多久有效)与第三问(谁裁剪)。注意两处易错:第 3 项不是"记忆"——它来自外部世界且时效已过,是素材(且已到驱逐顺位第 1 位);第 6 项是模型产生的过程内容,但裁剪权在运行时策略手里,按本书口径归素材侧的过程信息(6.1 节压缩的原料)。第 5 项是标准的跨会话记忆。参见 1.2 节对照表与 4.1 节边界辨析。

第 2 题 预算核算(1.1 / 2.1 / 3.2 节)

一个 200k 窗口的文档问答应用:系统提示 3k token,工具 22 个共 4.5k,当前历史 55 轮共 61k,本轮检索注入了 12 段共 6.8k。输出要求较长(要写分析报告)。

  1. 算当前总占用与剩余空间;
  2. 判断输出预留(按 20%,2.1 节)是否安全;
  3. 若不安全,按驱逐顺序给出头两步动作;
  4. 复盘:12 段检索符合"预算倒推 k"吗?(2.1 分配表通常给素材多大份额?)

提示:先扣再分:常驻税 7.5k + 历史 61k + 素材 6.8k ≈ 75.3k,剩余空间看似宽裕,但长报告的输出预留要按上限留。第 4 问是本题的题眼:12 段是否过量不由绝对空间决定,而由分配表的素材配额与"无关片段是负资产"(1.1 节实测结论)共同决定——检索器给了 top-12 不代表该收 12 段(5.2 节选择三步)。驱逐顺序查 2.1 节四顺位表。

第 3 题 驱逐顺序定制(2.1 节)

一个数据分析 Agent 的窗口超限了。候选被驱逐项:

  • A. 三小时前的数据库 schema 快照(库结构基本不变)
  • B. 用户 20 分钟前提出的核心任务目标
  • C. 已完成的两次试查询及其报错过程
  • D. 当前正在迭代的第 4 版 SQL 与它的执行计划
  • E. 早期讨论中"方案 X 已被否决(性能不达标)"的结论

排出驱逐次序,并指出哪几项属于 pinned 最小集或其变体、绝对不能丢。

提示:统一逻辑是重取成本(2.1 节):A 可重查、C 的结论已沉淀、D 是当前工作集。B 是任务原文(pinned 第 1 项);E 是"否定信息"——它不在 pinned 四项字面里,但丢了它会重走弯路(6.1 节损失表),应作为"关键引用"或任务简报的一栏保住。思考:E 保成"一句话结论"与保"原文二十轮讨论",成本差多少?

第 4 题 位置编排(2.2 节)

客服 Agent 本轮要装入:系统提示、跨会话记忆(3 条偏好)、8 段政策检索片段(相关性从高到低编号 1~8)、近 6 轮对话、红线约束("禁止承诺政策外退款")、本轮用户输入。画出装配顺序(从窗口头部到尾部),并说明:哪几段是高熵内容、你把它们放在了哪里?

提示:套 2.2 节位置模板与 5.2 节落位模板:系统提示 → 记忆区块 → 最佳片段 [1] → (中部:历史、中等片段 [2]~[7] 等低熵内容)→ 次佳片段 [8] → 红线复述 → 用户输入。高熵内容清点:记忆偏好、[1] 与 [8]、红线、用户输入——检查它们是否全在首尾。政策条文若需保原序则"块内保原序、块间按相关性"(5.2 节)。

第 5 题 写入门槛(4.2 节)

一场客服会话结束时,轮末评估抽出了八条候选信息。逐条判断该不该写入跨会话记忆:

  1. 用户说:"以后发票都开这个抬头。"
  2. 用户本轮情绪激动,骂了三分钟物流。
  3. 用户当前查询的订单号 88880。
  4. 用户是企业账户,月采购量大。
  5. 本轮对话的完整原文。
  6. 用户说:"别给我打电话,发邮件。"
  7. 模型推测:"该用户可能是价格敏感型。"
  8. 用户上一句提到的退货原因(商品有色差)。

提示:用门槛三问逐条过:稳定吗 / 影响未来交互吗 / 能溯源吗。1、6 是显式信号 + 偏好,立刻写(4.2 节时机表);4 是事实,写;8 要看场景——一次性退货原因对下次会话多半无用,但若该用户反复退同类商品则可能升格为事实。3 是易变状态(4.1 节事故三);5 是会话过程(该走压缩归档不是记忆);7 是不可溯源的推测(门槛第三问);2 的正确处理不是记"骂了三分钟",而是抽成事实级信号(如"对物流体验不满,注意安抚")——想想两种记法的差别。

第 6 题 组装找错(5.1 / 5.2 节)

某团队的 RAG 组装流程如下,找出至少四处问题:

① 查询 = 最近 10 轮对话全文拼接 ② 检索 top-15,全部注入(不设阈值) ③ 片段不带来源与时间戳,直接拼接 ④ 片段按文档原顺序摆放,与相关性无关地夹在对话历史中部 ⑤ 输出契约写着:"请基于资料回答,不要编造。" ⑥ 上一轮检索过的片段,本轮原样保留在窗口里继续累积

提示:逐条对照:① 违反"查询用本轮问题构造"(5.1 纪律一);② 违反预算倒推与阈值过滤(5.2 选择三步;15 段全收 = 干扰项负资产);③ 丢掉编号 / 来源 / 时间戳三件套,引用契约无从谈起(5.2 格式化);④ 块间应按相关性、最佳片段放首尾——高熵内容沉在中部正是 lost in the middle 的靶心(2.2 / 5.2);⑤ 否定式禁令弱——应换成可校验断言三条(带编号、编号可校验、无依据即声明,5.2 第四节);⑥ 检索结果不是记忆,用完即逐(5.1 纪律三、4.1 口诀)。

第 7 题 压缩方案设计(6.1 节)

一个 45 轮的技术支持会话要触发压缩了。内容概况:第 15 轮明确任务与红线;第 618 轮排查网络配置(含两次失败尝试的结论);第 1930 轮定位到根因并验证;第 3142 轮处理一个插曲(用户问了无关的计费问题);第 43~45 轮回到主线。

  1. 设计分级压缩方案(哪段保原文、哪段入简报、哪段只留结论);
  2. 写出五栏任务简报的"已做决策"与"未决问题"两栏内容(凭题目信息拟);
  3. 指出两处最容易被摘要丢掉、但必须保住的信息。

提示:分级:近 K 轮(4345)保原文;630 轮压成五栏简报——注意失败尝试要进"已做决策"("已排除 DNS 与防火墙两点,根因为 MTU 配置");31~42 的计费插曲只留一句结论甚至不进简报(低密度)。必须保住的两处:任务原文与红线(pinned,禁区);"已排除的方案"(否定信息,6.1 损失表第二名)。自检:压缩后只拿简报问"当前任务与红线是什么"。

第 8 题 综合设计(全书;7.2 节流程)

你自己的一个真实应用(没有就虚构一个"内部 IT 工单处理 Agent"),按 7.2 节十步流程产出三件套:

  1. 一张预算总表(四成分 + 输出预留 + 机动,合计 100%,每个数字标出处或实测方式);
  2. 一张最终装配图(窗口头部 / 中部 / 尾部落位,高熵内容标出);
  3. 一份收工自查清单的勾选记录(7.2 节十项,逐项给证据)。

附加题:为它写出驱逐顺序定制版与压缩触发线,并设计一条"事故复盘"流程(用快照 diff 还原一次故障)。

提示:照抄 7.2 节的流程骨架,但每个决定都要回你的场景重新裁决:工具数量与常驻税用 3.2 节 ce_tools.py 实测;记忆三层里"知识库要不要单列"取决于你的素材体量(4.1 节判据);压缩触发线看你会话的长尾分布(6.1 节四条触发)。卡住时回读对应章节的表格——全书每一张表都是这道题的零件。完成后把它贴给同事评审:能被追问"为什么是这个数"而答得出,才算过关。

题号 考点 主要出处
1 三问归位与成分辨析 1.2 / 4.1
2 预算核算与常驻税 1.1 / 2.1 / 3.2
3 驱逐顺序与 pinned 2.1
4 位置编排 2.2 / 5.2
5 写入门槛 4.1 / 4.2
6 检索组装 5.1 / 5.2
7 压缩设计 6.1
8 综合设计 全书 / 7.2

作者与出处
原作者: 灏天文库
整理: 灏天文库整理
本站整理收录,版权归原作者/开源协议所有;欢迎通过原文链接访问源仓库。
发布者: 作者: 灏天文库 转发
评论区 (0)
U