Sessions
Session 详情
用 session.get_info() 读取标题、预览、模型与执行状态
Session 详情
session.get_info() 返回当前 Session 的轻量详情快照。它适合头部、标题栏和当前状态,不替代 messages()。
const info = await session.get_info();
render_header({
title: info.title || info.sessionId,
preview: info.previewText,
is_running: info.executing === true,
model: info.modelLabel,
});常用字段
| 字段 | 含义 |
|---|---|
agentId / sessionId | 稳定归属与身份 |
title | 可为空的持久化标题 |
previewText | 适合列表的近期文本预览 |
messageCount | 已落盘 Message 数量 |
modelLabel | 仅用于观测的运行时模型标签 |
createdAt / updatedAt | 毫秒时间戳 |
executing | 当前是否有活跃 Turn |
timezone | 创建 Session 时记录的参考时区 |
get_info() 不返回完整历史或当前流式文本。需要会话内容使用 messages();需要流式状态使用 subscribe()。
标题的实际语义
首条用户消息后,SDK 会尝试使用当前可用模型生成标题并持久化。模型不可用或生成失败时,标题可以保持为空;SDK 不会保证用首条消息自动生成 fallback。
因此 UI 必须在 title 为空时回退到 sessionId、previewText 或产品自己的“新会话”文案。标题更新会以 variant: "session", type: "title" Mutation 实时发布。
列表与详情的分工
- 侧边栏:使用
agent.sessions.list(),避免为每个条目调用get_info()。 - 当前选中会话:使用
get_info()更新头部和执行状态。 - 内容区域:使用
messages()加载历史,使用subscribe()保持同步。
不要用 updatedAt 代替 executing 判断运行状态;时间戳只说明最近写入,不说明当前是否仍在执行。