Session 创建后,你可以查询状态、列出 Session、更新标题和标签、升级运行配置,以及永久删除 Session。
准备工作#
开始前你需要:
- 已创建的 API Key:配置为环境变量
ARK_API_KEY,详情请参见 API Key 管理。 - 已创建的 Agent:详情请参见 定义 Agent。
- 已创建的 Environment:详情请参见 配置云环境。
本章节示例的 Base URL 与鉴权方式详情请参见 Base URL 及鉴权。
Session 状态机#
| 状态 | 说明 |
|---|---|
idle |
Agent 正在等待输入,例如用户消息或工具确认。普通新建的 Session 以该状态启动 |
running |
Agent 正在执行任务 |
terminated |
Session 已终止,不再接收新事件 |
rescheduling |
发生暂时性错误后,系统正在重新调度 Session |
initializing |
Session 正在初始化运行环境或恢复资源 |
failed |
Session 初始化或运行失败 |
upgrading |
Session 正在升级 Agent 或 Environment 运行配置 |
这些状态及主要迁移关系如下:
状态迁移规律:
initializing→idle:Session 初始化或资源恢复完成。initializing→failed:Session 初始化或资源恢复失败。idle→running:收到user.message或user.tool_confirmation等用户事件。running→idle:Agent 一轮工作结束(end_turn)或需要等用户输入(requires_action,详情请参见 Session 事件流)。running→rescheduling→running:框架遇到暂时性错误后自动重试,你无需介入。idle→upgrading→idle:服务端受理运行配置升级,升级完成或回滚后恢复为空闲状态。- 任意状态 →
terminated:Session 终止。终止后不再接收事件,但记录与事件历史保留。
选择获取方式#
Session 详情接口只返回资源的最新状态、用量统计和配置快照。实时回复和历史事件由 Session Events API 承载:
| 需要获取的内容 | 使用接口 | 返回内容和限制 |
|---|---|---|
| 实时接收 Agent 回复和状态 | GET /sessions/{session_id}/events/stream |
通过 SSE(Server-Sent Events)协议订阅会话主线程收到的实时事件。请建立 SSE 并等待 : ready 后,再发送事件。 |
| 已持久化的完整事件 | GET /sessions/{session_id}/events |
用于查询会话主线程中已经产生的事件,主要用于历史事件查询和断线补查,返回信息不包含预览帧。 |
| 最新状态、累计用量和配置快照 | GET /sessions/{session_id} |
查询指定会话的详细信息,包括智能体、会话运行环境、资源、状态和标签等,不返回 Agent 回复或完整事件历史 |
正常交互时,通过 SSE 实时接收 Agent 回复和状态。GET /sessions/{session_id}/events 仅用于历史事件查询和断线补查。不要只根据 status=idle 判断本轮成功。发送任务、接收回复和判断 stop_reason 的完整流程,详情请参见 Session 事件流。
检索 Session#
通过 GET /sessions/{session_id} 查询 Session 的详细信息,包括智能体、会话运行环境、资源、状态和标签等:
curl https://ark.cn-beijing.volces.com/api/v3/sessions/sesn-20260701120100-klmno \
-H "Authorization: Bearer $ARK_API_KEY"
响应主要字段:
id:Session ID。status:当前状态(见上表)。usage:累计 token 用量(详情请参见 Session 事件流 § 跟踪用量)。agent:绑定的 Agent 对象,内含id、version等字段。environment_id:绑定的云环境。
列出 Session#
GET /sessions 支持按 agent_id 过滤、按创建时间倒序分页,响应以 data 数组形式返回 Session 列表:
curl "https://ark.cn-beijing.volces.com/api/v3/sessions?agent_id=agent-20260701120000-abcde&limit=20" \
-H "Authorization: Bearer $ARK_API_KEY"
更新与升级 Session#
| 需求 | 接口 | 状态变化 |
|---|---|---|
| 修改标题或标签 | 更新 Session 标题和标签 | 不改变 Session 的运行状态 |
| 修改 Agent 或 Environment 运行配置 | 升级会话 | idle → upgrading → idle |
升级接口保持原 session_id 不变,也不支持换绑其他 Agent 或 Environment。发起升级前,Session 必须处于 idle,并且上一轮任务以 end_turn 结束。接口返回 upgrading 后,轮询 GET /sessions/{session_id};状态恢复为 idle 表示升级流程已结束。
删除 Session#
curl https://ark.cn-beijing.volces.com/api/v3/sessions/sesn-20260701120100-klmno \
-X DELETE \
-H "Authorization: Bearer $ARK_API_KEY"
数据保留与删除影响#
Session 资源记录、完整事件、沙箱状态和 Agent 产物使用独立的保留策略:
| 对象 | 默认保留与恢复规则 | 删除 Session 后 |
|---|---|---|
| Session 资源记录 | 除非显式删除,否则持续保留 | 资源记录不可再查询 |
| Session 事件历史 | 每条已持久化的完整事件默认保留 6 个月;event_start 和 event_delta 预览帧不写入历史 |
该 Session 的事件全部删除 |
| 沙箱状态 | Session 处于 idle 且尚未终止时,可以恢复文件系统、已安装软件包和沙箱中的临时文件。Session 连续处于 idle 达到 14 天后进入 terminated |
关联沙箱及其中的临时状态被清理 |
| Agent 产物 | 方舟默认存储只用于临时保存关联产物;写入自有 TOS Bucket 的对象遵循你配置的 Bucket 生命周期 | 默认存储中的关联产物被清理;自有 TOS Bucket 中的对象不受影响 |