すべてのエンドポイントを、ひとつのベース URL で。
SDK は不要で、任意の HTTP クライアントで動きます。ベース URL は https://api.wontopos.com、認証は X-API-Key ヘッダー、入出力は JSON です。記憶の操作は POST、ストアの管理は /collection への POST / GET / DELETE です。ストアが先に存在しないと(ストア を参照)、ストア内の操作は 404 を返します。
ヘッダー
| ヘッダー | はたらき |
|---|---|
| X-API-Key | すべての呼び出しに必須です。コンソールで発行した、あなたのキーです。 |
| X-WOS-Model | 任意です。どのエンジンが答えるかを選びます。省略するとアカウントの既定値が使われます。GET /api/v1/models でこのキーが選べるモデルの一覧が得られ、それより前のエンジンが対応できないエンドポイントは 501 を返し、そのモデルの名前を伝えます。 |
| Idempotency-Key | 書き込みでは任意です。同じキーで同じ本文なら、再保存せず最初の応答を再生します - 下の注記を参照してください。 |
エンドポイント
| エンドポイント | 用途 | ボディフィールド |
|---|---|---|
| POST /api/v1/memory/collection | ストアを作成 | user_id |
| GET /api/v1/memory/collections | ストアを一覧 | (なし) |
| DELETE /api/v1/memory/collection | ストアとその記憶を削除 | user_id |
| /api/v1/memory/store | 記憶を 1 件保存 | user_id · content · metadata? (event_date · speaker) · image? |
| /api/v1/memory/store-turn | 会話ターンを保存 | user_id · user_msg · assistant_msg |
| POST /api/v1/memory/speakers | 話者を登録(明示的、50 人まで) | user_id · speaker |
| GET /api/v1/memory/speakers | 登録済み話者の一覧 + 記憶数 | user_id |
| DELETE /api/v1/memory/speakers | 話者の登録解除(記憶は残る) | user_id · speaker |
| /api/v1/memory/by-speaker | ある人が言ったこと、新しい順(「me」= エージェント自身) | user_id · speaker · limit? · before? · skip_ids? |
| POST /api/v1/memory/image | 画像メモリについてこちらが保持している画像(原本ではありません) | user_id · memory_id |
| DELETE /api/v1/memory/image | 画像だけ削除し、キャプションは残す | user_id · memory_id · preview? |
| /api/v1/memory/images | ストアの画像、新しい順(+ 全体件数) | user_id · limit? · before? · skip_ids? |
| /api/v1/memory/lineage | 1 件のメモリの編集履歴、古い順 | user_id · memory_id |
| GET /api/v1/won/usage | このキーの利用額と残高 — モデルが続行を判断するための数値。無料。 | days? |
| GET /api/v1/memory/usage | このキーの利用額と残高 — モデルが続行を判断するための数値。無料。 | days? |
| /api/v1/won/revisions | ストアがどれだけ書き換えられたか。無料 | user_id · include? · limit? · before? · skip_ids? |
| /api/v1/memory/revisions | 同じ呼び出しを memory 側の名前で。無料 | user_id · include? · limit? · before? · skip_ids? |
| /api/v1/memory/bulk-store | テキストの塊を一括投入 | user_id · content · category? · timestamp? |
| /api/v1/memory/search | セマンティック検索 | user_id · query · max_results? · speaker? · cache_control? · filters? · verify? · max_images? |
| /api/v1/memory/recall | 短期 + 長期 + コンテキスト | user_id · query · limit? · context_limit? |
| /api/v1/memory/get | id で記憶 1 件 | user_id · memory_id |
| /api/v1/memory/list | ストアをページ送りで一覧 | user_id · limit? · cursor? |
| /api/v1/memory/history | 直近のターン | user_id |
| /api/v1/memory/stats | 記憶数 | user_id |
| /api/v1/memory/supersede | 変わった事実を置き換え | user_id · old_memory_id · new_content |
| /api/v1/memory/forget | 1 件(または全件)を削除 | user_id · memory_id? (省略 = 全件削除) |
| GET /api/v1/engram | このモデルが実行できるエングラム | (なし) |
| POST /api/v1/engram/run | エングラムを 1 つ実行 | name · user_id · query · form? · tz? |
| GET /api/v1/models | 利用可能なモデル | (なし) |
書き込みは
Idempotency-Key ヘッダーを受け付けます。同じキーで同じ本文なら再保存せず最初の応答を再生し(10 分)、同じキーで異なる本文なら 422 を返します。キャッシュされるのは 2xx のみなので、失敗した呼び出しはすぐに再試行できます。# create the store once (stores are explicit) curl -X POST https://api.wontopos.com/api/v1/memory/collection \ -H "X-API-Key: $WOS_API_KEY" -H "Content-Type: application/json" \ -d '{"user_id":"alice"}' # store a memory curl -X POST https://api.wontopos.com/api/v1/memory/store \ -H "X-API-Key: $WOS_API_KEY" -H "Content-Type: application/json" \ -d '{"user_id":"alice","content":"she prefers tea over coffee"}' # recall - one call, ready for your prompt curl -X POST https://api.wontopos.com/api/v1/memory/recall \ -H "X-API-Key: $WOS_API_KEY" -H "Content-Type: application/json" \ -d '{"user_id":"alice","query":"what does alice drink?"}'
実際のレスポンス - store
{"id": "576700aa-f0e0-4c26-99a0-10e2d5b0d624", "status": "stored (1 chunks)"}