Add memory system session context API
This commit is contained in:
@ -59,6 +59,7 @@ Base path: `/memory-system`
|
||||
| `POST` | `/messages` | Write user/assistant messages to backends | Yes |
|
||||
| `POST` | `/sessions/{session_id}/commit` | Commit OpenViking session and flush EverOS | Yes |
|
||||
| `POST` | `/sessions/{session_id}/extract` | Trigger OpenViking extract only | Yes |
|
||||
| `GET/POST` | `/sessions/{session_id}/context` | Read OpenViking session context plus EverOS recall | Yes |
|
||||
| `GET` | `/openviking/tasks/{task_id}` | Poll OpenViking task status | Yes |
|
||||
| `POST` | `/search` | Search OpenViking and EverOS | Yes |
|
||||
| `GET` | `/users/{user_id}/profile` | Read EverOS profile | Yes |
|
||||
@ -127,6 +128,25 @@ curl -sS -X POST "$BASE/memory-system/search" \
|
||||
}'
|
||||
```
|
||||
|
||||
Session context:
|
||||
|
||||
```bash
|
||||
curl -sS -X POST "$BASE/memory-system/sessions/sessionA1/context" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"user_id": "userA",
|
||||
"user_key": "'"$USER_KEY"'",
|
||||
"query": "我喜欢喝什么?",
|
||||
"limit": 10
|
||||
}'
|
||||
```
|
||||
|
||||
GET with query parameters is also supported:
|
||||
|
||||
```bash
|
||||
curl -sS "$BASE/memory-system/sessions/sessionA1/context?user_id=userA&user_key=$USER_KEY&query=我喜欢喝什么?&limit=10"
|
||||
```
|
||||
|
||||
## Response Handling
|
||||
|
||||
Top-level `status` is one of:
|
||||
@ -137,6 +157,8 @@ Top-level `status` is one of:
|
||||
|
||||
Search responses include merged `items` and compact backend diagnostics under `backends`. Keep `source_backend` when using results. Fields named `vector` are stripped from returned payloads, and the raw EverOS `original_data` blob is not returned by search anymore.
|
||||
|
||||
Session context responses include OpenViking context under `context`, EverOS recall under `items`, and compact backend diagnostics under `backends`.
|
||||
|
||||
## Common Mistakes
|
||||
|
||||
- Calling `/messages` before `/users`.
|
||||
|
||||
@ -72,6 +72,68 @@ curl -s -X POST <MEMORY_SYSTEM_BASE_URL>/memory-system/sessions/<SESSION_ID>/ext
|
||||
-d '{"user_id": "<USER_ID>", "user_key": "<USER_KEY>"}'
|
||||
```
|
||||
|
||||
## Session Context
|
||||
|
||||
Use this when the caller needs the OpenViking working-memory context for one session plus related EverOS recall for the same user/session.
|
||||
|
||||
```bash
|
||||
curl -s -X POST <MEMORY_SYSTEM_BASE_URL>/memory-system/sessions/<SESSION_ID>/context \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"user_id": "<USER_ID>",
|
||||
"user_key": "<USER_KEY>",
|
||||
"query": "我喜欢喝什么?",
|
||||
"limit": 10
|
||||
}'
|
||||
```
|
||||
|
||||
Equivalent GET form:
|
||||
|
||||
```bash
|
||||
curl -s "<MEMORY_SYSTEM_BASE_URL>/memory-system/sessions/<SESSION_ID>/context?user_id=<USER_ID>&user_key=<USER_KEY>&query=我喜欢喝什么?&limit=10"
|
||||
```
|
||||
|
||||
Response shape:
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "success",
|
||||
"context": {
|
||||
"latest_archive_overview": "# Working Memory\n...",
|
||||
"pre_archive_abstracts": [],
|
||||
"messages": [],
|
||||
"estimatedTokens": 342,
|
||||
"stats": {"totalArchives": 3}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"source_backend": "everos",
|
||||
"memory_type": "episode",
|
||||
"id": "episode-1",
|
||||
"summary": "userB 在对话中表示自己喜欢拿铁。",
|
||||
"score": 0.72
|
||||
}
|
||||
],
|
||||
"backends": {
|
||||
"openviking": {
|
||||
"status": "success",
|
||||
"result": {
|
||||
"status": "ok",
|
||||
"estimatedTokens": 342,
|
||||
"has_latest_archive_overview": true,
|
||||
"message_count": 0
|
||||
}
|
||||
},
|
||||
"everos": {
|
||||
"status": "success",
|
||||
"result": {
|
||||
"counts": {"episodes": 1, "profiles": 0, "raw_messages": 0}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Search
|
||||
|
||||
Without LLM planning:
|
||||
|
||||
Reference in New Issue
Block a user