Default file-based memory provider for StrawPot.
Two memory layers — Event Memory and a unified Knowledge store — using local JSON/JSONL files. Zero external dependencies.
# strawpot.toml
memory = "dial"- EM — Append-only event log per session. Fully automatic. Events are consolidated (deduped by task), ranked by relevance to the current task, and failures are prioritised.
- Knowledge (SM) — Facts and conventions, always included. Scoped to global, project, or role.
- Knowledge (RM) — Domain-specific entries, included only when the task keywords match.
Knowledge is scoped at three levels:
| Scope | Example |
|---|---|
| Global | "Always use conventional commits" |
| Project | "This project uses pytest" |
| Role | "Check migration dir before modifying models" |
Agents write knowledge via the denden remember RPC during execution:
denden send '{"remember": {"content": "This project uses pytest", "scope": "project"}}'
denden send '{"remember": {"content": "Payments API needs idempotency keys", "keywords": ["payment", "stripe"]}}'Entries are deduplicated and written directly to the knowledge store.
Agents can query stored knowledge on-demand via the recall RPC:
denden send '{"recall": {"query": "testing framework", "scope": "project", "maxResults": 5}}'Results are scored by keyword relevance and returned sorted best-first.
See DESIGN.md for architecture details.