常见问题 FAQ
边学边练请访问 7 天学会 Memory Engineering:首页记忆分层可视化、/learn 七天课表、/lab 五个本地沙盒、社区与资源矩阵。
本文按主题组织真实工程问答。每条回答尽量包含为什么会这样与怎么处理,避免一句话打发。
概念与边界
Q1. Memory Engineering 和 RAG 有什么区别?
答: RAG 通常面向相对静态的知识库问答:文档切块、检索、生成。Memory Engineering 面向 Agent 生命周期:对话与工具轨迹会持续写入,需要门禁、冲突合并、遗忘、跨会话个性化与多租户治理。
你可以做 RAG 而不做完整记忆工程;但做长期 Agent 时,只上「文档向量库」往往不够——还要处理偏好 KV、会话摘要、程序策略与评测。详见 入门介绍。
Q2. 上下文窗口越来越大,还需要外挂记忆吗?
答: 需要。原因不只是「装不下」:
- 成本:每次把全年聊天塞进提示,账单与延迟线性恶化。
- 噪声:旧闲聊稀释当前任务。
- 隐私:敏感历史反复暴露在提示与日志中。
- 治理:无法按条删除、审计、衰减。
长窗口是 Working 的扩容,不是 LTM 的替代。正确用法是:窗口内放「此刻该激活」的内容,外存放可检索资产。
Q3. 情景 / 语义 / 程序 / 偏好一定要四张表吗?
答: 逻辑上要分,物理上可同库不同 kind 字段。分开的价值是:检索策略与权限不同。例如偏好要高优先级精确读;情景要时间衰减;程序要版本管理;语义要冲突检测。混成无类型大杂烩,三个月后无法调参。
Q4. 「程序记忆」是不是就是 System Prompt?
答: System Prompt 是程序记忆的运行时投影,不是全部。完整程序记忆还包括工具定义版本、成功/失败策略、Reflexion 模板、可灰度的技能包。Prompt 应能从程序记忆生成,并支持回滚。
上下文工程
Q5. 滑动窗口丢了早期关键信息怎么办?
答: 窗口负责连贯,不负责永久保存。关键信息应在写入门禁时进入 LTM(或会话结束摘要)。若已丢失:从日志回放重建摘要;并补规则——含「决定 / 约束 / 凭证变更」的 Turn 强 制入库。
Q6. Token 预算比例 20/60/20 能照搬吗?
答: 只能当起点。工具密集 Agent 常需增大 Retrieved;强人设助手增大 System 中的画像锚点。用评测集扫一圈比例,看 Faithfulness 与用户满意度,而不是拍脑袋。
Q7. 摘要后 Agent「记错了」,是谁的锅?
答: 常见因果链:生成式摘要幻觉 → 摘要被当事实写入 → 下一轮当证据引用。处理:
- 摘要旁路保存
source_turn_ids。 - 高关键断言用抽取式或结构化槽位。
- 用户可纠正;纠正触发旧摘要作废。
Q8. LangGraph Checkpointer 算长期记忆吗?
答: 主要是线程状态持久化(STM/工作流)。跨线程画像、语义检索、遗忘合规仍要 LTM 组件。详见 GitHub 项目。
向量检索
Q9. 相似度很高但答案仍错,为什么?
答: 相似 ≠ 相关 ≠ 正确 ≠ 当前任务可用。补齐:元数据过滤、时间衰减、重排、权限、矛盾检测。只调阈值解决不了「检对了但过期」的问题。
Q10. 该选 Chroma、Qdrant 还是 Milvus?
答: 原型与本地:Chroma 足够。需要强过滤/混合与中等规模生产:Qdrant 常被选。超大规模与云原生运维:评估 Milvus。先用适配层,避免业务代码绑死客户端。对照实验方法见生态导读文。
Q11. 换 Embedding 模型后检索变差?
答: 向量空间不可混用。必须重建索引,并在元数据标注 embedding_version。双跑旧新集合对比 Recall,再切流量。
Q12. HNSW 参数怎么调?
答: 一次只改一个:先 efSearch 看延迟-召回曲线,再考虑 M。没有冻结评测集就调参,等于随机游走。见 开发指南。
Q13. 要不要上 HyDE?
答: 开放域文档问答有时有效;用户记忆场景风险更大——假设文档可能写入错误实体。优先共指消解与查询扩展;HyDE 放实验开关。
知识图谱
Q14. 有了向量还要图谱吗?
答: 向量擅长模糊召回;图谱擅长关系与多跳约束(「同项目且未关闭的风险」)。中小产品可先 KV+向量;出现大量关系问题再上图,避免一上来运维两套重系统。
Q15. 图谱里事实打架怎么办?
答: 不要静默覆盖。用 valid_to 关闭旧边、降置信度、向用户澄清。冲突本身应可查询,便于审计。
Q16. 实体链接错了会怎样?
答: 错误边会污染多跳推理。落地:低置信链接进隔离区;人工或二次校验后晋升;检索时限制置信阈值。
多 Agent
Q17. 多 Agent 共用一个 Memory 集合可以吗?
答: 可以共用服务,不可以无命名空间共用可写集合。至少分层:全局只读 / 团队 / 个人。写入用协议(投票或权威),否则谣言放大器。见 最佳实践。
Q18. 联邦记忆的摘要会不会泄漏隐私?
答: 会,如果摘要含 PII 或可重识别细节。共享前跑脱敏与策略检查;默认共享「聚合洞察」而非原文;敏感域禁止出域。
Q19. 测试 Agent 如何避免污染生产记忆?
答: 独立 tenant_id 或独立集群;禁止测网凭证访问生产 collection;CI 使用一次性命名空间并在结束时销毁。
生产与架构
Q20. 什么时候该拆 Memory Service?
答: 出现多个运行时共用记忆、需要独立扩容/限流、或合规要求审计集中时拆。单 Bot 原型阶段模块化即可,但接口先按服务边界设计,避免将来挖肉。