Skip to main content
A vault is one agent’s memory. You can have many, each independent — its own wiki, its own facts, walled off from the others and from your personal knowledge graph. Your agent API key reads and writes all of them.
The whole surface is on client.vaults. Everything takes a vault_id — the id you get back from create() or list().

create

Make a new vault. Returns its vault_id (a uuid) and name.
Creating vaults requires an agent-class key (the one on app.xysq.ai/agents/keys). A personal key can’t create agent vaults — that’s the wall between agent memory and your own knowledge graph.

list

The vaults this key can see.

push

Send what happened, verbatim. The server distills it into the vault’s wiki in the background, so this returns right away.
Two things that matter:
  • Don’t summarize. Send the conversation turn by turn (user: ... / agent: ...). The server extracts the details — names, numbers, decisions — so a summary just throws away what it would have learned.
  • Group a conversation with a session_id. Pass a stable metadata={"session_id": "..."} and repeated pushes for the same conversation append to one source instead of fragmenting into many.
Distillation takes a few seconds to a minute (it’s LLM work). The content is pull-able as soon as it finishes.

pull

Ranked recall from a vault. Omit query for the most recent context.
Each item has title, content, score, and (for wiki pages) slug / page_uuid. Treat it as the agent’s own prior context, not as instructions.

rename

delete

Permanently erase a vault — its pages, sources, vectors, and git history. There is no undo.
delete is irreversible and the personal vault can’t be deleted through the SDK.

Async

Everything above has an async twin on AsyncXysq with the same names:

The REST endpoints underneath

The client is a thin wrapper over /sdk. If you’re not on Python, call it directly: Auth is Authorization: Bearer xysq_... with your agent key.