04 · 记忆与技能面试题¶
助手今天收到一条“本月起执行”的通知,为什么还要保留昨天相信的旧规则?把事实当名册、技能当操作手册会更好理解:名册需要说明何时有效,手册需要管理版本,而两者都不能自动给人一把财务系统钥匙。
配套 学习章:记忆与技能,本章覆盖 Q066–Q068,关注时间、经验与过程知识的生命周期。
Q066 长期事实为什么需要实体解析与两条时间轴?¶
优先级:P0
30–60 秒回答:
长期事实先要确认说的是谁、在什么条件下成立,不能按同名或文本相似直接合并。业务有效时间回答“哪天适用什么”,记录时间回答“系统当时知道什么”。延迟通知和更正需要保留这两条轴及来源历史,冲突处理也要核对主体、类别、地区与时间,不能简单让最后写入者取胜。
展开详细答案、追问与案例
详细答案:
写入前先解析实体和事实类型。两位都叫林悦的员工要结合租户、业务 ID、别名和来源确认身份;同一政策的新版本可以关联同一实体,但内容版本必须分别保存。“本次去海岚”是任务事实,不能自动成为常住城市。计划、公告、承诺与已经发生的事件也应区分,否则抽取出一个日期,就可能把未来安排误当成当前状态。
再分别保存业务有效区间和系统记录历史。住宿标准从 11 月 1 日由 600 改为 700,系统在 11 月 5 日才收到通知。更正后问 11 月 2 日差旅适用什么,应使用新规则;调查系统在 11 月 3 日为何回答旧值,则要恢复当时已知材料。一个 updated_at 无法表达两类问题,覆盖当前值也无法解释延迟入库与更正过程。
冲突判定必须先对齐适用条件。“管理人员 700、普通员工 600”可以同时成立,晚到的转述也未必比正式制度可信。写入流水线应保留原事件,抽取候选、解析主体、检查条件与来源,再追加、替代或保留待判冲突。时间图能帮助表达关系及其失效,具体类型和可信度仍由业务约束。更正还要关联派生摘要和缓存,防止主表更新后旧事实继续传播;保留历史提高解释能力,也增加存储与访问治理成本。
常见追问:
- Graphiti 的时间字段能直接套所有业务吗? 不能。需核对字段语义;例如其关系模型将事实有效时间与记录生命周期分开,未来计划的表达仍需区分公告当前存在与规则未来适用。
- 模型认为两条事实矛盾就能删除旧值吗? 不应直接删除。先确认同一主体和条件,保留来源与更正关系,高影响规则可进入待确认区,避免一次抽取错误覆盖可靠事实。
- 为什么历史查询还要权限检查? 时间条件不赋予访问权。读取仍按当前主体和业务保存合同选择材料,历史追溯不能成为跨租户读取或访问撤回数据的通道。
实战案例:
政策助手在 11 月 5 日收到住宿金额变更,初版把旧值直接覆盖为 700,于是解释不了 11 月 3 日的旧回答。处理时保存正式通知、业务生效日和接收事件,关联旧新断言,并按员工类别查询。验收用四个问题检查 10 月规则、11 月 2 日规则、11 月 3 日系统已知内容及另一位同名员工;分别得到对应证据,既不把新金额套到全部历史,也不合并不同员工。
常见误区:
用接收时间替代生效时间;认为三元组写入成功就是事实成立;按姓名合并主体,或看到数值不同便判为矛盾。
微练习:
为延迟通知、同名员工和不同人员标准建立事件与事实表。验收:能回答“当时适用什么”和“当时知道什么”,并指出每次查询的主体、条件、来源及时间口径。
学习与参考: 配套学习章 · Graphiti 关系模型 · 关系维护实现 · LangGraph Persistence
Q067 反思经验怎样写入记忆而不制造新错误?¶
优先级:P1
30–60 秒回答:
反思先作为带证据的候选经验,保存触发场景、失败轨迹、适用范围和验证结果,再按任务检索使用。它改变后续上下文,不等于模型参数自训练。经验应有过期、更正与撤回机制,用正反例验证是否减少同类错误;工具原文中的指令不能借“记忆”升级成永久操作规则。
展开详细答案、追问与案例
详细答案:
反思的输入应是可核对的失败证据,而不只是模型对自己的评价。先确定任务目标和实际结果,定位错误发生在缺少条件、选错证据、工具执行还是生成阶段,再生成候选改进。例如三次遗漏员工类别,可以建议“比较住宿标准前检查类别是否明确”;不能直接推成“每次都先追问”,因为输入可能已经包含该条件,额外澄清反而降低完成率。
候选经验记录来源轨迹、适用任务、触发条件、预期改变、版本和验证结果,读取时只检索少量相关项,保留与用户要求、正式业务规则不同的信任级别。Reflexion 使用语言反馈与情节记忆影响后续尝试,机制是让下一次推理看到经验,并不通过这一过程更新模型权重。一次成功不足以证明经验普遍有效,应同时比较适用样例与不应触发的反例。
写入还需要治理。错误工具输出、网页命令和个人敏感信息不应未经筛选永久保存,避免污染在多个会话中扩散。事实更新、工具升级或经验产生反作用时,按来源依赖撤回并阻止新选择;历史记录按保存规则保留。更多记忆可能减少重复犯错,也会带来检索干扰、陈旧规则与额外成本,因此评估应分别看目标错误减少、无效澄清、错误动作和任务资源消耗,而不是只统计写入条数。
常见追问:
- 怎样判断是经验改进还是模型随机波动? 固定任务和评价合同,比较有无该经验的运行,观察适用与反例的结果分布,并保留轨迹;不把单次成功归功于新规则。
- 用户说“记住以后都这样做”就直接变成技能吗? 先确认指代、范围、授权和持久保存要求。个人偏好、业务事实与工具操作规则有不同生命周期,不能跳过执行权限或过程版本管理。
- 记忆已入向量库,怎样删除影响? 除原记录外,还要定位引用它的摘要、候选经验和答案缓存;新读取排除失效版本,避免只删一行而派生内容继续传播。
实战案例:
助手遗漏人员类别后生成经验“回答前必须追问员工类别”。测试发现完整请求也被打断。处理时把触发条件改成“当前任务与有效证据中均未明确类别,且类别会改变结论”,并保留失败样例和来源。验收用类别已给出、类别无关、类别缺失且决定结果三组请求,检查仅第三组进入必要澄清;再切换工具版本,确认相关经验可失效,不继续要求已不需要的步骤。
常见误区:
把反思当成权重训练;把模型自信当验证结果;保存“永远这样做”的宽泛规则,忽略负面作用与原始来源。
微练习:
从一次可复现错误写一条带触发条件的候选经验。验收:提供一个适用样例、两个不应触发的反例、撤回条件和观察指标,说明它怎样进入下一次上下文。
学习与参考: 配套学习章 · Reflexion 原论文 · 上下文工程 · LangGraph Persistence
Q068 Skills 怎样渐进加载并安全升级?¶
优先级:P0
30–60 秒回答:
Skill 把适用条件、指令和脚本模板等资源组织成可加载的过程知识:先看元数据,匹配后读正文,再按需取资源。它不等于事实库,也不自动授予工具、文件或网络权限。升级要固定指令、依赖和工具合同版本,用正常与失败样例比较后逐步切换;回滚新任务路由不会撤销旧版本已产生的业务动作。
展开详细答案、追问与案例
详细答案:
先区分事实和过程。员工类别、政策金额来自带来源的事实;怎样补缺项、比较条款和生成报告属于过程。Skill 的入口应说明适用范围和必要步骤,把变化频繁的地区金额交给检索,将模板、参考和校验脚本放在按需资源中。按元数据、正文、具体文件渐进加载,能减少无关信息常驻,也要求宿主正确解析文件依赖和版本,不能只拿到名称就假定内容可用。
权限独立于描述。读取 SKILL.md 不会修改模型参数,也不让附带脚本天然具备网络、凭据或磁盘权限。Agent Skills 规范的 allowed-tools 是实验性字段,宿主支持情况与实际执行授权需分别确认;说明中写“发送邮件”也不能代替当前用户权限和业务需要的动作确认。读取说明、安装依赖与执行脚本是不同动作,应各自经过宿主可控路径。
升级按发布包管理:固定指令、脚本、模板、依赖以及工具输入输出合同,运行开始绑定版本,避免任务中途混用。用固定任务集覆盖正常输入、条件缺失、来源冲突、权限撤回和旧脚本失败,比较事实完整性、无效澄清、错误动作与资源消耗。若新版退步,可让新任务回到旧版;已在途任务与既有产物仍按其版本处理,必要时单独修复。方法复用提升一致性,也会让一个错误包影响更多任务,因此需要可定位的版本与撤回机制。
常见追问:
- Skill 和工具是不是同一个东西? 工具是可调用的操作合同,Skill 描述怎样组织步骤并可能引用工具或脚本。读会操作方法并不说明执行器已经提供操作能力。
- 只回滚 SKILL.md 为什么可能无效? 模板、脚本和依赖可能仍是新版本,输入输出已不匹配。回滚应针对一致发布包,并核对在途任务绑定的版本与外部结果。
- 怎样判断渐进加载没有漏步骤? 检查入口是否能路由到必须资源、引用是否存在、触发条件是否覆盖关键分支,再用需要例外条款的任务验证按需加载路径。
实战案例:
比较技能从 v2 升到 v3,模板新增来源有效期,解析脚本却仍输出旧字段。初版只替换说明,报告静默缺列。处理时固定完整发布包,激活前校验输出合同,任务绑定技能版本。验收运行正常比较、缺类别、权限撤回和旧脚本失败样例,确认缺字段被明确阻断;若退回 v2,新任务使用完整旧包,已经生成的 v3 报告仍列入修复清单,不被误报为自动恢复。
常见误区:
把技能包当授权包;把读取指令当参数训练;只测试正常路径,或认为回滚文件就回滚了外部业务历史。
微练习:
为政策比较技能列发布清单和五个验收样例。验收:能定位每个资源版本、真实权限来源、触发加载步骤,以及回滚后仍需处理的在途任务和产物。
学习与参考: 配套学习章 · Agent Skills 规范 · Deep Agents Skills