Core 与界面分层(Core/Interface) 产品与架构
别名:
core 与界面
产品骨架中最本质的分界:core(配置 / 传输 / 工具 / 主循环)负责决策,界面(CLI / 服务)负责组装与表达,通过注入与回调连接。判断标准:删掉 cli.mjs,core 还能不能单独跑、单独被测试。见[第 14 章](/chapters/14-product-v01-cli/)。
它是什么
Core 与界面(Core/Interface)分层是产品骨架里最本质的分界:core(配置 / 传输 / 工具 / 主循环)负责决策,界面(CLI / 服务)负责组装与表达,两者通过注入与回调连接。判断标准一句话:删掉 cli.mjs,core 还能不能单独跑、单独被测试?
连接方式
连接靠两样东西:依赖注入(组合根把 callLlm 和 tools 注入 runAgent,core 不知道背后是 OpenAI 格式还是 Anthropic 格式)与回调(onEvent trace 回调——core 在 think / act / observe / done 四个时点发事件,但不知道谁在听,界面层决定打印、推送还是存储)。core 保持沉默,界面负责表达。
为什么值得
这个分界带来的是可演进性:ch15 把 CLI 换成 HTTP/SSE 服务时,core 一行不用改——服务化只是「换一个界面」;测试可以脱离网络、脱离终端直接驱动 core。它对应的架构原则是依赖倒置(DIP)与封装:core 只面向抽象契约(callLlm(messages, tools)、注册表 list()/get()),不碰具体实现(详见第 14 章)。