Field & feed
App: engram.orkestia.dev — one screen, the last 40 memories plus anything written while the tab is open. Same org session as the rest of *.orkestia.dev.
Algorithms: Write & recall.
Feed
GET https://api.orkestia.dev/api/app/agents/memory/stream
Cookie session. EventSource cannot attach a Bearer, so this is not on the workflow API.
Optional query: timeout (1–600s, default 600 — then close and the client reconnects).
The connection recycles every 10 minutes. That is a reconnect, not an error. Idle ticks send a keep-alive.
Events
| Event | Meaning |
|---|---|
open | { "poll_seconds": 1.5 } — connection up |
engram.written | A memory was saved (also used for the 40-item backfill) |
engram.recalled | A recall ran. Does not list which memories came back |
engram.reinforced | A memory was touched by a recall (recently accessed). Not the same as “written again” |
backfill.done | { "entries": N } or { "error": "backfill_failed" } — live counts start after this |
close | { "reason": "timeout" } — recycle |
Old recalls are not replayed on connect (they would point at memories the client never received). Touched memories show up as engram.reinforced.
Memory JSON
id, text, importance, access_count, reinforcement_count, agent_config_id, session_id, fingerprint, last_accessed_at, created_at.
The feed does not include who owned the memory or the organization id.
Recall JSON
id, uuid, session_id, step_number, strategy, query_text, results_returned, latency_ms, pack_uuid, outcome, created_at.
What the field draws
Every visual channel maps to a field on that JSON. No decay curve.
| Channel | From | Meaning |
|---|---|---|
| Node size | importance + reinforcement | Weight at write, plus re-learned |
| Rings | reinforcement | Same lesson folded in again |
| Amber | accessed in the last two hours | Recalled recently |
| Threads | session | Same agent run |
| Clusters | agent config | Memory is per config |
| Label | text | First clause of the claim |
List without the stream
curl -sG "https://api.orkestia.dev/api/app/agents/memory" \
--data-urlencode "agent_config_uuid=<uuid>" \
-H "Authorization: Bearer $ORKESTIA_TOKEN"
DELETE /api/app/agents/memory/{entry_id} removes one memory. Prune is async: Write & recall.
