AI Agent 相关概念与技术栈

2454 字
12 分钟
AI Agent 相关概念与技术栈

AI Agent 相关概念与技术栈#

上集讲了很多程序员在 AI 时代之前需要掌握的技术栈。这一集,我们把视角转向 Agent,梳理与它相关的核心概念和技术栈,暂时不深入展开大模型本身。

这些名词看起来很多,但可以先记住一条主线:

Agent 是谁 → Agent 如何循环工作 → 如何管理状态与记忆 → 如何检索知识 → 如何调用外部能力 → 如何开发和交付。

沿着这条主线理解,后面的概念就不再是彼此孤立的名词。

一、从 Chatbot 到 Agent#

Agent(智能体),可以简单理解为一种能够控制电脑、执行任务的应用程序。AI Agent 由 LLM 大模型驱动才能运作。

在 Agent 之前,已经有了 Chatbot。Chatbot 主要负责接收问题并给出回答;用户输入的问题或要求,叫作提示词(Prompt)。Chatbot 还可以使用 CoT 思维链,把一个复杂问题拆解成很多步骤,然后一步一步回答。

Chatbot 与 Agent 的区别
Chatbot 与 Agent 的区别

简单来说,Chatbot 的重点是“回答”,而 Agent 的重点是“完成任务”。

多模态#

多模态,指 AI 不仅能够接收文字提示词,还可以接受图片、音频或视频作为输入和输出。

二、Agent 是如何运行的#

理解 Agent,最关键的是理解它并非只调用一次大模型,而是会不断循环。

Agent Loop#

Agent Loop(智能体循环),大多采用 ReAct 模式,也就是不断进行观察、思考和行动,直到结果让大模型满意,才输出最终结果和回答。

如果任务步骤很多、思维链过长,就需要使用 Plan-and-Execute:先规划出多条任务,再逐步行动,行动完成后继续观察。

如果任务比较容易出错,则可以使用 Reflexion:行动结束后反思错误,并进行改正。

Agent Loop:观察、思考、规划、行动与反思
Agent Loop:观察、思考、规划、行动与反思

State:任务现在进行到哪里#

State(状态管理),用于观察和记录当前的任务状态与进度。

它回答的是一个很实际的问题:Agent 已经完成了什么,现在正在做什么,接下来还需要做什么?

三、上下文、状态与记忆#

Agent 要连续完成一个任务,除了会循环,还必须知道当前发生了什么,并且在需要时找回过去的信息。

Memory:过去有哪些信息值得参考#

Memory(记忆),用于查看过去有哪些值得参考的信息,可以分为短期记忆和长期记忆。

短期记忆通常通过上下文解决;长期记忆则可以直接调取文档,或者通过向量数据库调取分片文档。大模型本身的记忆叫作参数记忆,模型训练完成后,参数记忆也就固定下来了。

上下文窗口与 Compact#

上下文窗口,是 AI 在一次处理过程中能够看到的信息范围。为了提高准确率、节省 Token,AI 处理的上下文会被限制在一个窗口内。

随着多轮对话不断进行,上下文的信噪比会逐渐降低,同时也会逼近窗口上限。这时就需要进行 压缩(Compact):使用尽量少的 Token 保存目标、进度和其他关键信息。

文档一般采用 Markdown 格式,可以用来保存记忆,等到需要时再把内容放入上下文。有些系统提示词文档比较特殊,每次对话都会被放入上下文,例如 AGENTS.md

上下文窗口与压缩 Compact
上下文窗口与压缩 Compact

四、三种工程:提示词、上下文与驾驭#

了解上下文以后,就比较容易区分下面三个容易混淆的概念。

提示词工程,就是优化提示词,它是 Vibe Coding 的必要技能。

上下文工程,处理的范围比提示词更大。上下文由提示词、Tool 结果、分片文档等文字资料混合而成。优化上下文,是为了让 Agent 的输出更加稳定、不出幻觉,同时节省 Token。

驾驭工程是一个更大的概念。Agent 去掉大模型以后的部分,都可以归入驾驭工程,智能体循环的设计也包含在内。最近又出现了一个名字叫“循环工程”,这个纯炒作。

五、RAG:从大量资料中寻找相关信息#

当长期记忆中的文档越来越多,就不可能每次把所有文档全部放进上下文。于是,我们需要先从大量资料中找出最相关的部分。

关系型数据库很少能找到语义相似的文档分片,所以采用了向量数据库

Embedding 将语义映射为向量距离
Embedding 将语义映射为向量距离

RAG、Embedding、Chunk 与检索器#

RAG,是在向量数据库中索引到最相关的分片文档,再将它们放入上下文。

它解决的问题是:当上下文窗口有限,而文档又大又多时,只挑选有用的部分放入上下文。

向量数据库录入数据时,一般先将文档进行 Chunk(分片),再通过 **Embedding(嵌入)**转换成向量并添加到数据库中。

检索器负责找出与问题在语义上最接近的向量,也就是在高维空间中距离最短的内容;随后返回前 K 个向量所代表的文档分片,把它们放入上下文。只有文档本身是准确的,才能降低幻觉问题。

RAG 检索流程
RAG 检索流程

大部分需要防止幻觉的咨询类问答 Chatbot,用 RAG 就能解决。但如果出现“语义相似、意思却不同”的情况,例如检索文档中存在实体关系,工作流程安排,那么 RAG 也无法解决幻觉问题,只能依靠知识图谱。对于代码块,也不要用RAG,这个用终端命令查询就好了。

六、让 Agent 获得外部能力#

到这里,Agent 已经能够思考、维护状态并检索资料。接下来,它还需要真正执行动作。

Tool#

Tool(工具),也就是工具函数(Tool Function)。Agent 在行动时需要调用工具函数;一个工具通常包含工具名称、描述和规范等信息。

和大模型不同,工具接收输入后会给出非常准确的回答,但不能解决宽泛问题。

工具调用(Tool Use),是指大模型通过特定格式的 JSON 消息调用工具函数。工具的运行结果,通常也会成为上下文的一部分。

MCP 与 A2A#

MCP,是一套连接 Agent 应用和外部应用数据的通信规范,让 Agent 可以获取外部程序信息的信息存入上下文。

A2A用于两个 Agent 之间互相通信,非必要不要使用,没搞好会起反效果,但是放在简历上含金量很高。

Skill#

Skill(技能),通常是一套提示词模板,外加一些资源、脚本和文档,用来封装日常使用的一些过程。

Skill 和工具不同:相同的输入,Skill 可能产生意思相近但并不完全相同的输出。

Skill、MCP、Tool 与 A2A 的关系
Skill、MCP、Tool 与 A2A 的关系

浏览器控制与电脑控制#

浏览器控制主要有两种方式:

  1. 使用 Playwright、CDP、Selenium 等方式执行固定脚本,类似 RPA。
  2. 一边截图,一边模拟鼠标点击。

第二种方式需要分析截图并定位准确位置,因此需要较长时间,速度特别慢。电脑控制只能使用这种方法,目前暂时没用。

七、Agent 框架与交付方式#

智能体循环也有对应的开发框架。为了方便建立直觉,可以先用一句话记住它们各自的特点:

  • LangChain = 万能工具箱:链式编排。
  • LlamaIndex = 精通 RAG:图编排。
  • AutoGen = Agent 开会
  • AgentScope = 工程化 Agent
  • CAMEL = Agent 社会
  • LangGraph = Agent 流程图:图编排。

角色扮演或者多 Agent 系统,需要考虑业务需求以及引入技术的性价比。能够选择简单框架解决的问题,就不要使用复杂框架。

有些业务需要让客户看到整个流程的变化,而不是只看到一个黑盒。此时可以使用低代码平台交付,例如 Coze、Dify、n8n 和 FastGPT。

八、其他工程概念#

最后,再补充几个开发 Agent 时经常遇到的概念。

后训练#

后训练可以改变模型的参数记忆。Fine-tuning、RLHF 和 SFT 都属于后训练,这部分属于大模型知识。

参数记忆、临时上下文与后训练
参数记忆、临时上下文与后训练

CLI#

CLI就是命令行界面。如果要手搓一个 Agent,最好从 CLI 开始做起。

沙箱#

沙箱是一种安全隔离机制,用来避免 Agent 获得过多权限。

例如,用户提出了“删除全部”的要求,Agent 一不小心运行了 rm -rf。因此必须使用沙箱,让 Agent 只能在一个文件夹内部活动。

Eval#

评估(Eval),是使用另一个 AI 评估生成结果。它类似传统软件测试:准备一系列数据集,对 Agent 进行测试并打分。

结语:理解概念之后,还需要亲手做一遍#

了解这些概念只是开始。

为了深入理解 Agent 的工作原理以及其中的隐性知识,只能自己搓一个Coding Agent,比如pi agent,openharness,自己重新造一次轮子,并且问清楚其中的细节、每一个代码块分别是做什么的。光看学不会,中间出问题了都不知道在哪里。

AI Agent 相关概念与技术栈
https://xiran.vercel.app/posts/ai-agent-concepts-and-tech-stack/
作者
Xiran
发布于
2026-08-25
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Xiran
Hello, I'm Xiran.
公告
这是夕染的小站,为您提供有关AI的思考。
站点统计
文章
7
总字数
16,318
运行时长
0
最后活动
0 天前

文章目录