リファレンスREST APIMemory API

REST API

Memory API

明示的なscope boundaryを持つ、文書化されたRESTとMCP contractを通じてmemoryをread/writeします。

公開memory endpointとscope

以下の例では、committed OpenAPI contractに存在する/v1 pathを使います。X-API-Key(またはserverが受け付けるBearer形式)で認証し、read operationにはread-capable token、writeにはwrite-capable tokenが必要です。ほとんどのmemory endpointではOpenAPI response schemaが意図的にuntypedなので、serverが現在返すimplementation keyは別途示します。GET /v1/memoriesは現在、memories(array)とtotal(number)を持つobjectを返しますが、これらのpropertyはOpenAPIに宣言されていません。

  • Create/capture: POST /v1/rememberおよびPOST /v1/memories(201)。
  • List: GET /v1/memoriesでlimit、offset、pathを使用(200)。
  • Search: GET /v1/memories/search。GET /v1/recallは同じsearch operationです(200)。
  • Contextの組み立て: POST /v1/recall/context(200)。
  • Update: PATCH /v1/memories/{memory_id}。delete: DELETE /v1/memories/{memory_id}。
  • 忘却: POST /v1/memories/{memory_id}/forget; 復元: POST /v1/memories/{memory_id}/restore; リマインダー完了: POST /v1/reminders/{reminder_id}/complete。

Create request schema

POST /v1/rememberはMemoryRememberRequestを受け取り、POST /v1/memoriesはMemoryStoreRequestを受け取ります。どちらもcontent(string)とpath(string)が必須です。OpenAPI schemaのoptional fieldにはmetadata(object)、source(stringまたはnull)、logic_path(stringまたはnull)、embedding(number arrayまたはnull)、bucket(string、default public)、memory_id、semantic_key、memory_type、version、status、superseded_by、embedding_provider、embedding_model、embedding_dimension、importance、confidence、expires_at、scope、team_id、provenanceが含まれます。MemoryRememberRequestはdedupe(boolean、default true)も宣言し、MemoryStoreRequestのmemory_typeのdefaultはsemantic、importance/confidenceのdefaultは0.5/1.0です。

POST /v1/remember
X-API-Key: <your-assigned-api-key>
Content-Type: application/json

{
  "content": "The actual text to remember.",
  "path": "projects/memory-os/decisions",
  "scope": "memory-os",
  "source": "codex",
  "metadata": { "kind": "decision" }
}

Create response schema

OpenAPIの201 response contentは、どちらのcreate operationでもuntyped JSON objectです。現在のremember implementationは{id: string, status: "remembered"}を返し、store implementationは作成したmemory identifierを返します。これを、committed OpenAPI documentが宣言するものより強いschemaとは扱わず、implementation behaviorとして扱ってください。

{
  "id": "<memory-id>",
  "status": "remembered"
}

Searchとrecall

GET /v1/memories/searchとGET /v1/recallはSearch Memories operationを共有し、Cache-Control: no-store, privateを返します。filterはretrievalの範囲を狭められますが、tokenが認可した範囲を広げることはできません。

GET /v1/memories/search?query=current%20MCP%20decision&limit=5&scope=memory-os&explain=true
X-API-Key: <your-assigned-api-key>

Search request parameterとresponse

OpenAPI query parameterはquery(string、required)、limit(integer、default 5)、threshold(numberまたはnull)、path(string、default %)、bucket(string、default %)、scope(stringまたはnull)、team_id(stringまたはnull)、memory_type(string、default %)、status(string、default active)、explain(boolean、default false)、prefer_working(boolean、default false)、candidate_count(integerまたはnull)です。OpenAPIは200 responseをuntyped JSON objectとし、現在のimplementationはresults(array)とcoverage(number)を返し、該当する場合はkeyguard_decrypt_grant_idsを追加することがあります。

  • 現在確認できるresponse shape: { results: [...], coverage: number }。
  • Specはsearch limitやcandidate_countのmaximumを宣言していないため、clientは控えめな値を使い、validation errorを処理してください。

Context requestとresponse schema

POST /v1/recall/contextはRecallContextRequestを受け取ります。query(string)は必須で、pathとbucketのdefaultは%、memory_typeはauto、statusはactive、max_itemsは8、max_tokensは1500、prefer_workingはtrue、include_knowledgeはfalseです。scope、team_id、threshold、limitはnullableです。OpenAPIの200 responseはuntyped objectで、通常のauthenticated-owner implementationはversion、query、retrieval_plan、budget、items、context_text、answer_statusを持つvalue-density-v2 context objectを返します。temporary-agent branchは同じcore query/budget/items/context_text fieldを持つversion 1.0を返します。

POST /v1/recall/context
X-API-Key: <your-assigned-api-key>
Content-Type: application/json

{
  "query": "recent progress on memory-os",
  "scope": "memory-os",
  "memory_type": "auto",
  "status": "active",
  "max_items": 8,
  "max_tokens": 1500,
  "prefer_working": true
}

Memory updateとforget schema

PATCH /v1/memories/{memory_id}はMemoryUpdateRequestを受け入れます。すべてのフィールドはoptionalで、content、path、metadata、source、logic_path、embedding、bucket、semantic_key、memory_type、status、superseded_by、embedding_provider、embedding_model、embedding_dimension、importance、confidence、expires_at、scope、team_id、provenance、supersession_reason、merge_metadata(default true)、merge_provenance(default true)、detect_conflicts(default true)が宣言されています。DELETE /v1/memories/{memory_id}はquery mode(default soft_delete)とreasonを受け入れます。mode=hard_deleteとmode=redactは不可逆であり、互換性ルールによりmemory:writeが受け入れられるため、書き込みtokenで永久削除をトリガーできます。POST /v1/memories/{memory_id}/forgetはmode(default soft_delete)、reason、replacement_content、metadataを含むMemoryForgetRequestを受け入れます。POST /v1/memories/{memory_id}/restoreはソフトデリートされたレコードを復元します。これらのライフサイクル操作の200レスポンスは公開OpenAPIスキーマで型定義されています。

POST /v1/memories/<memory-id>/forget
X-API-Key: <your-assigned-api-key>
Content-Type: application/json

{
  "mode": "soft_delete",
  "reason": "No longer needed"
}

Pagination、error、rate limit

OpenAPIでlist paginationを公開しているのはGET /v1/memoriesだけです。limitのdefaultは100、offsetのdefaultは0で、optionalなpath filterがあります。Searchはoffsetではなくlimitを使い、contextはpage cursorではなくmax_items/max_tokensを使います。文書化されたvalidation errorはHTTPValidationError: {detail: [{loc: (string|integer)[], msg: string, type: string}]}です。runtime authorization failureはAuthentication pageのshared error contractを使います。runtimeは有効な60秒window内で、writes/lifecycle mutationに180-per-minute memory_write policyを、search、recall、context、memory readに300-per-minute memory_search policyを適用します。quotaはconfigurableで、OpenAPIには記載されていません。

{
  "version": "value-density-v2",
  "query": "recent progress on memory-os",
  "retrieval_plan": {},
  "budget": {
    "max_items": 8,
    "max_tokens": 1500,
    "used_items": 3,
    "used_tokens": 412,
    "skipped_items": 0,
    "filtered_items": 0,
    "structured_skipped_items": 0,
    "budget_skipped_items": 0,
    "truncated_items": 0,
    "candidate_items": 3,
    "selection_strategy": "top-primary-plus-stable-value-density",
    "budget_tradeoff": false,
    "token_scope": "context_text"
  },
  "items": [],
  "context_text": "",
  "answer_status": "no_confirmed_answer"
}

出典: MCP tool surface