AI 与 Agent 基础认识
在开始使用各种 AI 工具之前,先建立几个基本概念就足够了。这里不讨论大语言模型的训练方法和内部结构,只关注日常使用时经常遇到的几个问题:模型和 AI 产品有什么区别,Agent 和普通对话式 AI 有什么区别,以及为什么同一个问题在不同工具中可能得到不同效果。
1. 从大语言模型到 AI 产品
Section titled “1. 从大语言模型到 AI 产品”近几年常见的生成式 AI,大多建立在 大语言模型(Large Language Model,LLM) 之上。对于使用者来说,可以先把它理解为一种能够处理和生成文本、代码以及其他信息的模型。现代模型通常还具备一定的图像、文档、音频等多模态处理能力,因此它们已经可以参与相当广泛的学习和开发任务。
不过,我们平时真正使用的 ChatGPT、Claude、Gemini 等并不是一个单独的“模型”,而是建立在模型之上的完整产品。一个 AI 产品除了调用模型,还可能提供联网搜索、文件上传、代码执行、长期记忆、项目管理和其他工具。底层模型决定了很多基础能力,而产品本身提供了怎样的输入方式、工具和工作环境,也会明显影响实际体验。
因此,讨论 AI 时最好区分“模型”和“产品”两个层次。同一个产品可能在不同时间提供多个模型,一个模型也可能出现在不同产品和开发工具中。对于普通使用者来说,没有必要追踪每一个模型名称,更值得关注的是当前工具能否完成自己的任务,以及使用成本、访问条件和稳定性是否合适。
2. 对话式 AI 与 Agent
Section titled “2. 对话式 AI 与 Agent”最常见的 AI 使用方式仍然是对话。我们提出问题,提供必要的信息,模型根据当前内容给出回答。这种方式非常适合解释概念、讨论方案、阅读文档、分析截图和代码,也适合在刚接触一项技术时快速建立基本认识。
它的限制也很直接:AI 通常只能处理当前能够获得的信息。如果希望它分析一个工程,而它实际上只看到了其中一个 .cpp 文件,那么它对整个项目结构、其他模块和配置文件的判断就很有限。使用普通对话工具时,经常需要我们主动上传文件、粘贴代码或补充环境信息。
Agent 在这个基础上增加了对外部工具和工作环境的操作能力。以软件开发中的 Coding Agent 为例,它通常可以直接进入一个代码仓库,查看目录、搜索函数、读取多个文件、修改代码、运行编译或测试命令,再根据执行结果继续处理问题。
例如,我们希望修改一个已有项目中的串口通信模块。使用普通对话式 AI 时,往往需要先找到相关代码并发送给它,再按照它给出的建议手动修改。使用 Coding Agent 时,可以直接把任务交给它,让它自行定位通信模块、阅读调用关系、完成修改并运行测试。对于涉及多个文件的真实项目,后者通常更加方便。
这里也不用过分纠结什么样的软件才算“真正的 Agent”。不同产品对这个词的使用并不完全统一。对于后面的内容,只需要把 Agent 理解为:能够围绕一个目标主动读取信息、调用工具并连续完成多个步骤的 AI 系统。
3. 使用时需要知道的几个概念
Section titled “3. 使用时需要知道的几个概念”AI 在处理当前任务时能够看到的信息,通常称为 上下文(Context) 。它可能包括当前问题、之前的对话、上传的文件、Agent 读取到的代码以及工具执行结果。
上下文对结果影响很大。比如只问“为什么 CAN 通信会超时”,模型只能给出比较泛化的可能原因;如果进一步提供通信频率、总线拓扑、错误日志和对应代码,分析通常会具体很多。这也是使用 AI 时最值得形成的习惯之一:当结果明显偏离实际情况时,先检查它是否真正获得了完成任务所需要的信息。很多时候问题并不在于模型能力不足,而是关键条件根本没有进入当前上下文。
模型一次能够处理的信息量也有上限,一般称为 上下文窗口(Context Window) 。目前主流模型已经可以处理相当长的文本和代码,但这并不意味着应该无差别地提供所有信息。大量无关日志、重复内容和历史对话仍然可能干扰判断。对于复杂工程,更合理的方式通常是先让 Agent定位相关模块,再重点读取真正有关的文件。
模型本身主要负责理解信息、生成内容和判断下一步应该做什么。读取本地文件、执行 Shell 命令、访问网页、修改代码和操作 Git 等行为,则需要通过外部工具完成。
因此,一个 AI 工具的实际能力不只取决于模型本身。例如,一个对话式产品和一个 Coding Agent 即使使用能力接近的模型,在处理大型代码项目时,体验也会很不一样。前者依赖用户不断提供材料,后者可以自己从项目中获取需要的信息并执行操作。
工具也意味着权限。Agent 能够读取文件和修改代码以后,效率会提高,同时也可能执行错误操作。后面的实操部分会专门介绍怎样查看修改内容、限制操作范围以及利用 Git 保留可恢复的开发过程。
现代 AI 已经不局限于纯文本输入。很多工具能够直接处理截图、图片、PDF、表格和音频等内容,这类能力通常称为多模态(Multimodal)。
对于机器人开发,多模态能力非常实用。程序报错截图、系统架构图、PCB 图片、电路原理图、机械结构照片等,都可以直接作为输入。很多问题用图片表达比单纯文字描述更准确。
需要注意,模型具备某种能力,不代表所有使用它的产品都开放了相同功能。例如某个模型可能能够处理图片,但一个只面向终端的 Coding Agent 未必支持直接输入图片。因此实际使用时仍然要看具体产品提供了哪些输入方式和工具。
4. AI 为什么会给出错误答案
Section titled “4. AI 为什么会给出错误答案”大语言模型生成的内容并不天然可靠。它可能把不存在的接口写进代码,记错软件版本,误解一个项目的结构,也可能在缺少信息时给出看起来很完整的答案。这类现象通常被概括为“幻觉(Hallucination)”。
对于学习类问题,这意味着不能因为回答写得很确定就默认它一定正确。遇到具体 API、软件版本、论文结论或硬件参数时,必要时仍然需要查看官方文档和原始资料。
对于工程问题,更重要的是利用实际结果进行验证。代码能否编译、测试是否通过、程序运行结果是否符合预期,这些信息通常比一段语言上很合理的解释更可靠。Agent 的一个重要优势也在这里:它可以在修改代码后继续运行编译和测试,并利用真实结果修正之前的判断。
对于日常使用,只需要先建立一个简单认识: 模型提供基础的理解和生成能力,AI 产品把模型包装成可以直接使用的软件,而 Agent 进一步让模型能够操作工具并参与真实任务。它能够提高学习和开发效率,但得到的信息和修改结果仍然需要根据实际任务进行检查和验证。