CLI(命令行界面) 产品与架构

别名: 命令行

阶段二主线产品 v01 的第一交互面:读 stdin → 调 core → 打印输出与日志,是唯一的组合根。界面层依赖 core,core 不认识界面。见[第 14 章](/chapters/14-product-v01-cli/)。

它是什么

CLI(Command-Line Interface,命令行界面)是阶段二主线产品 v01 的第一交互面:读 stdin → 调 core → 打印输出与日志。它是唯一能「离开浏览器和图形界面也能完整用一遍 Agent」的入口,也是组合根(见composition-root)的落点——把配置、Provider、工具注册表、主循环拧成产品。

交互形态

v01 的 CLI 有两种形态:带参数启动(问题作为启动参数传入)一次性问答后退出;不带参数进入 REPL——you> 提示符循环读行,/tools 列出当前工具,/exit 退出。读 stdin 用 Node 的 readline/promisesfor await (const line of rl) 让管道输入(EOF)也能自然结束,不会把正在进行的问答掐断(这是 ch14 坑六——REPL 退出处理草率的解药)。

分层位置

CLI 属于界面层:只做三件事——读输入、调 core、打印输出。它通过 onEvent 回调被动看到 trace 并打印成日志,中间那几轮循环对它完全透明。判断分层是否健康的唯一标准:删掉 cli.mjs,core 还能不能单独跑起来、单独被测试(详见第 14 章)。

相关词条

出现在这些章节