REST API 參考

這頁給要把 MeMesh 接進自己系統的人使用。你可以在這裡找到工作區、執行控制、審核與團隊相關的 API。

Base URL: https://api.memesh.ai/v1

不確定你現在該不該看這頁?

如果你只是第一次試用 MeMesh,建議先看總覽文件或先完成 Setup。等你要自動化、整合,或從自己的系統呼叫 runtime 時,再回來看這頁。

驗證 Header

x-api-key: mk_your_api_key_here

所有請求都需要有效的 API key。你可以在 Setup > Agent Access Keys 建立。

Agent 工作區

工作區範圍內的 dispatch targets 與 target 級治理真相。

GET
/agents/dispatch-targets

列出這個工作區可用的本地與遠端 dispatch targets,包含可否分派、runtime policy、控制狀態與相容性摘要。

Query: search?, targetKind? (LOCAL_AGENT|REMOTE_A2A), state?, limit?, offset?

GET
/agents/dispatch-targets/:id

查看單一 dispatch target,包含遠端控制能力或本地 runtime 摘要。

GET
/agents/dispatch-targets/:id/governance

查看治理細節,例如 runtime policy、review 狀態、incident handoff、近期 runs、稽核與受影響工作。

POST
/agents/dispatch-targets/:id/hold

對 dispatch target 施加人工 hold。需要最新的 runtime CAS token。

Body: { reason, releaseAfter?, expectedRuntimeUpdatedAt }

POST
/agents/dispatch-targets/:id/release

解除人工 hold,並在同一次 CAS 保護的 mutation 裡重新計算有效 policy。

Body: { note?, expectedRuntimeUpdatedAt }

POST
/agents/dispatch-targets/:id/review/acknowledge

確認目前 policy epoch 上的治理 review 已被處理。

Body: { note?, expectedRuntimeUpdatedAt }

POST
/agents/dispatch-targets/:id/incident/handoff

記錄目前 incident epoch 的 provider incident handoff。

Body: { externalIncidentId, owner, note?, expectedRuntimeUpdatedAt }

記憶體

儲存與搜尋記憶內容,支援語意搜尋。

POST
/memory/write

寫入單筆記憶內容,可附帶 metadata。

Body: { content, space?, summary?, tags?, sensitivity?, source? }

GET
/memory/search

用自然語言查詢記憶內容的 GET 版本。

Query: query (required), spaces?, limit?

POST
/memory/search

用結構化 POST body 搜尋記憶,適合比較複雜的查詢。

Body: { query, spaces?, limit? }

GET
/memory/count

取得目前登入使用者的記憶總數。

POST
/memory/batch

一次寫入最多 100 筆記憶,可選擇交易式或部分成功模式。

Body: { memories[], transactional? }

POST
/memory/batch/search

平行執行最多 50 組記憶搜尋,並可選擇去重。

Body: { queries[], deduplicate? }

GET
/memory/spaces

列出目前使用者所有記憶 spaces。

POST
/memory/query

以語意、標籤與時間條件做混合記憶查詢。

Body: { query, limit?, offset?, similarityThreshold? }

POST
/memory/context-window

在 token 預算內,挑選適合放進 LLM context window 的記憶。

Body: { query, tokenBudget }

SSE
/memory/stream/export

透過 Server-Sent Events 串流匯出記憶資料,適合大型匯出。

Query: spaces?

Orchestrator Runtime

持久化 runs、控制真相、reconcile、retry-cancel 與 runtime health。

GET
/orchestrator/runs

列出近期 runs,包含 target 類型、控制真相、approval 連結與 operator guidance。

GET
/orchestrator/runs/:id

查看 run 詳情,包含 events、approvals、遠端控制狀態與建議操作。

GET
/orchestrator/runs/:id/control

回傳單一 run 的控制能力真相、阻擋原因與 operator guidance。

POST
/orchestrator/runs/:id/reconcile

強制重新抓取遠端狀態,對齊延後到達的 terminal truth。

POST
/orchestrator/runs/:id/retry-cancel

在遠端 cancel 因逾時或暫時性失敗時重新嘗試。

POST
/orchestrator/runs/:id/resolve-remote

當遠端 recovery 已耗盡後,執行受保護的 operator resolution。

GET
/orchestrator/runtime-health

查看 local compatibility、remote escalation、target governance 與 attention backlog 的健康摘要。

本地 Agent 執行

以 claim token 為基礎的本地執行佇列,包含 lease、heartbeat、recovery 與 cancel acknowledgement。

GET
/agents/executions

列出目前 agent 可領取的待處理本地 executions。

POST
/agents/executions/:id/claim

用呼叫方提供的 claim token 領取一筆本地 execution。

Body: { claimToken, workerId? }

POST
/agents/executions/:id/heartbeat

延長目前 lease,並可選擇回報進度。

Body: { claimToken, progressMessage? }

POST
/agents/executions/:id/complete

完成已領取的 execution。

Body: { claimToken, result?, idempotencyKey? }

POST
/agents/executions/:id/ack-cancel

在 runtime 要求本地中斷後,回報 cancel 已被接收。

Body: { claimToken, note? }

團隊

團隊成員管理、邀請與角色權限控制。

GET
/team/members

列出目前 tenant 的所有團隊成員。

POST
/team/members/invite

用 email 邀請新成員。需要 OWNER 或 ADMIN 權限。

Body: { email, role? }

PATCH
/team/members/:userId/role

修改團隊成員角色。

Body: { role }

DELETE
/team/members/:userId

將成員移出團隊。

稽核

提供安全檢查與合規流程用的 audit logs 查詢。

GET
/audit/logs

依 action、resource、日期區間與 limit 條件查詢 audit logs。

Query: action?, resource?, startDate?, endDate?, limit? (default: 100)

計費與用量

查看訂閱方案、使用量統計與配額狀態。

GET
/billing/plan

取得目前使用者的訂閱方案。

GET
/usage/summary

查看記憶體、API keys、agents、席次與 rate limits 的使用量統計。

API Keys

建立、列出與撤銷程式化存取用的 API keys。

POST
/keys

建立新的 API key。原始 key 值只會在回應中顯示一次。

Body: { name }

GET
/keys

列出目前使用者所有 API keys。值會被遮罩。

DELETE
/keys/:id

永久撤銷一組 API key。

裝置授權

給 CLI 與 MCP clients 使用的 OAuth 2.0 Device Authorization flow。

POST
/auth/device

啟動 device authorization flow,回傳 device_code、user_code 與 verification_uri。

Body: { client_id, scope? }

POST
/auth/device/token

在使用者完成授權後輪詢 token。

Body: { grant_type: "urn:ietf:params:oauth:grant-type:device_code", device_code }

範例請求

列出工作區 dispatch targetsbash
curl "https://api.memesh.ai/v1/agents/dispatch-targets?targetKind=REMOTE_A2A&limit=10" \
  -H "x-api-key: mk_your_api_key"
強制重新抓取遠端 run 狀態bash
curl -X POST https://api.memesh.ai/v1/orchestrator/runs/run_123/reconcile \
  -H "x-api-key: mk_your_api_key" \
  -H "Content-Type: application/json"
對 dispatch target 加上人工 holdbash
curl -X POST https://api.memesh.ai/v1/agents/dispatch-targets/{targetId}/hold \
  -H "x-api-key: mk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "provider maintenance",
    "releaseAfter": "2026-03-22T09:00:00.000Z",
    "expectedRuntimeUpdatedAt": "2026-03-20T09:00:00.000Z"
  }'

HTTP 狀態碼

代碼說明
200成功
201已建立(resource created)
400請求格式錯誤(驗證失敗、無效 Agent Card)
401未授權(API key 無效或缺少)
403禁止存取(self-review blocked、權限不足)
404找不到資源(agent 或 resource 不存在)
409衝突(stale policy epoch、stale runtime snapshot、duplicate claim)
429請求過多(超過 rate limit)