CRICommand Runner Interface与 CLICommand Line Interface设计与实践一、会议基本信息会议主题CRI 核心概念、封装方法及与 CLI、Skill 的关系二、核心概念解析1. CRICommand Runner Interface本质一系列封装好的脚本或能力集合可以被直接调用。定位是 Skill 的组成部分Skill 中的脚本可以被封装成 CRI。特点比 MCPModel Context Protocol更轻量适合个人场景。原子化能力每个 CRI 完成一个独立功能。2. CLICommand Line Interface定义命令行界面通过输入指令执行程序。历史背景图形界面GUI出现前的主要操作方式。典型命令cd、open、python、npm run等。CLI 程序开发流程编写脚本如 Python、Node.js。将脚本放入环境变量PATH指定的目录。添加脚本执行权限如chmod x。可选移除文件后缀如.py简化调用。通过终端直接运行指令无需输入路径或解释器。3. CRI 与 CLI 的关系CLI 是基础能力CRI 是对 CLI 的进一步封装面向 Agent 调用。CRI 让 Agent 能够像“喊老规矩”一样直接执行一系列预设指令。三、CLI 封装与设计规范1. 原子化能力拆解每个 CLI 应只完成一个最小功能单元。不要将完整流程如“登录 → 拉取 → 推送”封装成一个 CLI应拆分为多个原子 CLI。四大根基能力发现、处理、获取结果、导出。2. 管道设计输入/输出规范每个 CLI 必须有标准输入参数和标准输出结果。输出应结构化如 JSON便于 Agent 解析和下一个 CLI 调用。避免自行设计奇特的输出字段。3. 幂等性相同输入必须产生相同输出。不产生副作用如重复数据、状态污染。4. 非交互式设计重要CLI 不应包含需要用户交互的环节如yes/no选择、菜单选择、上下键选择语言。Agent 无法处理交互式输入尤其是在沙箱环境中如 Coze、Codex。应提供参数化选项如--yes/--no显式指定行为。5. 进度与日志输出避免使用进度条如[ ]对 Agent 无用且干扰。应输出清晰的状态文本如“安装中... 50% 完成”、“超时错误”。6. Help 信息与错误提示默认输入 CLI 无参数时应输出 help 信息一级命令列表。支持--help或-h参数显示所有可用指令、参数、示例。错误信息应明确指出错误原因及解决建议如“文件未找到请运行xxx检查路径”。7. 渐进式披露避免一次性输出所有层级命令防止上下文过长。先展示一级命令用户或 Agent 需要时再展示二级、三级命令。四、CLI 与 Skill 的结合应用传统 SkillSkill.md 中包含脚本路径、参数、执行方式。优化后方式将功能封装为 CLISkill.md 退化为 CLI 使用说明书。Skill 只需描述如何组合调用多个 CLI 完成流程。推荐开发顺序拆解产品功能点为原子能力。将每个原子能力封装为 CLI。编写 CLI 的帮助文档和最佳实践示例。基于 CLI 组装 Skill。五、实际案例与问题警示1. 飞书 CLI 的负面示例安装过程需要多次交互式输入yes/no、选择语言。沙箱环境下会导致 Agent 卡死或超时后才返回结果。教训不要设计交互式 CLI若必须交互应提供参数跳过。2. 阿里 OpenCode CLI 的二进制加密无法查看源码错误信息不友好Agent 难以调试。3. 说话人A 的 AutoNews CLI成功将登录、拉取资讯、推送等功能封装为独立 CLI。通过--help展示所有指令。提醒CLI 应与后端项目解耦独立依赖便于打包和分发到 NPM。六、行动项与建议行动项负责人备注尝试封装一个简单的 CLI如打印 hello world所有学员理解环境变量、权限、命名选择一个已有 Skill将其中的脚本改造为 CLI学员自选练习原子化拆解检查自己的 CLI 是否包含交互式环节开发者改用参数显式指定为 CLI 添加--help和结构化错误输出开发者提升 Agent 友好度思考如何将产品能力拆分为多个原子 CLI产品/技术参考“发现、处理、获取、导出”四大类七、答疑与后续安排建议学员动手实践避免“只听不练”。
QDKT15-2把功能/应用封装为 Agent 可用的 CLI 工具
CRICommand Runner Interface与 CLICommand Line Interface设计与实践一、会议基本信息会议主题CRI 核心概念、封装方法及与 CLI、Skill 的关系二、核心概念解析1. CRICommand Runner Interface本质一系列封装好的脚本或能力集合可以被直接调用。定位是 Skill 的组成部分Skill 中的脚本可以被封装成 CRI。特点比 MCPModel Context Protocol更轻量适合个人场景。原子化能力每个 CRI 完成一个独立功能。2. CLICommand Line Interface定义命令行界面通过输入指令执行程序。历史背景图形界面GUI出现前的主要操作方式。典型命令cd、open、python、npm run等。CLI 程序开发流程编写脚本如 Python、Node.js。将脚本放入环境变量PATH指定的目录。添加脚本执行权限如chmod x。可选移除文件后缀如.py简化调用。通过终端直接运行指令无需输入路径或解释器。3. CRI 与 CLI 的关系CLI 是基础能力CRI 是对 CLI 的进一步封装面向 Agent 调用。CRI 让 Agent 能够像“喊老规矩”一样直接执行一系列预设指令。三、CLI 封装与设计规范1. 原子化能力拆解每个 CLI 应只完成一个最小功能单元。不要将完整流程如“登录 → 拉取 → 推送”封装成一个 CLI应拆分为多个原子 CLI。四大根基能力发现、处理、获取结果、导出。2. 管道设计输入/输出规范每个 CLI 必须有标准输入参数和标准输出结果。输出应结构化如 JSON便于 Agent 解析和下一个 CLI 调用。避免自行设计奇特的输出字段。3. 幂等性相同输入必须产生相同输出。不产生副作用如重复数据、状态污染。4. 非交互式设计重要CLI 不应包含需要用户交互的环节如yes/no选择、菜单选择、上下键选择语言。Agent 无法处理交互式输入尤其是在沙箱环境中如 Coze、Codex。应提供参数化选项如--yes/--no显式指定行为。5. 进度与日志输出避免使用进度条如[ ]对 Agent 无用且干扰。应输出清晰的状态文本如“安装中... 50% 完成”、“超时错误”。6. Help 信息与错误提示默认输入 CLI 无参数时应输出 help 信息一级命令列表。支持--help或-h参数显示所有可用指令、参数、示例。错误信息应明确指出错误原因及解决建议如“文件未找到请运行xxx检查路径”。7. 渐进式披露避免一次性输出所有层级命令防止上下文过长。先展示一级命令用户或 Agent 需要时再展示二级、三级命令。四、CLI 与 Skill 的结合应用传统 SkillSkill.md 中包含脚本路径、参数、执行方式。优化后方式将功能封装为 CLISkill.md 退化为 CLI 使用说明书。Skill 只需描述如何组合调用多个 CLI 完成流程。推荐开发顺序拆解产品功能点为原子能力。将每个原子能力封装为 CLI。编写 CLI 的帮助文档和最佳实践示例。基于 CLI 组装 Skill。五、实际案例与问题警示1. 飞书 CLI 的负面示例安装过程需要多次交互式输入yes/no、选择语言。沙箱环境下会导致 Agent 卡死或超时后才返回结果。教训不要设计交互式 CLI若必须交互应提供参数跳过。2. 阿里 OpenCode CLI 的二进制加密无法查看源码错误信息不友好Agent 难以调试。3. 说话人A 的 AutoNews CLI成功将登录、拉取资讯、推送等功能封装为独立 CLI。通过--help展示所有指令。提醒CLI 应与后端项目解耦独立依赖便于打包和分发到 NPM。六、行动项与建议行动项负责人备注尝试封装一个简单的 CLI如打印 hello world所有学员理解环境变量、权限、命名选择一个已有 Skill将其中的脚本改造为 CLI学员自选练习原子化拆解检查自己的 CLI 是否包含交互式环节开发者改用参数显式指定为 CLI 添加--help和结构化错误输出开发者提升 Agent 友好度思考如何将产品能力拆分为多个原子 CLI产品/技术参考“发现、处理、获取、导出”四大类七、答疑与后续安排建议学员动手实践避免“只听不练”。