بنقرة واحدة
session-usage
Session 对话单元的设计理念、上下文组装规则、memory / insight 槽位语义、单一 Session 模型与跨 Session 通信模型。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Session 对话单元的设计理念、上下文组装规则、memory / insight 槽位语义、单一 Session 模型与跨 Session 通信模型。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
StelloAgent 创建配置教程。完整说明 createStelloAgent 的每个配置项,包含 sessionDefaults、storage、tools、skills、forkProfiles、session 层接入、orchestration 等。
Engine 职责定义:per-session-round 生命周期管理器。驱动 tool call 循环,管理单个 Session 的多轮对话。不感知树结构,不感知调度。
Fork 机制完整说明。覆盖 ForkProfile 与 EngineForkOptions 的字段对齐、四层 fallback 合成链(sessionDefaults → parent → profile → forkOptions)、systemPrompt 合成三种模式、skills 三态语义、持久化边界(SerializableSessionConfig 只固化 systemPrompt/skills)。任何涉及 fork / profile / stello_create_session / 配置合成 的工作都应读这个。
Stello 框架内所有 LLM 调用位置的消息结构速查。覆盖 Session 对话、compress、consolidate;应用层 reflection 调用由 orchestrator 自行决定。
Consolidation 触发机制:自动触发通过 Factory 配置内联,手动触发通过 StelloAgent API;全局 reflection 由应用层在 SDK 之上自行实现。
Server 层设计:传输层架构决策、StelloAgent 映射原则、连接态管理模式。存储层见 server-storage,Engine 细节见 engine-design。
| name | session-usage |
| description | Session 对话单元的设计理念、上下文组装规则、memory / insight 槽位语义、单一 Session 模型与跨 Session 通信模型。 |
@stello-ai/session 只对外暴露一种 Session。对话起点是一个 parentId === null 的 root session(由 agent.createSession() 创建),其余通过 agent.forkSession() 挂在父节点下。Root 与 child 在运行时行为完全一致——差异仅在 TopologyNode.parentId。
一棵树可以有任意多 root,互相独立(森林)。
Session 始终是单次 LLM 调用原语:send() 单次调用 + 持久化,tool call 循环由 @stello-ai/core 的 Engine 驱动。
这是固定规则,不暴露扩展点(设计决策 #7)。
system prompt → session_identity(label) → insight(若有,消费后清除) → L3 历史 → 当前用户消息
getSystemPrompt(sessionId),全局每 Session 一份。label 自动生成的 <session_identity> 系统消息,告知 LLM 当前所在子会话身份。getInsight(sessionId),一次性:被消费后 send() 内置触发 clearInsight。listRecords(sessionId),会先经 removeIncompleteToolCallGroups 净化掉因中断/崩溃残留的不完整 tool call 组。当估算 token 数超过 maxContextTokens * 0.8 时,会调用闭包注入的 compressFn,将历史压缩为一段 system 摘要,与近期消息拼接。Session 内部缓存压缩结果,避免每次 send() 都调用 compressFn。
每个 Session 在 SessionStorage 中有三个独立内容槽位:
| 槽位 | 写入者 | 消费者 | 生命周期 |
|---|---|---|---|
systemPrompt | fork 合成链固化 / 应用层 | Session.send() 组装上下文 | 持久(每次 send 读取) |
insight | Orchestrator(应用层通过 putInsight) | Session.send() 消费一次后清除 | 一次性 inbox |
memory | 应用层(通过 consolidate 输出 / 直接 putMemory) | Orchestrator-facing 反思层(listSessionDigests) | 持久(被外部读,不进 send) |
关键不变量:memory 不进入 Session 自身的 LLM 上下文。它是面向外部视角的描述——上层可以批量收集所有 Session 的 memory 做反思、规划、调度,再通过 putInsight 把派生的洞察定向回写给目标 Session。Session 自身不感知这个回路。
子 Session 之间完全不感知。唯一的跨 Session 信息通道:
所有 Session 的 memory ──┐
├─→ 应用层反思层(任意 LLM)──→ putInsight(targetId, content)
┘
(StelloAgent.listSessionDigests 一次性取齐)
listSessionDigests 的结果做综合,再把派生 insight 定向回写。putMemory 的语义是替换不是追加。Session 层 fork(options) 完成上下文继承:
context: 'none' | 'inherit' | ForkContextFn 决定是否拷贝父 session 的 L3 记录Engine 在编排层会先创建 TopologyNode(拿到 ID),再调用 session.fork({ id })。调用方通过 agent.forkSession() 一次完成两步,详见 skill fork-design。
包内置两个 adapter:OpenAI 兼容协议和 Anthropic 协议(均为 optional peerDependencies)。也可自行实现 LLMAdapter 接口。