工程与开发者代理测试的记忆快照
通过可以固定和重放的记忆快照可靠地测试代理
可靠的代理测试需要可控的记忆状态。没有快照,每次测试运行的记忆不同,结果无法比较。MemoryLake 提供记忆快照功能——在已知状态下固定记忆,进行测试,比较输出。
问题:没有记忆快照,代理测试无法重现
测试 A 通过。测试 B 失败。是代理代码还是记忆漂移?没有固定的记忆,每次测试都在不同的上下文中运行。回归测试变得不可靠。代理质量的持续集成变得不可能。
MemoryLake 如何通过快照支持代理测试
命名记忆快照
固定特定的记忆状态以进行测试。
每个测试的快照选择
每个测试在已知的记忆状态下运行。
运行之间的记忆差异
比较测试之间的变化。
跨环境的快照推广
在开发、预发布和持续集成中使用相同的快照。
免费开始使用
永久免费 · 无需信用卡
记忆快照测试的工作原理
- 连接 — 在已知的良好记忆状态下创建快照。
- 结构 — 测试在运行时将记忆固定到特定的快照。
- 重用 — 持续集成在一致的记忆下运行;结果可以干净地比较。
之前与之后:使用记忆快照的代理测试
| DIY memory | MemoryLake | |
|---|---|---|
| Test reproducibility | Memory drift breaks tests | Pinned snapshots |
| Regression detection | Unreliable | Reliable |
| Snapshot promotion across envs | Custom | Built in |
| Memory diff between runs | Manual | Semantic diff |
适合谁
需要可靠记忆状态进行测试、回归检测和持续集成的工程团队,构建代理质量保证管道。
可运行的 demo约 1 分钟
在你自己的账号上跑通这个场景
Tollquay Freight 的报价代理以项目记忆为准:每条运单规则一条事实,代码读取它的 metadata。8 条测试守着这个代理,测试要读记忆,于是团队用三种方式钉住测试夹具。一周里同事们改了几条规则、代码一行没动之后,按 fact id 钉住的夹具报告「每个钉住的 id 都还在」,8 条测试却翻了 3 条:fact update 保留 id,所以 id 钉住的只是名字,不是内容。直接读活记忆的测试翻了 4 条;等真正的边界 bug 上线时,2 条该拦住它的测试只拦住 1 条:另一条测试的上限已被同事挪走,还有一条测试因为 bug 恰好抵消了一次记忆改动而变绿。按内容钉住的夹具翻转 0 条,2 条全部拦住。
你会看到
- 三种夹具并排:直接读
fact list的活记忆、用fact get逐个加载的 fact id 列表、以及按读到时的样子存进文件的事实(文本、metadata、updated_at、sha256) - 同事 5 次写入、代码不变:id 夹具的检查显示 9/9 个 id 都能取到,同时 3 条测试翻转;它也看不见活记忆里新增的那条规则(新 id)
- 一次把恰好等于上限的值也拒掉的重构:在活记忆上,30 kg 的边界测试已不再测边界(上限已改为 25 kg),周六那条测试则因为 bug 抵消了一次记忆改动而变绿
- 按内容钉住:0 条假红,2 条测试都拦住了 bug,drift 检查列出全部 5 处变化,包括一次只改 metadata 的审批;
drift子命令、本地 Web 界面,全程不调用模型
需要: 一个 MemoryLake API key · memorylake CLI · Python 3.9+
运行
git clone https://github.com/memorylake-ai/memorylake-usecases.git cd memorylake-usecases/snapshot-fixture-memory export MEMORYLAKE_BASE_URL=https://app.memorylake.cn/openapi/memorylake export MEMORYLAKE_API_KEY=sk-… python3 demo.py # or: python3 web/server.py
看它跑起来 · 真实录制,未剪辑
相关场景
Engineering & Developer用于可重现代理运行的记忆重放Reproducing agent behavior requires reproducing the memory state. MemoryLake provides memory replay for deterministic agent runs. Free to get started.
Engineering & Developer用于代理调试的记忆时间旅行Debugging agents requires seeing memory at the time of the bug. MemoryLake provides time-travel queries on memory history. Free to get started.
Engineering & DeveloperA/B 测试代理记忆策略Comparing agent memory strategies needs controlled experiments. MemoryLake provides branched memory for A/B testing. Free to get started.
Engineering & Developer需要确定性重放的代理的记忆Deterministic agent replay requires identical memory state. MemoryLake's commit history enables true deterministic replay. Free to get started.
Engineering & Developer针对代理输出的记忆感知评估Evaluating agent outputs without memory context misses why outputs failed. MemoryLake links eval results to retrieved memory. Free to get started.
Engineering & Developer通过记忆重放重现代理错误Production agent bugs are hard to reproduce locally. MemoryLake's memory replay makes them reproducible. Free to get started.
常见问题
快照存储成本?
快照存储成本?
增量编码;最小。
跨环境快照共享?
跨环境快照共享?
是的 — 在开发、预发布、生产类环境之间推广快照。
自托管?
自托管?
是的 — 企业级部署在您的 VPC 中。