AI Agent 基础概念详解:LLM、Prompt、Context、Tool、Skill、MCP

**摘要:**想真正理解 AI Agent,就必须先弄清它的六大核心概念------LLM、Prompt、Context、Tool、Skill 和 MCP。本文以 PHP 安全审计为实战场景,系统拆解每个概念的定义、作用与相互关系,帮助你快速建立完整的 Agent 知识框架。

一、整体认识:六大核心概念一览

LLM、Agent、Skill、Tool、MCP 到底是什么关系?

刚开始看这些名词,会感觉它们都是"AI 的东西",但是实际上它们负责的事情完全不同。

可以先用一个现实中人来类比:

LLM = 大脑,Prompt = 任务要求,Context = 当前掌握的信息,Skill = 专业方法,Tool = 实际工具,MCP = 连接外部能力的协议。但是需要注意:这只是帮助理解的类比,不代表它们在技术实现上完全等价。


二、LLM:Agent 的"大脑"

1. 什么是 LLM?

LLM 是:Large Language Model,大语言模型。

平时使用的 Claude、GPT、Gemini 等都属于大语言模型。它们最基本的能力是:

输入信息,理解上下文,进行推理,生成结果。例如你把 PHP 代码交给模型:

复制代码
$id = $_GET['id'];
$sql = "SELECT * FROM users WHERE id = $id";

然后问:这段代码有没有 SQL 注入?LLM 会分析:

$_GET'id' 用户可控,进入 SQL 查询,没有参数化,存在 SQL 注入风险。这里真正负责"理解代码"和"推理"的就是 LLM。


三、LLM 的核心能力:理解、推理与生成

LLM 最主要的能力包括:

① 理解自然语言 :例如"分析这个 PHP 文件",模型能理解你想让它做代码分析。

② 理解代码 :例如 user = _GET'user'; echo $user;,模型能理解这是用户输入,并进一步判断可能存在 XSS 风险。

③ 推理 :LLM 可以尝试分析整个数据流。

④ 生成内容 :例如生成漏洞报告、代码、测试思路、安全修复建议

四、LLM 的局限:为什么需要外部能力

这是学习 Agent 时非常重要的一点。

很多新手容易理解成:

"既然 Claude 很聪明,那它什么都能做。"

实际上不是。例如你告诉 Claude:分析当前目录中的 PHP 文件。如果它没有获得访问文件系统的能力,那么它实际上看不到你的 PHP 文件。

也就是说:LLM 本身主要负责理解、推理、生成;但是读取你的电脑文件、执行命令、发送 HTTP 请求、访问数据库这些属于外部能力。因此才需要:Tool、MCP、Context 等机制。


Prompt:告诉 AI "我要你做什么"

什么是 Prompt?

Prompt 可以简单理解成:给 AI 的任务说明, 发给 AI 的指令、问题、提示词。

例如:分析这个 PHP 文件,这就是 Prompt。


为什么 Prompt 很重要?

因为 LLM 不知道你的最终目标是什么。比如同样一份 PHP 代码:

复制代码
$id = $_GET['id'];
$sql = "SELECT * FROM users WHERE id = $id";

可以让 AI 做很多不同的事情。

Prompt 1

解释这段代码,AI 会重点解释代码功能。

Prompt 2

检查这段代码是否存在 SQL 注入,AI 会重点进行安全分析。

Prompt 3

从安全审计角度分析这段代码,AI 会从更多安全角度进行检查。

所以:

同一个 LLM,因为 Prompt 不同,最终执行的任务也不同。


Prompt 不只是"一句话"

一个好的 Prompt 通常可以包含:角色+目标+上下文+任务+执行要求+限制+输出格式

例如:你是一名 PHP 安全代码审计助手。

目标:分析当前 PHP 项目是否存在 SQL 注入。

要求:

  1. 首先分析项目结构,2. 找出 Web 入口,3. 查找用户可控输入,4. 跟踪输入的数据流,5. 判断是否进入 SQL 查询,6. 分析过滤逻辑,7. 判断是否真正构成漏洞,8. 给出具体代码位置,9. 区分"疑似漏洞"和"已验证漏洞",10. 未经确认不要修改项目文件。

这比:帮我找 SQL 注入,提供的信息丰富得多。


Prompt 和 Skill 有什么区别?

Prompt:这一次告诉 AI 要做什么。

Skill:提前告诉 Agent,遇到这一类任务应该怎么做。

例如:

Prompt:帮我审计这个 PHP 项目。

Skill:PHP 安全审计流程:1. 找入口、2. 找用户输入、3. 跟踪数据流、4. 检查危险函数、5. 分析过滤、6. 判断漏洞

所以可以理解:Prompt = 当前任务指令;Skill = 可重复使用的专业方法


Context:AI 当前"知道什么"

什么是 Context?

Context 可以理解为:大模型当前这一轮思考所能看见的全部信息集合,也叫上下文

模型在当前任务中能够获取并利用的信息。

例如你让 OpenCode审计当前 PHP 项目。

项目:

复制代码
project/

├── index.php
├── login.php
├── upload.php
├── config.php
└── admin/

如果 Agent 读取了:index.php、login.php、upload.php,那么这些内容就进入了当前任务的上下文。可以简单理解成:

项目文件--->被读取--->成为Context--->LLM-->分析


Context 不等于"整个项目"

这里容易产生一个误区:

既然 Agent 能分析项目,那它是不是一开始就知道整个项目?答案是不一定

Agent 可能先:查看目录,然后发现:index.php、login.php、upload.php。接着:读取 index.php,然后读取 login.php,然后搜索 $_POST,每次获取的信息都可能成为当前分析过程的一部分。所以 Agent 的工作过程实际上可能是:

这也是 Agent 和普通聊天的重要区别之一。


Context Window 是什么?

可以理解为:模型一次能够处理的上下文容量。

例如:

小项目有几十个文件,可以比较容易分析。但是如果:大型项目有几万甚至几十万个文件,不可能一次全部塞给模型。所以 Agent 需要:搜索、筛选、读取、摘要、分阶段分析

例如:

整个项目先搜索 PHP 文件,找到相关文件,读取关键文件,进行分析。这也是为什么"代码搜索"和"工具调用"对 Agent 很重要。


Tool:让 AI 从"会思考"变成"能行动"

Tool 是什么?

Tool 可以理解为:提供给 AI 调用的具体能力。

例如:read_file、write_file、terminal、browser、http_request、git、database

如果把 LLM 比作大脑,那么 Tool 就像手里的工具。


Agent Loop

AI Agent 的主循环控制逻辑:LLM 不断进行思考 → 行动 → 获取反馈 → 再思考的循环过程。


Tool 和 LLM 是怎么配合的?

LLM:"我需要做什么?"

Tool:"我可以帮你执行什么?"

Agent:"下一步应该调用哪个 Tool?"


Skill:让 AI "按照专业方法做事"

如果 Tool 是:能做什么

那么 Skill 就是:应该怎么做。

这是非常关键的区别。例如 Agent 有:read_file、grep、terminal这些 Tool。

但是如果没有安全知识,它可能不知道:

PHP 安全审计应该先分析什么。

于是可以建立:php-security-audit的Skill。


Skill 里面到底放什么?

① 目标:分析 PHP 项目中的安全问题。

② 分析流程:1. 分析项目结构、2. 识别入口、3. 查找用户输入、4. 跟踪数据流、5. 检查危险函数、6. 分析过滤、7. 判断漏洞。

③ 判断标准:例如不能仅仅因为出现 eval 就直接认定存在漏洞,需要确认用户输入是否能够到达该函数。

④ 输出要求:例如输出漏洞类型、文件位置、代码位置、数据流、漏洞原因、验证状态、修复建议。这时候 Skill 才真正具有"专业方法"的意义。

Skill 本质上可以看作把知识和经验结构化,然后交给 Agent 使用。


MCP:让 Agent 连接外部世界

MCP 是:Model Context Protocol 。中文可以理解为:模型上下文协议。

它的核心目标之一是:让 AI 应用以相对统一的方式连接外部工具、数据和服务。


为什么会需要 MCP?

假设 Agent 想连接:数据库、GitHub、文件系统、浏览器、某个 API、某个外部服务、如果每一个 AI 应用都自己定义一套完全不同的连接方式:

Claude → 自己的一套,OpenCode → 自己的一套,其他 Agent → 又一套

那么工具复用和管理会比较麻烦。MCP 提供了一种标准化的连接思路:


MCP Server 是什么?

把文件读写、数据库、Git、Shell 命令、API 接口等能力包装成统一规范,让任意支持 MCP 的 AI 客户端(OpenCode、Claude Desktop、Cursor 等)直接调用,不用为每个模型单独写适配代码。


MCP、Tool、Skill 三者到底怎么区分?

假设想让 AI 审计 PHP 项目:

Skill :告诉 AI 应该先找入口、再找用户输入、再跟踪数据流、再分析危险函数。所以 Skill = 怎么做。

Tool :提供读取文件、搜索代码、执行命令、发送 HTTP 请求。所以 Tool = 能做什么。

MCP :负责让 Agent 能够以标准方式连接某些外部工具/服务。所以 MCP = 怎么连接外部能力。

可以记成:Skill = 方法、Tool = 能力、MCP = 连接方式

把六个概念放进一个完整场景

现在假设有一个 PHP 靶场,结构如下:

复制代码
target/
├── index.php
├── login.php
├── upload.php
├── search.php
└── config.php

在 OpenCode 中输入"审计这个 PHP 项目",接下来可能发生:

第一步:Prompt ------输入"审计这个 PHP 项目",告诉 Agent 任务是什么。

第二步:LLM ------LLM 分析:我需要先了解项目结构。

第三步:Tool ------调用 terminal 或其他文件工具,得到 index.php、login.php、upload.php、search.php。

第四步:Context ------这些信息成为当前任务的一部分:项目结构、PHP 文件、代码内容、搜索结果。

第五步:Skill ------Agent 使用 PHP Security Audit Skill,于是知道先找入口、找用户输入、跟踪数据流、检查危险函数、分析过滤。

第六步:Tool ------Skill 告诉它搜索用户输入,Agent 决定调用 grep,找到 id = _GET'id';。

第七步:LLM ------LLM 分析:id 来源于用户输入,继续寻找 id 是否是 SQL 查询。

第八步:继续调用 Tool ------读取相关代码:sql = "SELECT \* FROM users WHERE id = id";

第九步:LLM 分析 ------发现用户输入 $id 执行 SQL 查询,然后判断存在 SQL 注入风险。

第十步:输出结果 ------最终:漏洞类型 SQL Injection,位置 search.php,数据流 _GET\['id'\] 到 id 进行 SQL 查询,原因用户输入直接进入 SQL 查询。

总结

LLM 负责理解、推理、生成;Prompt 告诉 AI 当前任务是什么;Context 提供 AI 当前能够看到的信息;Agent 围绕目标组织多步骤任务;Skill 提供专业知识、方法和工作流程;Tool 提供实际操作能力;MCP 帮助 AI Agent 标准化连接外部工具、数据和服务。

再进一步:LLM + Prompt + Context + Skill + Tool + MCP,最后由 Agent 完成复杂任务。

相关推荐
千里马学框架3 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台3 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone3 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc3 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo3 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077003 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼3 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone3 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen3 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone3 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui