Skip to content

@stello-ai/core 配置

StelloAgentConfig 及其所有嵌套接口的完整参考。

StelloAgentConfig

顶层配置,传入 createStelloAgent() 创建 Agent。

typescript
interface StelloAgentConfig {
  sessions: SessionTree
  memory: MemoryEngine
  session?: StelloAgentSessionConfig
  capabilities: StelloAgentCapabilitiesConfig
  runtime?: StelloAgentRuntimeConfig
  orchestration?: StelloAgentOrchestrationConfig
}
字段必填说明
sessions拓扑树管理器
memory记忆引擎
sessionSession 组件接入配置
capabilities能力注入配置
runtime运行时配置
orchestration编排层配置

StelloAgentSessionConfig

@stello-ai/session 的 Session / MainSession 接入 core 的 Engine 体系。

typescript
interface StelloAgentSessionConfig {
  sessionResolver?: (sessionId: string) => Promise<SessionCompatible>
  mainSessionResolver?: () => Promise<MainSessionCompatible | null>
  consolidateFn?: SessionCompatibleConsolidateFn
  integrateFn?: SessionCompatibleIntegrateFn
  serializeSendResult?: (result: SessionCompatibleSendResult) => string
  toolCallParser?: ToolCallParser
  options?: Record<string, unknown>
}
字段说明
sessionResolver按 sessionId 解析真实 Session 实例
mainSessionResolver解析 MainSession,仅在需要 integration 时提供
consolidateFnSession L3 → L2 的提炼函数
integrateFnMainSession integration 函数
serializeSendResultsend() 结果序列化方式,默认 JSON
toolCallParserTurnRunner 用的 tool call 解析器,默认 sessionSendResultParser
options预留给 Session 组件的透传配置

TIP

如果提供了 sessionResolver + consolidateFn,core 会自动构建 runtime.resolver。如果同时手动提供了 runtime.resolver,手动配置优先。

StelloAgentCapabilitiesConfig

typescript
interface StelloAgentCapabilitiesConfig {
  lifecycle: EngineLifecycleAdapter
  tools: EngineToolRuntime
  skills: SkillRouter
  confirm: ConfirmProtocol
}
字段说明
lifecycle生命周期适配器
tools工具运行时
skills技能路由
confirm确认协议

EngineLifecycleAdapter

typescript
interface EngineLifecycleAdapter {
  bootstrap(sessionId: string): Promise<BootstrapResult>
  afterTurn(sessionId: string, userMsg: TurnRecord, assistantMsg: TurnRecord): Promise<AfterTurnResult>
  prepareChildSpawn(options: CreateSessionOptions): Promise<TopologyNode>
}
方法说明
bootstrap进入 Session 时做初始化,返回组装好的上下文和元数据
afterTurn每轮结束后处理:提取 L1、更新 memory、追加 L3
prepareChildSpawnfork 子 Session 前准备:创建文件夹、元数据、拓扑节点

EngineToolRuntime

typescript
interface EngineToolRuntime {
  getToolDefinitions(): ToolDefinition[]
  executeTool(name: string, args: Record<string, unknown>): Promise<ToolExecutionResult>
}
方法说明
getToolDefinitions返回所有可用工具的定义(名称、描述、参数 schema)
executeTool执行指定工具

ConfirmProtocol

typescript
interface ConfirmProtocol {
  confirmSplit(proposal: SplitProposal): Promise<TopologyNode>
  dismissSplit(proposal: SplitProposal): Promise<void>
  confirmUpdate(proposal: UpdateProposal): Promise<void>
  dismissUpdate(proposal: UpdateProposal): Promise<void>
}
方法说明
confirmSplit确认拆分建议,创建子 Session
dismissSplit拒绝拆分建议
confirmUpdate确认 L1 字段更新
dismissUpdate拒绝 L1 字段更新

SkillRouter / Skill

Skill 对齐标准 Agent Skills 模式(lazy-loaded prompt injection)。LLM 通过内置的 activate_skill tool 按名称激活 skill,Engine 返回 skill 的 content 作为 tool result。

typescript
interface SkillRouter {
  register(skill: Skill): void
  get(name: string): Skill | undefined
  getAll(): Skill[]
}

interface Skill {
  name: string          // 唯一名称
  description: string   // LLM 据此判断是否激活
  content: string       // 激活时注入的完整 prompt 内容
}

Engine 在有 skill 注册时自动追加 activate_skill tool 到 getToolDefinitions() 列表,LLM 可通过 tool call 激活 skill。

StelloAgentRuntimeConfig

typescript
interface StelloAgentRuntimeConfig {
  resolver: SessionRuntimeResolver
  recyclePolicy?: RuntimeRecyclePolicy
}
字段说明
resolverSession 运行时解析器
recyclePolicyEngine 回收策略

RuntimeRecyclePolicy

typescript
interface RuntimeRecyclePolicy {
  idleTtlMs?: number
}
字段默认值说明
idleTtlMs0空闲回收延迟(毫秒)。0 表示引用归零立即回收;> 0 表示延迟回收

StelloAgentOrchestrationConfig

typescript
interface StelloAgentOrchestrationConfig {
  strategy?: OrchestrationStrategy
  splitGuard?: SplitGuard
  mainSession?: SchedulerMainSession | null
  turnRunner?: TurnRunner
  scheduler?: Scheduler
  hooks?: EngineHookProvider
}
字段说明
strategy编排策略,默认 MainSessionFlatStrategy
splitGuard拆分保护守卫
mainSessionScheduler 用的 MainSession,不提供则不做 integration
turnRunner自定义 TurnRunner
scheduler自定义 Scheduler
hooksEngine 事件钩子提供者

EngineHooks

typescript
interface EngineHooks {
  onMessageReceived(ctx: { sessionId: string; input: string }): Promise<void> | void
  onAssistantReply(ctx: { sessionId: string; input: string; content: string | null; rawResponse: string }): Promise<void> | void
  onToolCall(ctx: { sessionId: string; toolCall: ToolCall }): Promise<void> | void
  onToolResult(ctx: { sessionId: string; result: ToolCallResult }): Promise<void> | void
  onSessionEnter(ctx: { sessionId: string }): Promise<void> | void
  onSessionLeave(ctx: { sessionId: string }): Promise<void> | void
  onRoundStart(ctx: EngineRoundContext): Promise<void> | void
  onRoundEnd(ctx: EngineRoundResultContext): Promise<void> | void
  onSessionArchive(ctx: { sessionId: string }): Promise<void> | void
  onSessionFork(ctx: { parentId: string; child: TopologyNode }): Promise<void> | void
  onError(ctx: { source: string; error: Error }): Promise<void> | void
}

所有钩子均为可选,支持同步或异步。

钩子上下文
onMessageReceivedsessionIdinput
onAssistantReplysessionIdinputcontentrawResponse
onToolCallsessionIdtoolCall(含 name、args)
onToolResultsessionIdresult(含 toolName、success、data、error)
onSessionEntersessionId
onSessionLeavesessionId
onRoundStartsessionIdinput
onRoundEndsessionIdinputturn(TurnRunnerResult)
onSessionArchivesessionId
onSessionForkparentIdchild(TopologyNode)
onErrorsourceerror

SchedulerConfig

typescript
interface SchedulerConfig {
  consolidation?: ConsolidationPolicy
  integration?: IntegrationPolicy
}

interface ConsolidationPolicy {
  trigger: ConsolidationTrigger
  everyNTurns?: number
}

interface IntegrationPolicy {
  trigger: IntegrationTrigger
  everyNTurns?: number
}

ConsolidationTrigger'manual' | 'everyNTurns' | 'onSwitch' | 'onArchive' | 'onLeave'

IntegrationTrigger'manual' | 'afterConsolidate' | 'everyNTurns' | 'onSwitch' | 'onArchive' | 'onLeave'

SplitGuard

typescript
class SplitGuard {
  constructor(sessions: SessionTreeImpl, strategy?: Partial<SplitStrategy>)
  getConfig(): { minTurns: number; cooldownTurns: number }
  updateConfig(patch: Partial<{ minTurns: number; cooldownTurns: number }>): void
  checkCanSplit(sessionId: string): Promise<SplitCheckResult>
}
参数默认值说明
minTurns3Session 至少对话 N 轮后才允许拆分
cooldownTurns5两次拆分之间至少间隔 N 轮

TurnRunnerOptions

typescript
interface TurnRunnerOptions {
  maxToolRounds?: number
  onToolCall?: (toolCall: ToolCall) => Promise<void> | void
  onToolResult?: (result: ToolCallResult) => Promise<void> | void
}
字段说明
maxToolRounds最多允许多少轮工具调用
onToolCall工具调用前的观察回调
onToolResult工具调用后的观察回调

StelloAgentHotConfig

可通过 updateConfig() 在运行时安全修改的配置子集。仅包含值类型字段,不包含函数/对象引用。

typescript
interface StelloAgentHotConfig {
  runtime?: Partial<RuntimeRecyclePolicy>
  scheduling?: Partial<SchedulerConfig>
  splitGuard?: Partial<{ minTurns: number; cooldownTurns: number }>
}