Appearance
POST /v1/memory/write
POST /v1/memory/write
Writes memory nodes and edges into Aionis and returns a commit you can trace later.
Request schema
Required:
input_textorinput_sha256nodes[]whenMEMORY_WRITE_REQUIRE_NODES=true
Top-level fields:
tenant_id?: stringscope?: stringactor?: stringmemory_lane?: "private" | "shared"nodes?: WriteNode[]edges?: WriteEdge[]
WriteNode minimum shape:
json
{
"type": "event",
"memory_lane": "shared",
"text_summary": "Customer asked for invoice copy"
}Example request
cURL
bash
curl -sS "$BASE_URL/v1/memory/write" \
-H 'content-type: application/json' \
-d '{
"tenant_id":"default",
"scope":"support",
"input_text":"User asked for invoice copy",
"memory_lane":"shared",
"nodes":[
{
"type":"event",
"memory_lane":"shared",
"text_summary":"User asked for invoice copy"
}
]
}' | jqResponse schema
Key response fields:
request_idtenant_idscopedata.commit_iddata.commit_uriwarnings[](optional, for examplewrite_no_nodes)
Idempotency
- Not guaranteed idempotent by default.
- Re-sending the same payload can create additional commits.
- For retry safety, provide stable client identifiers in nodes/edges and keep your own request dedupe key.
Rate limit
- Uses write-class limiter and write tenant quota.
- Treat
429as retryable with exponential backoff and jitter. - Do not hot-loop retries on validation failures.
Error codes
Common errors:
invalid_request(400)write_nodes_required(400)unauthorized/forbidden(401/403)rate_limited_*(429)backend_capability_unsupported(501)
Replay IDs to persist
Persist these identifiers from request/response and your runtime context:
request_idcommit_idcommit_uritenant_idscope- your external
run_id(if available in caller logs)
Operational notes
input_textalone does not create recallable nodes; usenodes[].- Keep
commit_uriin your incident timeline store for resolve/replay workflows.