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-deepseekllm-pi-aillm-replayagent-loopcompaction-basic
ctx.sessionPersistencesession-persistence-jsonl-sqliteagent-looptool-bash、hooks、query
ctx.sessionQuerysession-querysession-query-sqlitesession-referencetool-session-query
ctx.sessionTitlesession-titlefirst-prompt-llmall-prompts-llm
ctx.sessionTelemetrysession-telemetrysession-telemetry-otel
ctx.settingssettingssettings-fileLLM 适配器、apiproxy
ctx.credentialscredentialscredentials-localLLM 适配器、apiproxy
ctx.storagestoragestorage-jsonstorage-sqlitestorage-domain
ctx.skillsskillskill-badgeskill-filesystemtool-skill
ctx.subprocesssubprocesssubprocess-localsubprocess-e2bbash/terminal/lsp/subagent providers
ctx.shellshellbash-localbash-sandboxpwsh-localtool-bashtool-pwsh、hooks
ctx.terminalsterminalterminal-bashtool-terminal
ctx.sandboxsandboxsandbox-localbash-sandboxterminal-bash
ctx.codeRuntimecode-runtimecode-runtime-workertools(Code Mode)
ctx.fsfsfs-localfs-sandboxfs-e2btool-fsfs-observation-policy
ctx.compactioncompactioncompaction-basiccompaction-basic
ctx.subagentssubagentspawn/fork/acp/codex/claude-code/dsh-sdktool-subagenttool-subagent-controltool-ralph
ctx.jobsjobsjobs-localtool-bashtool-terminaltool-subagenttool-jobs
ctx.webwebexa/perplexity/deepseek search + http fetchtool-web
ctx.spillStorespillspill-localspill-policy
ctx.workflowEngineworkflowworkflow-worker-threadtool-workflowtool-ralph
ctx.lsplsplsp-local(stdio 宿主)tool-lsp
ctx.approvalapprovalacptoolstool-bash
ctx.userQuestionsuser-questionstool-ask-user
ctx.attachmentsattachmentattachment-localhost-runtimellm-pi-ai
ctx.directoryPickerdirectory-picker-native-browseapiproxy
ctx.e2be2bfs-e2bsubprocess-e2b

事件域

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

  1. 会话事件turn/*step/*user/messageassistant/chunk|messagetool/call|resultrequest/header|contexttodo/writecompaction/*hook/invoked|resultfs/observedpermission/presetplan/modegoal/changesession/title 等——持久、跨重载。
  2. Agent 事件agent/*):inbox/*statuspre-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"表的展开。

下一步