AI Agent 工程 · 10
10.3 实战:SQLite 持久化订单与售后工单
运行真实 SQLite 教学存储,验证授权、租户隔离、事务与幂等建单。
操作与系统位置
运行 npm run test:agent-course。v4-enterprise-store.mjs 用 Node 内置 node:sqlite 在临时目录建立实际 SQLite 文件,创建 merchant、customer、order、ticket 和 idempotency key 表;脚本结束删除临时文件。它不连接 Shopify、ERP、支付系统,也没有真实客户数据。
查询订单(merchant + customer + order) → 校验 → 事务建工单 → 写幂等键
预期五项输出:授权查询、租户隔离、首次建单、重复请求复用结果、跨租户拒绝。接口重试不能制造两个售后工单;工具超时后重试应携带同一幂等键。
排查、验收与边界
若 idempotent ticket 失败,检查是否先查 key 再插入 key,且两步放在同一事务。若 access denied 失败,检查 SQL 是否遗漏 merchant 或 customer 条件。生产迁移到 PostgreSQL 时还需处理连接池、并发、备份和访问控制;本地 SQLite 测试不覆盖这些。
主动回忆:为什么“订单存在”与“调用者有权创建该订单的工单”是两条不同判断?
- 必须记:幂等键保护重试,不授权动作。
- 建议记:临时测试数据库不等于备份方案。
- 不用记:示例工单 ID。