1. 核心不是类,而是一组稳定 service key
| Key | 责任 | 谁消费 |
|---|---|---|
ctx.sessions | 活跃 Session 与事件日志 | loop、持久化、UI |
ctx.systemPrompt | prompt section / variable / tool schema 组装 | loop |
ctx.tools | 工具注册与执行管线 | loop、MCP、工具插件 |
ctx.agents | 活跃 agent 注册表与 factory 委托 | UI、CLI、subagent |
ctx.agentLoop | 唯一具体 loop driver | agents factory |
ctx.llm | 消息/流协议与 adapter registry | loop、model provider |
2. 稳定接口 vs 具体实现
这是读 DSH 源码最重要的分层:core 包常常定义“契约”,provider 包提供“实现”,tool/UI 包做“消费”。如果你看到一个 consumer import 了具体 local provider,就要警觉它可能破坏 seam。