跳转至

CLI、MCP 和 CLI+Skill,应该如何选?

📊 Level ⭐⭐⭐⭐ | 12.0KB

-> 原文存档

CLI、MCP 和 CLI+Skill:企业Agent架构选择指南

三个东西不是一层

概念 关注点
MCP 能力接入协议——外部系统怎么被 Agent 发现、授权、调用和审计
CLI 执行接口——在某个运行环境里把事情做掉
Skill 工作流封装——Agent 什么时候用工具、按什么顺序、失败怎么处理

组合原则:Skill 写方法,MCP 管边界,CLI 做执行。

决策矩阵

场景 推荐方案
本地开发/个人使用 CLI+Skill
多个 Agent/客户端复用 MCP
生产数据/审批/审计 MCP-like gateway
工具数量很多 tool search + 分层加载
大量中间数据 模型外处理,只回传摘要

三层推荐架构

Skill(方法层):放流程和经验——排查告警、发布前检查、事故复盘

MCP Gateway(治理层):工具发现、权限、审计、配额、审批。Agent 只通过少量高层工具表达意图

底层已有系统:内部 API、CLI、监控系统——MCP server 只是包装层

关键原则:工具粒度要克制,暴露高层意图工具(如 request_production_change)而非几百个 REST API tools。

MCP 的 tools tax 问题

工具数量多时,MCP 必须配 progressive tool discovery——不要把所有工具 schema 一次性注入模型,先给 search_tools,模型搜相关工具后再加载具体 schema。

上线顺序

  1. CLI+Skill 跑通高频工作流(PR review、测试定位、K8s 排查)
  2. 评估哪些需要跨团队复用/涉及权限审计
  3. 这些才提升为 MCP,加 tool search
  4. 保留 CLI——MCP server 内部可以继续调用已有 CLI

一句话:小团队 CLI+Skill 跑通,大组织 MCP 建契约,两者一起用效果最好。

深度分析

核心洞察:三层架构的本质是关注点分离

CLI、MCP 和 Skill 代表了三个不同层次的抽象: - CLI 是执行原语,负责在特定运行环境里完成具体操作 - MCP 是治理协议,负责能力发现、授权、调用审计 - Skill 是方法论封装,负责编排和决策——什么时候做什么事

这个分离的意义在于:让不同角色在不同层次上工作。Agent 不需要理解 kubectl 的所有 flags,只需要知道"查看集群状态"这个高层意图。运维团队在 MCP Gateway 层做权限控制和审计,不需要修改 Skill。

CLI+Skill 适合Local-first 的根本原因

CLI 默认不占上下文这个特性被严重低估。Agent 在处理复杂任务时,上下文窗口是最昂贵的资源。当 Agent 调用 CLI 时: 1. 需要什么参数 → 运行时通过 --help 获取 2. 输出太长 → 用 jq/rg/head/tail 过滤 3. 中间数据太多 → 写到临时文件,只回传摘要

这本质上是"流式上下文管理"——按需拉取、按需过滤、选择性回传。相比之下,把所有 CLI 包装成 MCP tools 并一次性注入 schema,是用空间换时间,反而浪费了宝贵的上下文。

MCP Gateway 的边界价值

MCP 的真正价值不在于"让工具更容易被发现",而在于"让 Agent 的能力边界更清晰"。当 MCP server 挡在 Agent 和内部系统之间时:

  • Agent 看不到原始 token,拿不到底层系统的直接访问权
  • 所有操作经过 OAuth/RBAC 审计,配额和审批在 server 侧强制执行
  • 内部 API 的版本变化对 Agent 透明,只暴露高层意图工具

这是安全架构,不是便利性架构。很多团队把 MCP 当作"更方便的 API 封装",忽略了它的治理意义。

工具粒度与模型推理成本的权衡

暴露高层意图工具(如 request_production_change)而非几百个 REST API tools,本质上是在降低模型的推理复杂度。模型不需要在几百个工具中选择,只需要表达高层意图,由 MCP server 翻译成具体的系统调用。

当工具数量超过某个阈值(通常在 50-100 个左右)时,模型选择工具的错误率会显著上升。Progressive tool discovery 是工程上的补救,但根本解法是克制工具粒度,让 MCP server 承担路由责任。

上线顺序的实践意义

推荐的上手路径(CLI+Skill → 评估 → MCP 提升)有深刻的组织心理学基础:

小团队用 CLI+Skill 能快速验证价值,不需要在治理架构上投入太多。当工作流被验证有效后,自然会发现哪些是跨团队复用的公共能力——这些才值得升级为 MCP。这个顺序避免了"过度设计"和"治理先行"常见陷阱。

实践启示

1. 优先用 CLI+Skill 验证,再考虑 MCP

在决定是否用 MCP 之前,先用 CLI+Skill 把核心工作流跑通。判断标准:这个工作流是否被多个团队反复使用?是否涉及权限审计?如果都不是,先用 CLI+Skill,保持灵活性。

2. MCP 的工具 schema 要克制

MCP server 暴露的工具应该是高层意图工具,不是 REST API 的 1:1 映射。一个 search_recent_incidents 比 20 个 GET /incidents/{id}, POST /incidents, PUT /incidents/{id} 更有价值。工具数量控制在 Agent 能直观理解的范围内(建议不超过 20 个)。

3. 用 Progressive Tool Discovery 处理工具爆炸

当工具数量必然很多时(如内部有几十个微服务),不要试图减少工具数量,而是改变工具的加载方式:先给 Agent 一个 search_tools 轻量工具,让它按需搜索和加载具体 schema。这比一次性注入所有工具 schema 更节省上下文。

4. 企业治理优先考虑 MCP Gateway

如果涉及生产数据、审批流程、合规审计,CLI 无法满足要求,因为 Agent 可能直接读取本地凭据或调用数据库。这时候需要 MCP-like gateway,把治理能力前置,Agent 只通过受控的接口操作。

5. CLI 可以是 MCP Server 的实现细节

很多 MCP server 的内部实现可以继续调用已有 CLI。这意味着 CLI 不是被替代,而是被更薄地包装。不要因为上了 MCP 就急着把所有 CLI 重写——保持 CLI 的独立性和可测试性,MCP 只是加了一层治理包装。

6. 保留 Skill 层的方法论积累

Skill 是组织经验和方法论的载体。不要把 Skill 看作"让 Agent 调用工具的配置文件",而应该看作组织最佳实践的编码。当新成员加入时,应该能通过阅读 Skill 理解:"我们团队是怎么做发布前检查的?"、"线上告警应该按什么顺序排查?"

相关实体

第 2 来源:老系统接入 AI 的概念地图与三条路径(腾讯技术工程 2026-10-12,/54 SUPP)

腾讯智慧出行 FDE 面向整车集团研究院 IT 团队的落地方法论(42 页交流成文)。与本文第 1 来源(绿地企业 Agent 平台的三层推荐架构)互补——本文增量是存量系统改造路径学。

  • 体检四维度 + 三路径决策树(零覆盖):先体检 API 开放程度/文档完整性/鉴权体系/变更风险承受度,再走决策树——①API 封装为 MCP(首选,封装层只做协议转换不碰业务逻辑)②CLI 包装(无 API 有脚本,输出结构化 JSON 再包 MCP)③浏览器自动化/RPA(兜底,过渡方案非终态);改造深度递减、脆弱性递增。安全一案一议(身份传递/权限最小化/审计/敏感动作人工确认),无通用标准。排序用「使用频次-业务价值」四象限,高频低风险有 API 的先动手。
  • MCP 传输四类版图(零覆盖):官方标准仅 stdio 与 Streamable HTTP 两种(SSE 自 2025-03 被取代,只做存量迁移);社区扩展(WebSocket/WebRTC/进程内 RPC)按需;MCP Gateway/Proxy/托管属部署架构而非传输方式——MCP 是传输无关的。选型:本地 stdio / 企业共享 Streamable HTTP+OAuth / WebSocket 留实时与浏览器桥接。
  • 双案例:BS 架构车企请假销假系统(REST API+MCP Server 薄封装,SSO 对接,老系统零改动,五步查假期变一句话);CS 架构欧洲商用车企 PLM 桌面客户端(客户端 API→本地封装服务→结构化接口→MCP,沿用客户端登录态,解决 BOM/图纸人工搬运)。复用三经验:先体检再选路径/封装要薄(封装层越薄项目死得越慢)/鉴权写进项目计划。

→ 原文存档