What is Memory?
As people and agents make review decisions in Velt, Memory records each one as a judgment: the decision, the reasoning, who decided, and what they decided on. On top of that, you can ingest your reference material (guidelines, standards, policy docs) as knowledge sources. With that foundation you can:- Search past decisions semantically (“how have we judged copy with medical claims?”).
- Ask natural-language questions and get grounded answers with citations.
- Suggest a decision for a new item, based on precedent.
- Surface reviewer profiles, detected patterns, aggregate stats, and proactive alerts.
How it works
Reviews create judgments automatically
Every review decision made in Velt becomes a judgment. You don’t write judgments through the API; a new workspace starts empty and fills in as review activity happens.You ingest knowledge
Upload guidelines, standards, and policy docs (PDF, CSV, XLSX, or plain text). Memory converts each file to canonical markdown, extracts rules, and embeds it for semantic search.You query the combined base
Callsearch for raw decision records, ask for a grounded natural-language answer with citations, or suggest for a precedent-based recommendation on a new item.
Memory derives insights over time
Reviewer profiles, decision patterns, workspace stats, and proactive alerts are computed from accumulated judgments.Core concepts
| Concept | What it is |
|---|---|
| Judgment | An enriched record of one review decision: decision, reasoning, reviewer, content type, and scope, plus an agent block when an AI agent decided. The thing search / ask / suggest read over. Created automatically from review activity. |
| Knowledge source | Reference material you ingest (PDF / CSV / XLSX / text). Memory converts it to canonical markdown, extracts rules, and embeds it. |
| Scope | apiKey (workspace), organization, or document; narrow reads to the right level. documentId requires organizationId. |
| Embedding type | review (decision + reasoning, the default) vs content (the reviewed item). |
| Filters | Narrow results by decision, judgeType (human/agent), contentType, reviewerId, annotationId, or dateRange. |
| Retrieval modes | search/ask use vector search by default; set recencyDays for “what happened recently”, or filters.annotationId to read one comment thread. |
| Pattern / Reviewer profile / Alert | Derived insights Memory computes from your judgments. |
Where the data comes from
- Judgments are produced automatically as your team reviews and approves work in Velt; there’s no “create judgment” endpoint. Expect Memory to be sparse on a new workspace and to get richer as review activity accumulates. Comment data from older SDK clients is enriched into Memory too, including a one-time backfill of historical data.
- Knowledge sources are the part you control directly: ingest the guidelines and standards you want Memory (and your agents) to reason against.
- Profiles, patterns, and alerts are derived from judgments over time, so they also need some review history before they’re meaningful.
Honesty by design: if Memory has no relevant context,
ask returns an empty answer with confidence: 0 rather than inventing one. Treat that as “nothing learned about this yet”; it’s expected for brand-new workspaces.Limitations
- Ingestion is asynchronous:
ingestreturnsstatus: "processing"; pollingest-statusfor the terminal state. - File limits: inline uploads up to 5 MB, by-reference uploads up to 30 MB; PDF / CSV / XLSX / plain text only.
- Judgments are read-only via the API: they’re created from review activity, not written directly.
- New workspaces start empty:
askreturns an empty answer andsuggest/insights stay sparse until enough review history exists.
Get started
Setup
A hands-on walkthrough: add a knowledge source, ask a question, search past decisions, and pull a grounded suggestion.
REST API Reference
All endpoints organized into Search & Q&A, Knowledge, Insights, and Alerts, with full request and response schemas.

