/api/v1/sessions/{id}/commit 接口用于提交会话。
提交后,系统会先完成消息归档(Phase 1),随后在后台异步执行摘要生成与记忆提取(Phase 2)。因此,该接口是把会话消息正式沉淀为长期上下文的关键步骤。
完成 "数据库访问使用说明" 页面的 API Key 获取后,可调用本接口提交会话。通常你需要先向该会话写入至少一条消息。
/api/v1/sessions/{id}/commit
统一资源标识符。
POST
客户端对服务器请求的操作类型。
参数 | 值 | 说明 |
|---|---|---|
Content-Type |
| 请求消息类型 |
Authorization |
| 鉴权 |
X-OpenViking-Agent |
| Agent ID |
参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| string | 是 | 要提交的 Session ID。Session 必须存在且属于当前认证用户。 |
参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| integer | 否 | 默认 0,范围 0–10000。按消息条数保留最新消息;0 表示全部归档。仅在未启用 Turn 保留模式时生效。 |
| string 或 null | 否 | 当前仅支持 |
| integer | 否 | 范围 0–10000;Turn 模式默认 3。传入时必须同时设置 |
| integer | 否 | 最小值 1;Turn 模式默认 12000。保留的原始消息与 checkpoint 共用该预算。 |
| integer | 否 | 范围 0–10000;Turn 模式默认 1。至少保留的最新原始 Assistant Step 数。 |
| object 或 null | 否 | 本次 Commit 的记忆抽取覆盖配置。目前支持 |
参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| object 或 null | 否 | 事件记忆的单次抽取覆盖配置。 |
| string[] 或 null | 否 | 本次抽取生成或更新的事件记忆标签。每项必须是严格的 |
字段 | 类型 | 说明 |
|---|---|---|
| string | Session ID。 |
| string |
|
| string 或 null | 后台记忆抽取任务 ID;跳过提交时为 null。 |
| string 或 null | 本次归档 URI;跳过提交时为 null。 |
| boolean | 是否实际产生归档。 |
| string | 仅跳过时返回: |
| string | 本次提交链路的追踪 ID。 |
| integer | Turn 保留计划估算的活跃 token 数;非 Turn 模式通常为 0。 |
| boolean | Turn 保留计划是否仍超过预算。 |
error.code | 说明 |
|---|---|
UNAUTHENTICATED | 缺少 API Key 或 API Key 无效 |
PERMISSION_DENIED | API Key 权限不足 |
NOT_FOUND | 指定会话不存在 |
PROCESSING_ERROR | 会话归档提交失败 |
curl -X POST 'http://127.0.0.1:1933/api/v1/sessions/support-agent-20260821/commit' \ -H 'Content-Type: application/json' \ -H 'X-API-Key: your-user-key' \ -d '{ "keep_recent_count": 0, "extraction_metadata": { "event": { "tags": ["team=support", "channel=web"] } } }'
执行成功返回:
"status": "ok", "result": { "session_id": "support-agent-20260821", "status": "accepted", "task_id": "1d7a7707-b15b-44e6-9bb2-45bfa9cebb45", "archive_uri": "viking://user/default/sessions/support-agent-20260821/history/archive_001", "archived": true, "trace_id": "trace-8c6747", "estimated_active_tokens": 0, "budget_exceeded": false } }
status 为 string,result 为 object/array/null,telemetry 为 object/null,error 为 object/null;业务子字段的类型和层级与成功示例保持一致。result.status 已按响应示例补充类型和层级;公共包装字段为 status:string、result:object|array|null、telemetry:object|null、error:object|null。agent_id 在 OpenViking 控制台的 Agent 接入页创建或选择 Agent 后复制;请求头 X-OpenViking-Agent 必须传该值,不能使用 Agent 名称代替。id/session_id 从创建会话接口的 result.id(或记忆库 AddSession 返回值)取得,也可由列出会话接口查询;不要把示例 ID 用于生产请求。UNAUTHENTICATED:检查并重新生成 API Key;PERMISSION_DENIED:确认 Agent/账号对目标 URI 有权限;INVALID_ARGUMENT:按参数表检查类型、范围和必填项;NOT_FOUND:确认 URI 或资源 ID 存在;INTERNAL:记录 request ID 后重试,持续失败时提交工单。