NAMS Limits & Behavior
Operational limits, quotas, and runtime behavior for the hosted NAMS backend. These describe what to expect as a client — not internal service metrics. For the wire contract see NAMS REST API; for setup see Use NAMS.
|
Conformance tiers ≠ access tiers. Bronze / Silver / Gold / Platinum are agent-memory-tck cross-language conformance levels (how complete a client SDK is), not a NAMS pricing or access tier. Every capability listed as available in the capability matrix is reachable by any authenticated workspace. |
Client defaults (NamsConfig)
These are SDK-side defaults you can override; they are not server limits.
| Setting | Default | Notes |
|---|---|---|
|
|
Per-request HTTP timeout. |
|
|
Retries on network errors, 5xx, and 429. |
|
|
Base for exponential backoff. |
|
|
Sends a probe (with |
|
|
|
Rate limits
A handful of endpoints enforce explicit rate limits. When you exceed one the service returns 429 Too Many Requests; the SDK raises RateLimitError (carrying retry_after) after retries are exhausted, and honors any Retry-After header.
| Operation | Limit | On exceed |
|---|---|---|
Ontology preview / extraction-backed import ( |
30 requests / hour / workspace |
|
Feedback ( |
10 / min and 100 / hour per user; 200 / hour per workspace |
|
OAuth dynamic client registration ( |
Per-source-IP sliding window |
|
Beyond these guards there is no blanket per-request rate limiter today — but write your client to tolerate 429 regardless; the SDK already retries with backoff.
|
Treat |
Quotas
| Quota | Behavior |
|---|---|
Managed workspaces per user |
Capped (default 10, operator-configured via |
Skill package size |
A distilled skill artifact is capped at 1 MiB ( |
Feedback payload size |
Feedback bodies over 16 KiB are rejected. |
Request payload size |
Oversized requests return |
Idle managed databases |
A managed (NAMS-provisioned) workspace database is reclaimed after 2 days of inactivity ( |
|
NAMS has no paid tiers or plan-based quotas today: every capability in the
capability matrix is available
to any authenticated workspace, and the limits above apply uniformly. (A |
Runtime behavior
- Extraction is asynchronous on NAMS
-
When you add messages, entity/relationship extraction runs server-side. Writes are accepted immediately (
202 Accepted); extracted entities become queryable a short time later. PollGET /v1/conversations/{id}/extraction-status, or calllong_term.wait_for_extraction(…)from the SDK, before asserting on extracted results. (On bolt, extraction is synchronous andwait_for_extractionis a no-op returningTrue.) - Read-only Cypher
-
client.query.cypher(…)runs against the workspace graph in Neo4j READ access mode. Write statements are rejected server-side (400). This is available to any authenticated workspace — it is not gated behind a tier. - Eventual consistency
-
Because extraction and resolution are asynchronous, a just-written message and its derived entities are not guaranteed to be visible in the same instant. Delete operations likewise propagate asynchronously.
Status codes & errors
The service uses standard HTTP status codes; error bodies are JSON of the shape {"error": "…"} (some carry additional fields such as message and limit). See REST API → Errors for the full mapping to SDK exceptions.