Ten tests that probe whether the model correctly uses Aperio's persistent memory and wiki tools β recall, remember, update_memory, forget, wiki_search, wiki_get, wiki_write, and the self-memory quad. This is Aperio's core value proposition: does the agent actually store, retrieve, and synthesize knowledge across conversations?
These are observation-based tests. Paste the prompt, watch how the model responds β does it call the right tool? Does it use the returned data correctly? Unlike file-generation tests, there's no automated verify command here; the model's own output is the result. Each test has a checklist of what to look for. Start fresh conversations when possible.
| Tool | When to call | Key rule |
|---|---|---|
recall(query?) | User asks "what do you know aboutβ¦" or "check my memories" | Call with no args first β never ask the user to narrow it down |
remember(content) | User says "remember thatβ¦", "save this", "keep this" | Call immediately, say "Saved." Nothing else |
update_memory(uuid) | New info contradicts or supersedes stored knowledge | Prefer update over creating a duplicate |
forget(uuid) | User explicitly asks to delete something | Only call on explicit instruction |
wiki_search(topic) | Check if a wiki article exists before writing one | Always call before wiki_write |
wiki_get(slug) | Read a specific article | Surface the breadcrumb as first line of reply |
wiki_write(slug, ...) | β₯3 memories on same topic β synthesize an article | Cite memories inline as [[mem:uuid]] |
self_recall / self_remember | Agent's own continuity store | Autonomous β no permission needed |
Start an Aperio server and open a chat session. Paste each prompt into a fresh conversation when possible to avoid cross-talk.
npm run start:local
# In another terminal:
npm run chat:localClear memory between runs if needed: rm -f var/store.sqlite var/wiki.sqlite && npm run migrate
Each test is a prompt to paste. The model's response IS the test result β did it call the right tool, use the returned data, and follow the memory protocol rules?
Probes: calls recall with no arguments, reads and acknowledges the result
recall with no arguments? (It should NOT ask you to narrow it down.)Probes: calls remember immediately, minimal confirmation, appropriate type/importance
remember immediately without asking for confirmation?Probes: calls recall with a query string, uses the result to answer
recall with a relevant query (e.g., "tech stack" or "frontend")?Probes: calls recall to find existing memory, calls update_memory with the UUID, flags contradictions
recall first to find the existing memory?update_memory with the correct UUID?Probes: calls recall to find memory, calls forget with UUID, confirms deletion
recall to find the specific memory?forget with the correct UUID?Probes: calls wiki_search before wiki_get, surfaces the breadcrumb
wiki_search first to find articles about memory architecture?wiki_get on the best-matching slug?π From wiki: [[slug]]?Probes: checks existing articles, gathers memories, synthesizes, cites sources
remember for each fact as you give it?wiki_search before attempting to write?wiki_write with source_memory_ids linking to the 3 memories?[[mem:uuid]] inline?Probes: autonomous use of self_recall/self_remember, no permission-asking
self_recall (or equivalent) to check its own memory store?Probes: correct type assignment, importance levels, tag usage
fact for #1, preference for #2, fact for #3, decision for #4?Probes: end-to-end memory workflow, tool chaining, correct sequence
| Signal | 0 = fail | 1 = pass |
|---|---|---|
| Called the correct tool | hallucinated a fact instead of calling recall; used wrong tool | correct tool for the intent |
| Followed protocol rules | asked "can you narrow it down?"; said "do you want me to save that?" | called immediately, minimal response |
| Used returned data | ignored recall results; answered from training data | read and acknowledged stored data |
| Surfaced wiki breadcrumb | answered from wiki but didn't show the breadcrumb | breadcrumb is first line of reply |
| Handled contradictions | silently overwrote; created duplicate; didn't flag | flagged conflict before updating |
Click Pass/Fail as you observe each test.
| Test | Result | Notes |
|---|---|---|
| 1. Basic Recall | β | |
| 2. Save Memory | β | |
| 3. Query Recall | β | |
| 4. Update Memory | β | |
| 5. Forget | β | |
| 6. Wiki Search & Read | β | |
| 7. Wiki Write | β | |
| 8. Self Memory | β | |
| 9. Types & Importance | β | |
| 10. Full Knowledge Cycle | β | |
| TOTAL: ____ / 10 passed | ||