Notes and agent memory storage

Tillpad has two ways to keep what an agent learned. A note is a text file that is chunked and searched. A memory value is a short string saved under prefs, facts, or run. For developers storing what an agent learned. Pro is $9 a month.

Indexed notes

POST /api/rag/notes takes JSON with namespace and text, and an optional title. The title becomes the filename, up to 180 characters, and defaults to note.txt. The body is stored as text/plain and follows the same upload, queue, and vector path as a file. Empty text is rejected.

The call checks rag_index capacity from the text length, then meters one kvp_ops. Chunk indexing spends rag_index when the queue runs. MCP index_document with kind=note does the same thing. Pass title instead of filename. The stored type is text/plain.

curl -s -X POST "https://tillpad.dev/api/rag/notes" \
  -H "Authorization: Bearer tp_…" \
  -H "Content-Type: application/json" \
  -d '{"namespace":"jobs","text":"The customer prefers email before noon.","title":"preference.txt"}'

Memory scopes

PUT /api/memory/:scope/:key stores a string. The scope is prefs, facts, or run. prefs and facts are those namespace names. run uses the run key's bound namespace when the caller is a run key, and otherwise the namespace named run.

GET reads the same key. Put and get each meter one kvp_ops. MCP manage_memory action=put and action=get match those calls. There is no delete action on manage_memory. POST /api/memory/search, or MCP search_documents with source=memory, searches indexed text in a scope and meters one rag_query. A memory put stores the string. It does not by itself add that string to the vector index. Use a note or a file when the agent needs semantic search.

curl -s -X PUT "https://tillpad.dev/api/memory/facts/preference" \
  -H "Authorization: Bearer tp_…" \
  -H "Content-Type: application/json" \
  -d '{"value":"Prefers email before noon."}'

Related

Questions people ask

Is a note the same as a memory key?

No. A note is indexed text in a namespace, created with POST /api/rag/notes. A memory key is a string in prefs, facts, or run, created with PUT /api/memory/:scope/:key.

Where does a run scope value go?

With a run key, the run scope uses that key's bound namespace. With any other key, it uses the namespace named run.