AI Agent 工程 · 07
07.2 实战:可恢复且受授权的客服会话
用轻量内存存储演示会话恢复,并验证不同客户不能复用状态。
最小实践
saveSession 把 { sessionCustomerId, activeOrderId } 写入进程内 Map;resumeSession 只有在当前 customerId 匹配时才返回它。第一次查询后保存状态,第二次售后咨询可继续定位订单,但仍必须在做敏感动作前调用授权工具。
已登录客户 + sessionId → 校验 owner → 恢复最小状态 → 再次核验订单
运行 npm run test:agent-course。预期 trusted session 与 isolated session 都通过:后者验证 Ben 不能恢复 Amy 的 s-amy。这是教学用内存,重启会丢失;生产应使用受访问控制、加密并有保留策略的持久化存储,第 10 章再讨论数据库。
失败排查:若越权恢复,检查 session 记录是否少了 owner,或 resume 是否只按 sessionId 读取。不要把客户身份作为模型可随意填写的字段。
主动回忆:会话恢复后为什么还要重新验证订单权限?
- 必须记:Memory 不授予权限,State 也要绑定身份。
- 建议记:恢复数据应尽可能小。
- 不用记:
s-amy这个示例 ID。