--- tags: [test/review, ai, agent-design, rag] create time: 2026-08-09 12:00 --- # 上下文工程与记忆管理 — 测试题 ## 概述 本测试覆盖 RAG 完整链路(Chunking → Embedding → 检索 → 重排)、Prompt Context 组装策略、Prompt 压缩方法以及 Agent 三层记忆架构。共 10 道题目(6 选择 + 3 填空 + 1 简答)。 --- ## 一、选择题(6道,由浅入深) > **难度阶梯**: Q1-Q2 基础概念 → Q3-Q4 核心原理 → Q5-Q6 深入应用/边界场景 ### Q1(基础)— 考察定义层面 RAG(Retrieval-Augmented Generation)解决 LLM 的哪些问题? A. 推理速度慢和成本高 B. 知识截止和幻觉问题 C. 不支持多语言 D. 无法调用外部工具 ### Q2(基础)→ 以下哪种 Chunking 分块策略被推荐为实际项目的最佳实践? A. 固定长度按字符数 N 切割,简单快速 B. 语义边界在标题段落间切割 C. 递归分块 + 重叠——先按 Markdown 层级分,超阈值再按句子切,保留 10-15% 重叠区 D. 文档感知基于 PDF 解析的结构信息 ### Q3(进阶)— 核心原理 Top-K 检索流程中,为什么 Cross-Encoder 比 Single-Encoder 精度高约 10-15% 但只用于二次筛选而非全量检索? A. Cross-Encoder 模型更小更快 B. Cross-Encoder 速度慢 20 倍,只做二次筛选 C. Single-Encoder 只能处理单条查询 D. Cross-Encoder 需要 GPU 加速而服务器没有 ### Q4(进阶)— 比较/辨析 关于 RAG 和记忆的关系,原文的结论是: A. RAG 可以完全替代记忆模块 B. 记忆可以完全替代 RAG C. 两者正交互补而非互斥——RAG 面向外部知识,记忆面向个性化数据 D. 它们本质上是同一个东西的不同叫法 ### Q5(深入)— 场景推理 一个智能客服对话系统已经持续交互了 30 轮,当前 token 预算只剩 500 tokens。以下哪种 Context 压缩方法的优先级最高? A. Token 池修剪——计算 Self-Influence Score B. 摘要浓缩——用 LLM 将多个片段合并为一句话 C. 信息密度排序——按非停用词比例保留高密度片段 D. 全部丢弃以节省 token ### Q6(深入)— 源码级/边界场景 Agent 的三层记忆架构中,"用户在交互中表达的偏好和事实陈述会被抽取并持久化"属于哪一层? A. 短期记忆 B. 工作记忆 C. 长期记忆 D. 以上都不是 --- ## 二、填空题(3道) ### F1 — 填空1 Prompt Context 组装的优先级顺序是:_____ > 事实上下文 > 历史对话。永远不要盲目把全部 Top-K 塞进 Prompt——token 预算有限,超出的部分会触发 truncation 丢失重要信息。建议按_____降序填充直到触及 token 上限。 > **提示**: 回想原文中关于组装优先级的描述。 ### F2 — 填空2 长期记忆的更新策略包括四种:新增(新发现信息插入)、修正(标记旧记忆为 obsolete)、合并(碎片信息聚合)、_____(随时间推移降低旧记忆权重,weight *= decay_factor)。 > **提示**: 原文中的第四个关键词。 ### F3 — 填空3 向量维度选择的权衡:768 维够用且快,_____ 维更精细但消耗更多内存。国内常用的 text-embedding-v3 默认 _____ 维。 > **提示**: 原文中提到的高维度数值。 --- ## 三、简答题(1道) ### S1 某知识库搜索产品采用 RAG 架构,用户反馈"回答不准确,检索到的文档似乎与问题无关"。请结合 RAG 全流程分析可能的原因和解决方案,涵盖: 1. Chunking 阶段的问题 2. 检索阶段的问题 3. Context 组装的问题 4. 重排环节的缺失 > **答题框架提示**: > 1. 每个阶段的常见陷阱 > 2. 对应的改进方案 > 3. 优先级排序(先排查哪个阶段) --- ## 参考答案与解析 ### 选择题答案 | 题号 | 正确答案 | 解析 | |------|---------|------| | Q1 | B | RAG 通过检索增强生成补充 LLM 的知识库,解决两个核心问题:① 知识截止(LLM 训练时未包含的最新信息);② 幻觉(编造不存在的事实)。RAG 不解决推理速度或代码能力问题。 | | Q2 | C | 递归分块+重叠是推荐的综合方案:先按 Markdown 层级保持结构完整性,同一块超限再按句子切,相邻块保留 10-15% 重叠避免关键句被拆分。这是兼顾精度和效率的最佳实践。 | | Q3 | B | Cross-Encoder 对 query-document 对做联合编码,精度高 10-15%,但计算复杂度高 20 倍。所以先用 Single-Encoder/BM25 召回 Top 50,再用 Cross-Encoder 精排取 Top 5。 | | Q4 | C | 面试常考点:RAG 面向的是外部知识(文档、手册),记忆面向的是个性化数据(用户偏好、历史对话)。两者正交互补而非互斥。 | | Q5 | C | 信息密度排序是最实用的压缩方法——计算每 token 包含的事实数量(非停用词比例),保留高密度的核心片段,丢弃废话。不需要额外 LLM 调用(摘要浓缩有信息损失),也不需要复杂计算(Token 池太贵)。 | | Q6 | C | 长期记忆 = 跨会话的知识库。用户偏好(技术栈偏好)、事实陈述(PostgreSQL 支持 JSONB)、决策记录都会被抽取存储到向量数据库中。短期记忆是当前会话内的滑动窗口。 | ### 填空题答案 | 题号 | 答案 | 解析 | |------|------|------| | F1 | `系统提示`;`相关度` | 系统提示是固定的角色和行为准则,不可变且最高优先级。事实上下文按相关度降序填充,直至触及 token 上限为止。 | | F2 | `衰减` | 记忆的 decay_factor 确保旧信息不会永远占据主导地位。例如每次访问时 weight *= 0.99,随着时间推移逐渐降低旧记忆的检索优先级。 | | F3 | `1536`;`1536` | 768 维够用且计算快,1536 维更精细但占更多内存。text-embedding-v3 默认的 1536 维在国内生态中最常用。 | ### 简答题参考答案 S1:**参考答案要点**: 1. **Chunking 问题**:固定长度切可能截断语义;建议使用递归分块+10-15% 重叠。如果文档格式不规范(PDF 解析差),考虑改用文档感知分块。 2. **检索问题**:向量相似度可能召回语义相似但不相关的文档。引入 BM25 关键词匹配做混合检索,或提升 Top-K 数量后靠重排过滤。 3. **Context 组装问题**:盲目塞入全部 Top-K 导致关键信息被 truncation 丢弃。应按相关度降序逐段填充,直到 token 上限,或使用信息密度排序优先保留核心片段。 4. **重排缺失**:缺少 Cross-Encoder 重排环节意味着 Top-K 直接注入而没有二次精筛。加上重排可以显著提升准确率 10-15%。 5. **排查优先级**:先检查 Chunking(源头质量决定上限)→ 再调 Top-K 大小 → 加 Cross-Encoder 重排 → 最后优化 Context 组装策略。 **评分标准**:答出任意 2 个要点即可得满分;完全正确需覆盖全部要点。 ## 关联笔记 - [[Eino DAG 工作流设计]] - [[沙箱权限治理]] - [[循环状态机在Agent中的应用]]