浅入深出-Agent复习(第一性原理分析)

Rudy 2026-3-23 55 3/23

一、Agent是什么?

1.原理

LLM - large language model

无状态的机器 y  = f(x)

注意力机制-计算邻居间的相似度

预测下一个token

2.为什么要agent?以及解决问题方法

核心目的是一是增加LLM的能力,二是规范LLM的边界。

LLM没有记忆:

增加记忆

上下文容量和注意力缺失

长中短短期记忆的方案 - 摘要压缩、存数据库、md

RAG

具有失效,数据不完备:

实时搜索web

RAG

接下来说说RAG原理:

全称检索增强生成。核心步骤:1.文档解析切块向量化存向量数据库 2.query向量化语义和关键词混合检索召回 RRF 融合 rerank 精排,把top k输出给llm

claude code 用的检索方式是 grep + find + read

过程问题:

1.用户输入模糊!

LLM提取重点改写,在进行搜索

2.文档切割成chunk,块的大小,破坏上下文,检索不准!

RAG的关注点:

准-@Recall召回率 + @Precision精确率

时间

token成本

元信息记录文档信息,就像我之前的父子分块策略一样

输出单一:

工具调用-tool calling

接下来说说Tools和MCP原理:

Tools:根据tool名字和tool参数调用工具,调用对应的函数返回输出.

MCP:根据统一的标准协议进行工具调用,分为本地通信stdio和远程Streamable协议,主要对接外部的服务.

基于概率预测,天然有不准确或者幻觉的缺陷:

自检 ReAct、Reflection

SandBox沙盒

(题外话,目前有很多方案关于agent的治理架构,如harness、hevit但未来发展还是未知数,不要局限于现在的技术,要有场景思考)

二、规范边界

1.Harness(马具)

为什么要加Harness?

LLM是基于预测的模型,会出现随机性、幻觉;无记忆 y=f(x);添加tools-实际的行动

操作:

1、物理手段:建立sandbox + 监测记录和反馈 + 必要的阶段加入人工审核

2、精神手段:定义Agent loop(思考模式)+ 记忆管理

这种框架 沙箱+记忆 + 思考模式 称为 Harness,等于 程序 + 工作流 + 思考模式

2.思考范式

ReAct:边规划边执行

如用户输入:今天天气怎么样,跟之前相比,有更适合去徒步吗?

LLM先调用天气too和参数今天以及地点,在发现资料不够需要再次调用工具去查之前的天气和参数,在结合思考输出。走一步算一步。

缺点:有可能进入死循环(不断换参数)> Harness,会消耗更多token导致成本上升;全局意识,缺少长期规划

Plan and Execute:规划执行

以上面的天气例子:先获得今天天气,再获得昨天天气,总结徒步最好天气,对比天气。

场景:大任务、有效监控

Reflection:反思

在llm里写好system prompt,定义标准对不对,有两种方案:1是给反思的内容给llm,2是把反思内容给记忆下次修正。

那什么用这三种思考方式呢?

ReAct(Reasoning and act):后一步重点依赖前一步的结果的任务,如数据搜索、debug A -> debug B;短任务

Plan and Execute:明显可拆分步骤的任务,如并行任务-长任务等。

Reflection:无论用哪种范式都可以用反思去修正。

三、多Agent

出发点:LLM记忆问题:上下文的长度限制;长下文太长了会导致注意力扩散问题;

多Agent解决的问题:记忆分离-注意力集中+上下文窗口,充分使用;并行执行tools,加快效率

框架:

管理者-工作者模式:分配不同任务给子agent,汇总结果;管理者用Plan and Execute范式,子agent用ReAct范式。

无管理者模式:子agent内部协调

四、agent 评估Evaluation

AB测试,从小到大

1.成功输出

2.正确与否 correctness

3.可信度 reliable

4.质量

5.速度

6.token usage

五、Agent的记忆Memory

为什么需要记忆?

LLM没有记忆,但是实际应用中Agent涉及多轮交互,把有价值的信息存起来,下次执行任务时取出来放进上下文,让Agent基于这些信息继续推理。

一般上下文 200k token左右

方案:

1.数据库 -> 公司文件库 RAG

历史消息记忆(元信息)分块存入数据库进行检索;query取转向量,数据库比对。

LLM -> agent 采用 ReAct 分析用户query 生成更合适的方案如什么关键词搜索!recall文档后再进行reason判断是否够,不够继续重新定义query进行搜索。

2.md

如Claude code的md记忆架构

MEMORY.md-长期记忆-用户偏好+简介,把topic轻量化写进这里面

结构化:

# profile 简介

# user perference 用户偏好

# constraint 约束

维护:加载的时候结构化出来json格式,生成Dict;最后重新渲染成md。

pre_define key 固定

LLM key

Topic层:主题文件配置如具体经验、调试模式

Transcript层:存的原生数据,记录这一轮发生了什么

六、skills

1.结构组成

.md文件,里面包含元数据name + description

示例:

name: get_weather

description:获取本地今天天气

# 获取本地今天天气

## 步骤

1.先用get_location

2.用get_date

3.get_weather 获取天气

##    输出格式

{

地点:xx

日期:2026.01.01

天气:xx

}

2.加载策略

按需加载:扫描skill目录读取每个SKILL.md 顶部metadata,把每个 name和description注册到Skill列表,query提出任务,模型根据任务和描述判断用哪个skill,触发对应skill,读取完整SKILL.md正文,按里面的步骤执行;实际上把skills包装成system prompt 传给llm

热更新:不重启服务,运行中重新加载变化内容- 可以用定时扫描:每隔几秒检查文件修改时间

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- THE END -
最后修改:2026年5月27日
2

共有 0 条评论