简介:本文面向开发者、运维人员与技术负责人,系统梳理Model、Agent、Skill、CLI、MCP五个高频概念的定义、分层位置与调用关系,绘制一张概念地图,并给出老系统接入AI的三条路径:直连模型API、工具化封装经MCP接入、CLI桥接既有脚本。每条路径均包含实施步骤、配置示例、验证方法与排查思路,帮助你快速完成选型与落地。
本教程要帮你完成三件事:
先给一句话结论:Model 是大脑,Agent 是完整的人,工具是手,MCP 是手与外部世界之间约定的标准接口,Skill 是把一套成熟打法打包的技能包,CLI 是工具最常见的具体形态之一。
模型接收一段结构化输入(消息列表),返回一段输出。它本身不联网、不执行任何动作、没有上下文之外的记忆。常见两类用法:一是对话生成,二是工具调用决策——即根据指令判断“是否需要调用某个工具、传什么参数”。
Agent 以模型为推理核心,再加上四件事:任务规划、工具执行、结果观察、循环决策,直到任务完成。关系上要记住:Agent 调用 Model,而不是 Model 调用 Agent,Model 只是 Agent 的一个组件。
工具是一个可被程序调用的函数或接口,用一份结构化描述(通常基于 JSON Schema)告诉模型“名称、用途、参数”。老系统的查询接口、写入接口、脚本,都可以被包装成工具。
Skill 通常指把“提示词模板 + 执行流程 + 依赖的工具组合”封装成可复用、可分发的能力单元。与工具的区别在于:工具是单个动作,技能是一套完成某类任务的组合方案,技能内部往往还要调用多个工具。
CLI 泛指命令行形态的可执行入口。它之所以重要,是因为大量老系统天然存在运维脚本、批处理命令、管理入口。对 Agent 而言,“执行一条命令并读取输出”是最容易标准化的动作,因此 CLI 是老系统接入 AI 性价比很高的切口。
MCP(Model Context Protocol,模型上下文协议)是业界出现的开放协议之一,目标是统一“模型应用”与“外部能力”之间的连接方式。其基本结构是客户端—服务端模式:Agent 侧持有 MCP 客户端,工具提供方实现 MCP 服务端;服务端通过协议暴露三类原语——工具(可执行动作)、资源(可读取数据)、提示(可复用的指令模板);通信基于 JSON 消息,常见传输方式包括标准输入输出(适合本地进程)与 HTTP(适合远程服务)。在统一协议出现之前,各 Agent 框架分别定义一套工具接入方式,工具提供方要重复适配;有了统一协议,“一次实现、多处接入”才成为可能。
用户│ 提出目标▼Agent(调度与决策循环)├─ 调用 ──► Model(推理:规划、选择工具、生成参数)├─ 加载 ──► Skill(技能包:提示词 + 流程 + 工具组合)└─ 调用 ──► MCP 客户端 ──协议──► MCP 服务端├─ 工具:执行动作(内部常封装 CLI 或 API)└─ 资源:读取数据│▼老系统(数据库 / 服务 / 脚本)结果逐层回传 → Agent 观察结果 → 继续决策或汇总输出 → 用户
标准与工具的分层可以这样记:描述层用 JSON Schema 定义工具;连接层用 MCP 这类协议;能力层用 Skill 封装;执行层落到 CLI 或 API。以后看到任何新名词,先问“它在哪一层”,概念就不会乱。
适合场景:先落地文本类能力(摘要、分类、信息抽取、文案生成),不动业务链路,风险集中在内容质量而非系统操作。
实施步骤:
通用伪代码:
function summarize(text):safe = desensitize(text) # 脱敏resp = model.chat(messages = [{role: "system", content: "你是摘要助手,输出不超过200字"},{role: "user", content: safe}],temperature = 0.2,timeout = 15s, retries = 2)log(hash(text), resp) # 留痕,便于审计与评估return resp.content
注意:本路径的定位是“辅助判断 + 人工确认”,不要把模型返回直接写库或触发业务动作。
适合场景:希望 Agent 能查询、流转工单、提交操作等,直接与老系统交互。
实施步骤:
工具定义示例(通用 JSON 结构):
{"name": "query_order_status","description": "查询订单当前状态。入参 order_id 为业务单号,形如 SO2024xxxx。仅支持查询近90天订单。","input_schema": {"type": "object","properties": {"order_id": {"type": "string", "description": "业务订单号"}},"required": ["order_id"]}}
注意:写入类工具务必在描述中显式说明副作用,并在生产环境增加人工确认环节。
适合场景:老系统没有好用的 API,但存在大量运维脚本、批处理命令、管理工具。
实施步骤:
通用伪代码:
ALLOWED = {"query_log", "backup_report", "list_jobs"}DANGEROUS = {"restart_service", "purge_cache"} # 需人工确认function run_cli(cmd, args):if cmd not in ALLOWED + DANGEROUS:error("命令不在白名单")if cmd in DANGEROUS and not approved_by_human:error("等待人工确认")result = exec(cmd, args, timeout = 30s)return truncate(result.stdout, limit = 4000) # 防止超长输出撑爆上下文
注意:输出截断很重要——命令行输出动辄上千行,直接送入模型既贵又慢,还会稀释关键信息。
| 维度 | 路径一:直连 API | 路径二:MCP 工具化 | 路径三:CLI 桥接 |
|---|---|---|---|
| 改造成本 | 低 | 中 | 低-中 |
| 能力上限 | 文本理解与生成 | 可操作系统全流程 | 依赖既有脚本覆盖面 |
| 主要风险 | 内容质量 | 误操作、越权 | 命令副作用 |
| 建议起步 | 所有团队的第一步 | 有稳定 API 的系统 | 脚本资产丰富的系统 |
三条路径不互斥,推荐组合演进:路径一快速见效 → 路径三低成本打通系统操作 → 路径二沉淀为标准工具服务,再逐步向“技能包”形态组织能力。
本文先用一张概念地图厘清了五个高频术语:Model 负责推理、Agent 负责决策与执行循环、工具负责动作、MCP 提供统一连接标准、Skill 是能力封装、CLI 是工具的常见形态;随后给出老系统接入 AI 的三条路径——直连模型 API、工具化封装经 MCP 接入、CLI 桥接,并配套了步骤、示例、验证与排查方法。落地建议是:从低风险场景起步,按“直连 → CLI 桥接 → MCP 工具化”的顺序渐进演进,始终把权限控制、审计留痕和人工确认放在设计的第一优先级。后续可以持续关注统一协议生态的演进、技能包的沉淀方式,以及小模型分流带来的成本优化空间。