Memory server
Start the server:
bash
tuls memory \
--memory-file /work/state/memory.jsonl \
--allow memory.read \
--allow memory.writeIf --memory-file is omitted:
MEMORY_FILE_PATHis used when present;- otherwise
memory.jsonlis used in the process working directory.
Tools
| Tool | Capability | Purpose |
|---|---|---|
read_graph | memory.read | Read the graph |
search_nodes | memory.read | Search names, types, and observations |
open_nodes | memory.read | Open named entities |
create_entities | memory.write | Add entities |
create_relations | memory.write | Add relations |
add_observations | memory.write | Append observations to entities |
delete_entities | memory.write | Delete entities |
delete_observations | memory.write | Delete selected observations |
delete_relations | memory.write | Delete relations |
Knowledge graph resource
The server also exposes the knowledge graph as:
text
memory://knowledge-graphGrant memory.read when resource access is required. The resource is an auxiliary surface: an exact single-tool grant like --allow memory/read_graph keeps the tool but hides the resource (see capability policy).
Persistence
The graph is stored as JSONL and mutations rewrite a complete validated graph atomically. Existing Unix file permissions are preserved when replacing an existing regular file.
No-op mutations — duplicate entity/relation/observation creates, or deletes that match nothing — change nothing: they do not rewrite the file and do not send resource-update notifications.
Read-only memory:
bash
tuls memory \
--memory-file /work/state/memory.jsonl \
--allow memory.readRelated
- Limits & bounded behavior — memory file and text field limits.