Skip to content

14. 事件与能力 Seam 全景 ​

这一章把整个项目的服务地图一次性摊开:每个 ctx 服务是什么角色、由哪个包拥有、有哪些实现与消费方。这是理解"一切皆插件"的最直接索引。

完整机器生成图见官方 docs/capability-seams.md(含 Mermaid 依赖图 + 完整表格)。

角色分类 ​

  • core:主干服务(不实现 provider,是注册表/协调者)。
  • seam:可替换能力(Service Definition + Provider + Consumer 三段式)。
  • bundle:组合点。

核心主干服务(core) ​

ctx 键拥有包说明
ctx.sessionssession(core)只追加 Session 实例 + 持久会话事件流
ctx.systemPromptsystem-prompt(core)每步收集 prompt 片段与工具 schema
ctx.toolstools(core)工具注册表 + 守卫执行管线
ctx.agentsagent(core)活 Agent 句柄、创建/恢复工厂、发起人传播
ctx.agentLoopagent-loop(core)唯一具体循环插件
ctx.agentDefaultModelagent-default-model进程级默认模型选择
ctx.goalsgoal同会话目标域
ctx.invariantsinvariants包所属运行时不变式注册表
ctx.typerttypert-registry运行时类型注册表
ctx.typertGatewayapi-gatewayTypert Host 调用网关
ctx.commandscommands人类命令注册表
ctx.planModeplan-mode计划协作状态
ctx.agentPresetsagent-presets每会话 agent 组合
ctx.sessionProjectionssession-projection会话投影单元
ctx.sessionProjectionCachesession-projection-cache持久化投影缓存
ctx.tokenMetertoken-meter回放 token 计量
ctx.toolResultPrunercompaction-tool-result-pruner无模型工具结果剪枝
ctx.permissionPresetspermission-presets权限预设表
ctx.sandboxPolicysandbox-policy沙箱策略 home
ctx.shellEnvshell-env受管 bash 环境注册表
ctx.storage / ctx.storageDomainstorage / storage-domain非会话存储 hub / 领域数据
ctx.workspaceRegistryworkspace工作区实体注册表
ctx.messageFeedbackmessage-feedback逐消息反馈
ctx.webServerwebserverHTTP 路由注册
ctx.clientModulesmodules客户端插件图 host
ctx.apiProxyapiproxy传输无关 Host 网关
ctx.dynamicCordisRunner / ctx.cordisInspectcordis-host-runner动态插件 runner / inspect 注册表

能力 seam(seam) ​

ctx 键定义包实现(provider)消费方
ctx.llmllmllm-deepseek、llm-pi-ai、llm-replayagent-loop、compaction-basic
ctx.sessionPersistencesession-persistence-jsonl、-sqliteagent-loop、tool-bash、hooks、query
ctx.sessionQuerysession-querysession-query-sqlitesession-reference、tool-session-query
ctx.sessionTitlesession-titlefirst-prompt-llm、all-prompts-llm—
ctx.sessionTelemetrysession-telemetrysession-telemetry-otel—
ctx.settingssettingssettings-fileLLM 适配器、apiproxy
ctx.credentialscredentialscredentials-localLLM 适配器、apiproxy
ctx.storagestoragestorage-json、storage-sqlitestorage-domain
ctx.skillsskillskill-badge、skill-filesystemtool-skill
ctx.subprocesssubprocesssubprocess-local、subprocess-e2bbash/terminal/lsp/subagent providers
ctx.shellshellbash-local、bash-sandbox、pwsh-localtool-bash、tool-pwsh、hooks
ctx.terminalsterminalterminal-bashtool-terminal
ctx.sandboxsandboxsandbox-localbash-sandbox、terminal-bash
ctx.codeRuntimecode-runtimecode-runtime-workertools(Code Mode)
ctx.fsfsfs-local、fs-sandbox、fs-e2btool-fs、fs-observation-policy
ctx.compactioncompactioncompaction-basiccompaction-basic
ctx.subagentssubagentspawn/fork/acp/codex/claude-code/dsh-sdktool-subagent、tool-subagent-control、tool-ralph
ctx.jobsjobsjobs-localtool-bash、tool-terminal、tool-subagent、tool-jobs
ctx.webwebexa/perplexity/deepseek search + http fetchtool-web
ctx.spillStorespillspill-localspill-policy
ctx.workflowEngineworkflowworkflow-worker-threadtool-workflow、tool-ralph
ctx.lsplsplsp-local(stdio 宿主)tool-lsp
ctx.approvalapprovalacptools、tool-bash
ctx.userQuestionsuser-questions—tool-ask-user
ctx.attachmentsattachmentattachment-localhost-runtime、llm-pi-ai
ctx.directoryPickerdirectory-picker-native、-browseapiproxy
ctx.e2be2b—fs-e2b、subprocess-e2b

事件域 ​

三类事件(详见「回合与步骤生命周期」):

  1. 会话事件:turn/*、step/*、user/message、assistant/chunk|message、tool/call|result、request/header|context、todo/write、compaction/*、hook/invoked|result、fs/observed、permission/preset、plan/mode、goal/change、session/title 等——持久、跨重载。
  2. Agent 事件(agent/*):inbox/*、status、pre-step(waterfall)、request(waterfall)、request-error(waterfall)、turn-stopping(serial)、error 等——实时协调。
  3. 能力事件:fs/*、tools/*、telemetry/* 等——给 seam 附加策略/适配器。

读这张地图的方式 ​

  • 想知道"怎么加一个模型 provider" → ctx.llm 注册适配器。
  • "怎么加一个能力" → 设计三段式 seam,Consumer 注册到 ctx.tools。
  • "怎么拦截" → 找对应 agent/* 或 tools/* waterfall。
  • "怎么持久化" → 扩展 SessionEventMap + 订阅 session/event。

这张地图就是官方 architecture.md 的"Where new behavior goes"表的展开。

下一步 ​