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 完成复杂任务。

相关推荐
YF02118 小时前
如何进入Android工程模式
android
Kevin Coding9 小时前
JsonConvert:适用于 Android、鸿蒙与 Flutter 的 JSON 转 Model 插件
android·flutter·harmonyos
xcLeigh10 小时前
Go入门:基本数据类型全览与选择指南
android·服务器·golang·教程·go热门
alexhilton10 小时前
规范驱动开发:让AI生成符合预期的KMP代码
android·kotlin·android jetpack
码农coding10 小时前
android12 ActivityManagerService开机启动分析
android
Android-Flutter12 小时前
android 性能优化 详解
android·kotlin
vortex512 小时前
composer.json 可写场景下的利用手段
android·json·composer
studyForMokey12 小时前
【Android 内存管理】JVM 内存模型与 GC 原理
android·jvm
夜雪一千1 天前
MySQL 全局锁是什么?原理、风险、备份踩坑完整实战
android·mysql·adb