Skip to main content
persona.stores — /api/v1/developer/stores. A Store is a named, scoped mount point you create and assign to Agents via Agent.storeMounts (settable through agents.create()/agents.update()). It generalizes the fixed /memories/user///memories/agent/ mounts into arbitrarily-named ones, mounted at /stores/<name>/ in the Agent’s filesystem. An Agent reads/writes it via its own read_file/ls/write_file/edit_file tools, on demand — a filesystem-backed alternative to contextOverride for reference material too large to re-send in the prompt every turn.

Ownership & scoping

  • Config CRUD (create/list/get/update/delete) works with a bare Project credential — a Store’s config isn’t per-user.
  • File CRUD works the same, except when the Store’s own scope is 'externalUser': only then does this client need externalUserId set, or the call 400s with EXTERNAL_USER_REQUIRED.

Methods

create(input)

name and scope are required. scope cannot be changed after creation.
  • scope: 'domain' — one shared namespace for the whole Project.
  • scope: 'externalUser' — one namespace per external user, resolved per Agent run (same mechanism as /memories/user/).
  • accessMode: 'readonly' — Agents can read but never write via their own tool calls; content is populated only through this API. readwrite — Agents can also write_file/edit_file into it.

list(params?) / get / update / delete

  • update() can change name/description/accessMode — scope is not updatable (not even in the type); create a new Store if you need a different scope.
  • delete() also removes the Store from every Agent’s storeMounts and purges all of its data (every founder’s partition, for an externalUser-scoped Store).

File operations

  • StoreFile: { path, content, mimeType, createdAt, updatedAt }.
  • listFiles() returns a bare StoreFile[] (no pagination envelope). For an externalUser- scoped Store, it lists only the asserted external user’s own partition.
  • writeFile()/deleteFile() are not gated by accessMode — readonly only blocks an Agent’s own tool calls at mount time; this API is how a readonly Store gets populated in the first place.

Mounting a Store on an Agent

The Agent then sees the files mounted at /stores/<name>/.

Complete example