بنقرة واحدة
engine-design
Engine 职责定义:per-session-round 生命周期管理器。驱动 tool call 循环,管理单个 Session 的多轮对话。不感知树结构,不感知调度。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Engine 职责定义:per-session-round 生命周期管理器。驱动 tool call 循环,管理单个 Session 的多轮对话。不感知树结构,不感知调度。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
StelloAgent 创建配置教程。完整说明 createStelloAgent 的每个配置项,包含 sessionDefaults、storage、tools、skills、forkProfiles、session 层接入、orchestration 等。
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。
@stello-ai/server 的 PG 持久化层设计决策和实现模式。触发条件:修改或引用 server 存储层。
| name | engine-design |
| description | Engine 职责定义:per-session-round 生命周期管理器。驱动 tool call 循环,管理单个 Session 的多轮对话。不感知树结构,不感知调度。 |
Engine 是 Session 原语之上的单 Session 多轮对话管理器。
Engine 不感知树结构,不知道其他 Session 的存在,也不感知调度策略。
做:tool call 循环、consolidate() 执行、hooks fire-and-forget、生命周期边界(enter/leave/archive/fork)、fork 编排(拓扑 + session 创建)、内置 tool 注册与执行(通过 CompositeToolRuntime 统一调度)、error 事件 emit
不做:调度时机判断(由 Factory hook 内联)、持有跨 Session 状态(全局反思层由应用层在 StelloAgent 之外实现)、Session 切换检测(Orchestrator)、多 Session 管理
Engine 负责 fork 的完整编排:创建拓扑节点(topology-first,生成 ID)→ 调用 session.fork({ id, ... }) 创建 session 实例 → 触发事件。session.fork() 天然处理 systemPrompt 继承、context 继承(含 contextFn)、prompt 写入、LLM/tools/consolidateFn/compressFn 覆盖。Orchestrator 分离"拓扑父节点"(策略决定)与"fork 来源 session"(继承内容来源)。
fork 选项中的 consolidateFn 和 compressFn 遵循继承链:fork 时指定则用新的,不指定则继承父 session 的。Agent 配置中的 session.consolidateFn 作为根 session 的默认值,后续嵌套 fork 按继承链传递。这使不同 session 可以有不同的 L3→L2 提炼策略和上下文压缩策略。
内置 tool(stello_create_session、activate_skill)在 Engine 构造时通过 createBuiltinToolEntries() 生成 ToolRegistryEntry 实例,闭包捕获 Engine 上下文,与用户 tool 统一走 CompositeToolRuntime 调度。LLM 调用 stello_create_session 时,Engine 解析 ForkProfile(如有),合成 systemPrompt,profile 的 contextFn/llm/tools 直接映射到 fork 选项,profile.skills 白名单写入 session metadata(_stello.allowedSkills),再走 forkSession 完整路径。Factory 创建子 Engine 时读取 metadata,按需用 FilteredSkillRouter 包装全局 SkillRouter。
内置 tool 和用户 tool 统一走 ToolRegistryEntry + CompositeToolRuntime。Engine 构造时自动创建内置 entries(闭包捕获 Engine 实例),与用户 EngineToolRuntime 组合。getToolDefinitions 和 executeTool 均委托给 CompositeToolRuntime,内置 tool 优先、同名去重。用户无需手动注册内置 tool。
Engine 不持有 Scheduler,也不感知"全局反思"概念。Consolidation 触发逻辑(如 consolidateEveryNTurns)由 Factory 构建闭包注入 EngineHooks。Engine 在事件点 fire-and-forget 调用 hooks,不知道背后有调度。
EngineTurnResult 只包含 { turn }。调度是 fire-and-forget 的内部副作用,结果对调用方不可见。
hooks 抛错时 emit error 事件 + 调用 onError hook,不中断对话周期。Scheduler 闭包失败同理。
用户 hooks 和 Factory 内联 hooks 在同一 key 下都能触发,由 Factory 的 mergeHooks 保证。