cli-is-first

  1. why cli is first
  2. CLI Is First 的弊端
    1. 经济上
    2. 性能上
  3. 总结

why cli is first

核心观点:

  1. mcp服务需要额外开发
  2. mcp上下文全占模式并不合理
  3. SKILLS和CLI契合度很高
  4. 使用顶尖Agent

为什么 CLI Is First?

  1. 减少额外开发成本:相比于 MCP 服务,CLI 不需要额外的服务开发,降低了开发和维护成本。
  2. 上下文管理更合理:CLI 可以按需加载上下文,避免 MCP 全占模式带来的资源浪费。
  3. 与 SKILLS 高度契合:CLI 的交互方式与技能模块天然匹配,提高了开发效率。
  4. 便于使用顶尖 Agent:通过 CLI,开发者可以更方便地调用和管理顶尖 Agent,实现高效的任务执行。

还要 CLI Is First,因为它能够最大化地发挥 agent 的能力,同时降低开发和运维的复杂度。 MCP 系统需要对老旧的系统进行额外的适配与改造才允许让AI使用,但是CLI First 可以直接利用现有的命令行工具,无需额外的适配工作,从而大大降低了开发和运维的复杂度。

CLI Is First 的弊端

  1. 依赖命令行工具,这类工具的更新与内部分发很难更新,MCP只需要适配一次即可,而 CLI 每次都需要确保本地环境的一致性。
  2. 对于复杂的任务,CLI 的交互方式可能不如 MCP 高效,尤其是在需要频繁调用多个命令或处理大量数据时。
  3. 安全性问题:CLI 直接操作本地系统,可能带来安全风险,而 MCP 可以通过集中管理和权限控制降低风险。

而且在定制化agent的时候渐进式加载的SKILLS还是会拖累agent的速度,而且CLI工具会导致agent的运行时安全变得格外重要。

经济上

MCP每次都放入上下文,虽然对上下文开销比较大,但是现阶段的大模型上下文已经非常非常大,能够容纳更多的信息,并且现在模型都带有缓存机制,KV Cache机制确保了上下文命中价格很低,速度更快,尤其是长上下文情况下,MCP 的上下文管理开销并不会成为瓶颈。

性能上

SKILLS 是渐进式加载的,而MCP是直接注入上下文的,这意味着在性能上,MCP 可以更快地访问所需的信息,而 SKILLS 可能需要在运行时逐步加载,导致一定的延迟。

而且CLI 工具的性能很大程度上依赖于本地环境的配置和命令行工具的执行效率,如果本地环境不一致或者工具执行缓慢,可能会影响整体性能。

总结

CLI Is First 在减少开发成本、合理管理上下文、与技能模块高度契合以及便于使用顶尖 Agent 方面具有明显优势。然而,它也存在依赖本地命令行工具、复杂任务交互效率低以及安全性问题等弊端。在选择使用 CLI 还是 MCP 时,需要根据具体的项目需求和环境进行权衡。

如果是新开项目,优先考虑 MCP 并且在设计的时候可以将系统设计成为 AI Native 架构,将接口更多地暴露给 AI,使得系统能够更好地利用大模型的能力,同时保留 CLI 的灵活性以应对特定场景的需求。

对于已有系统,可以尝试 CLI 工具,低侵入地集成到现有工作流中,从而在不大幅改动系统架构的情况下,充分利用 CLI 的优势,但是也对该公司地基础设施建设和代码工具分发与管理提出了更高地要求。

github