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 为空时回退到 sessionIdpreviewText 或产品自己的“新会话”文案。标题更新会以 variant: "session", type: "title" Mutation 实时发布。

列表与详情的分工

  • 侧边栏:使用 agent.sessions.list(),避免为每个条目调用 get_info()
  • 当前选中会话:使用 get_info() 更新头部和执行状态。
  • 内容区域:使用 messages() 加载历史,使用 subscribe() 保持同步。

不要用 updatedAt 代替 executing 判断运行状态;时间戳只说明最近写入,不说明当前是否仍在执行。