LLM 基础概念分享:从原理到 Function Call -> MCP -> Agent -> Skills

1. LLM 最简原理:它在做什么?
LLM(Large Language Model)本质上做的是一件事:
给定上下文,预测下一个 token 是什么。
它不断生成 token 并拼接成文本,因此看起来能“对话”“写作”“编程”。底层关键架构是 Transformer,依靠 Attention**(注意力机制)** 在上下文里动态关注关键信息。

图 1:LLM 的生成过程(Next-token prediction)

工程上要牢记:LLM 的目标是生成“最可能的文本”,不是保证“事实正确”,所以会出现 幻觉(Hallucination)。
2. Function Call:让模型能“调用工具”
Function Call(函数调用) 让 LLM 不只是输出自然语言,而是输出结构化参数(常见 JSON),由系统执行真实工具/API,再把结果返回给模型总结。
图 2:Function Call 的基本闭环


意义:
- 避免模型瞎编实时信息
- 输出可校验、可重试
- 多次调用可串联成流程
3. MCP:Function Call 之后的“标准工具接入层”
当工具变多,难点从“能不能调用”变成:
如何规模化、标准化地把工具暴露给模型?
MCP(Model Context Protocol) 提供统一的工具/数据源/上下文暴露方式,让模型用一致方式发现、理解、调用。
图 3:没有 MCP vs 有 MCP(接入复杂度对比)


- Function Call 是“怎么调用一次工具”
- MCP 是“怎么把一堆工具接入做到标准化、可扩展、可管理”
4. Agent:LLM + 多步规划 + 工具循环
Agent 是把 LLM 变成“任务执行体”的系统形态。典型循环是:
- 理解目标
- 规划步骤
- 调用工具
- 观察结果
- 迭代直到完成
图 4:Agent 的多步执行循环(Plan-Act-Observe)

Agent 的挑战更像系统工程:失败重试、成本控制、权限与安全、结果验证等。
5. Skills:Agent 的“可复用技能模块”(按 Claude Code 定义)
在 Claude Code 体系里,Skill可以理解为:
把某类能力写成标准化的“技能说明书”,让模型在合适时自动使用,或用户手动触发(例如
/skill-name)。
Skill 通常通过 name/description 等元信息描述“何时用、怎么用”,把经验沉淀成可复用模块,让能力更产品化、更可控。
图 5:Skills 在系统中的位置(沉淀与复用)


6. 一句话串起来
LLM 负责理解与生成;Function Call 让它能可靠调用工具;MCP 让工具接入标准化;Agent 用多步规划把工具串成任务;Skills 则把这些能力沉淀成可复用技能库,让系统更稳定、更可控、更易扩展。