Files
autumn-recruitment/06.AI/agent-design/上下文工程与记忆管理_test.md

148 lines
6.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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中的应用]]