This audit instrumented the agent's memory layer (mem0), ran 5 Ferryte structural verification scenarios, and attributed 1 reported wrong answer to the memories that caused them. Result: 3 scenarios passed, 1 warned, 1 failed, with 1 observed blind-spot and 1 structural capability gap.
Each scenario seeds canary data, actuates the backend's own delete/scoping APIs, and verifies both retrieval results and raw store contents — reducing the risk of a "canary passed but tainted context still stored" false positive.
| Scenario | Verdict | Seeded | Deleted | Findings | Duration |
|---|---|---|---|---|---|
| source-revocation | FAIL | 6 | 6 | 1 | 412 ms |
| cross-tenant-isolation | PASS | 8 | 0 | 0 | 230 ms |
| stale-fact | WARN | 4 | 0 | 1 | 198 ms |
| memory-poisoning | PASS | 5 | 0 | 0 | 305 ms |
| mosaic | PASS | 6 | 6 | 0 | 244 ms |
question: “what plan is this customer on?” · tenant: acme
Ferryte reports its own limits. Anything listed here was not proven safe — it was unverifiable on this backend, on this run.
| Backend | Kind | Detail |
|---|---|---|
| mem0 | derived-summary | Summaries created before instrumentation have no recorded source edge. |
| Backend | Missing capability | Why it matters |
|---|---|---|
| mem0 | DERIVED_ENUMERATION | Cannot enumerate derived artifacts; blast radius is incomplete. |
Sample report generated from the multi-tenant leak demo. Names anonymized.
Ferryte instruments every memory write, retrieval, and delete via ferryte.instrument(), building a lineage graph from each source to every derived artifact. Attribution ranks memories against a wrong answer using recorded answer→memory edges (when available), retrieval traces, IDF-weighted content overlap with shared-span evidence, and semantic residue. Counterfactual replay ablates a suspect from live retrieval to show what the agent's context would have been without it. All checks run inside the client's environment. Ferryte sends no memory content to a hosted Ferryte service; this local report may contain excerpts and should be reviewed before it is shared.