Agent学习

LLM(Large Language Model)

学习视频

从 LLM 到 Agent Skill,一期视频带你打通底层逻辑!_哔哩哔哩_bilibili

什么是LLM

大模型本质上是一个庞大的数学函数,大模型的运作逻辑一句话概括就是词语接龙,先吐出预测频率最高的,再一个一个拼词语,比如:特别-->得-->棒,直到完成一句话,加上结束符号

但因为它学的数据量实在太大了,这种「接龙」的效果好到令人吃惊

Token(运行的最基本单元)

LLM是以庞大数学函数运行的,他一直在进行矩阵运算,接受的是数字,吐出的也是数字,需要有人把数字进行编码和解码--Tokenizer

Tokenizer

Tokenizer需要完成两件事,编码和解码,编码需要切分和映射,句子被切分成词语,词语就是Token,被映射的数字就是Token ID,但并不是一个词语对应一个Token,Token是模型自己学会的一套文本切分规则,切出的每一块是他一次能处理的最小单元

1Token ≈ 0.75个单词、1.5-2个汉字

image-20261001144226786

解码就只需要映射,将Token ID映射成token就行了

Context('临时'上下文)

Context包含对话历史、用户问题、当前输出、工具列表、System Prompt(系统提示词,但现在因为模型的性能提升在逐步减少提示词)

image-20261001144958116

Context Window

Context Window表示Context能容纳的最大Token数量

RAG技术(Retrieval-Augmented Generation)

检索-增强-生成

为解决Context过长的问题,采用了RAG技术,大致是从一整套手册中提取用户问题最为匹配的几个片段,只把这几个片段发给大模型,LLM只根据这几个片段回答,这样整个手册就被拆成几个片段组成(Context小)且回答精度较高,成本也低

实际上是两步 先从资料库里检索相关内容,再基于这些内容来生成答案

RAG的基本运行流程

将大文本切割成多个片段,当用户问题命中某些片段时,将问题和片段一起发送给LLM,RAG流程主要包含两个部分

准备(提问前)

在这一部分,我们需要在用户提问前,把相关文档准备好并完成相应的预处理,主要包含分片和索引

分片

将文档分成多个片段,可按照字数分、段落分、章节分、页码分

索引

通过Embedding将片段文本转换为向量,再将片段文本和对应向量都存储在向量数据库中

Embedding

将文本转换为向量的一个过程,含义相近的一句话经过embedding后,他们对应的向量也是相近的,当用户提问时,可以将提问进行embedding,然后根据向量相似度把这个问题相关的文本找出来,最后把命中的文本和用户的问题一起发给大模型,embedding也是靠模型完成的,只不过是专门的embedding模型

一句话感觉就是整了个方便LLM查询的知识库,让LLM在上下文更短的情况下获取更关键的信息

回答(提问后)

在用户提问后,我们会走进召回->重排->生成 这个环节

召回

搜素与用户问题相关片段的过程

image-20261005165510412

返回结果由向量相似度决定,现在有 余弦相似度、欧氏距离、点积等,特点是成本低耗时短、准确率低,只能作用于初步筛选

重排

重排,全程重新排序, 过程和召回是一样的,是从召回的结果里面在挑几份与用户问题最相似的作为重排的结果,相当于提纯了一遍,其计算逻辑和召回不一样

一般是使用cross-encoder模型将每个片段与用户问题 计算相似度,耗时长,成本高,准确率高

生成

现在我们有用户问题,与用户问题相关的几个片段,现在将这两部分一起发送给LLM,让他根据片段内容回答用户问题

Prompt

提示词,用户输入的东西,LLM接受并回答,越清晰具体的Promt越能决定LLM的输出质量(目前来说依旧如此,但我们的提示词工程已经越来越不需要了,或者说内置在模型里面了)

Prompt现在大致分为User Prompt和System Prompt

User Prompt 主要是用户输入,告诉LLM具体任务

System Prompt 是开发者后台配置的,主要是约束+执行的边界

MCP(Model Context Protool / 模型上下文协议

因为每个LLM平台的接入标准不一样,一个Tool可能需要写很多接入规范

image-20261001152709309

为了方便使用,让所有平台遵循统一标准,这样开发者只需要写一次代码,于是诞生了MCP--统一的工具接入标准

mcphost

调用mcp的平台

MCP Server

就是一个程序,只不过该程序的执行符合mcp协议,大部分是本地通过node或者python启动,不一定完全需要联网

在mcpserver里面会内置tool(函数)

transportType

mcpserver的沟通方式,一般有两种,stdio和sse,使用stdio的话mcpserver会使用他的标配输入输出

mcp协议

image-20261009161624250

mcp协议规定的是mcpserver和平台直接的交流格式,没有规定LLM如何与mcpserver交互

Tool

本质上是一个函数,该函数可以使LLM使用工具

image-20261001151914129

整个对话是:用户->平台->LLM->天气查询Tool

LLM没有调用工具的能力,唯一能力就是输出文本,LLM需要使用工具就要向平台发送指令,然后由平台去调用Tool,拿到对应信息,发送给LLM,大概如下

image-20261001152300570

该对话中,LLM职责是选择Tool和归纳总结发送信息,Tool需要完成平台发送的指令(该指令由LLM生成)并返回结果,平台负责告诉LLM哪些Tool可用,该Tool的命令方式

Agent

image-20261001153306640

该次对话,LLM具备了自主规划能力、自主调用工具能力,持续工作直至完成用户任务,我们把具备该系统的LLM称为Agent

Agent 构建模式

skill

本质上是提前写好塞给Agent的一份说明文档,整体结构分为两部分--元数据层(相当于说明文档的封面,告诉Agent这份skill叫什么[name]、做什么[description])和指令层(无特定格式要求,只需要告诉Agent干嘛就行)

posted @ 2026-10-15 15:14  paaai  阅读(8)  评论(0)    收藏  举报