走进 AI Agent
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
如果你刚接触 AI Agent,可能会觉得这个概念既熟悉又陌生——熟悉是因为到处都在谈论,陌生是因为很难说清楚它到底是什么。今天这篇文章的目标,就是帮你从"听过"走到"看懂",再走到"能讲给别人听"。 全文按照从具体到抽象、从直觉到原理的顺序组织:先用一个核心公式建立整体认知,再用一个真实例子感受 Agent 怎么工作,然后逐层深入每个组件、每道工序。读到不懂的地方不必纠结,先往下走,很多概念会在后文反复出现,第二次见到时会豁然开朗。
一、引言:你已经在使用 AI Agent 了如果你在用 Claude Code 写代码、阅读代码;用千问帮你点外卖;用豆包深度研究某一个问题。其实已经使用 AI Agent 了。 这些产品形态各异,但有一个挺明显的共同点:它们不再是"你问一句、它答一句"的对话,而是能够自己规划执行步骤、调用各种工具完成任务,并根据结果不断调整策略的智能系统。 要理解这种变化的意义,不妨回顾一下人机交互的演进史:从命令行(CLI)到图形界面(GUI),再到触摸交互,每一次范式跃迁都极大地降低了人使用计算机的门槛,也释放了新的应用形态。Agent 所代表的,是交互范式的又一次跃迁——从"人学会操作机器"转向"机器学会理解人"。你不再需要点击菜单、填写表单、记住快捷键,只需用自然语言描述意图,Agent 就会自主拆解任务、调用工具、完成执行。这意味着,过去需要专业软件技能才能完成的工作(如数据分析、信息检索、流程自动化),正在变得人人可用。 二、现代 Agent 的核心内容2.1 三个词概括 Agent 的本质现代 Agent 系统的本质可以用一个简洁的公式来表达:
这三个词分别对应三个部分:
整体上来说,策引擎是"想",信息视野是"看",执行通道是"做"。三者缺一不可,任何一个环节薄弱,都会成为整个系统的瓶颈。
决策引擎是核心,它从信息视野获取信息,向执行通道发出指令;执行通道作用于现实世界,结果又回流到信息视野,形成闭环。三者构成 Agent 与世界交互的完整接口。 如果你觉得上面的说法还是有点抽象,也可以用"准备一场宴席"来类比:
新东方的厨子再厉害,如果没有食材信息(信息视野缺失)、没有厨具和帮厨(执行通道缺失),也做不出一桌好菜。反过来,食材再新鲜、厨具再齐全,没有主厨的判断力(决策引擎薄弱),也只会浪费食材。三者必须协同,才能成事——这就是 Agent 公式的精髓。 三、Agent 是怎么工作的:ReAct 循环上一节我们用公式概括了 Agent 的组成。但公式是静态的,真实的 Agent 是动态运行的——它会一步步思考、行动、观察结果、再思考。这个动态过程,就是 ReAct 循环。 3.1 什么是 ReActReAct 是 "Reasoning + Acting"(推理 + 行动)的缩写,由研究人员在 2022 年提出。它的核心思想极其简单:让模型交替地"想"和"做"。
ReAct 循环的每一步包含三个动作:
这三步循环往复,直到模型认为任务完成,给出最终答案。
3.2 轨迹:循环的执行记录Agent 每运行一次,就会留下一条完整的"行动记录",我们称之为轨迹(Trajectory)。轨迹是按时间顺序排列的消息序列,记录了从用户提问到最终答案的全过程。 让我们通过一个"上海到北京"3 天旅行规划任务的伪代码来理解轨迹的结构: 注意,轨迹中没有显示系统提示词和工具定义——它们作为静态前缀,在每次 LLM 调用时都会被自动拼接在轨迹前面。
轨迹是一条按时间顺序排列的消息链。每一轮迭代,LLM 都会"俯瞰"整条链——它能看到用户最初的需求、自己之前的思考、工具返回的所有结果。这种"全局视野"让 Agent 能理解任务进展到哪一步、下一步该做什么。 在这个例子中,循环展现得淋漓尽致:第一轮,Agent 分析任务后并行调用高铁和酒店搜索;第二轮,基于搜索结果调用景点和餐厅搜索;第三轮,确认所有信息收集完成后生成最终行程。整个过程仅用了 3 次迭代就完成了多步骤任务。 3.3 上下文累积性:ReAct 的精妙之处这种设计的精妙之处在于上下文的累积性。每次 LLM 调用都能看到完整的轨迹,这让它能够理解当前处于任务的哪个阶段、之前尝试了什么、得到了什么结果。
同时,轨迹的结构化特性也让系统具有高度的可解释性和可调试性:用户消息、模型回复(思考过程 + 工具调用)和工具执行结果都被清晰地区分开来。出了问题,你能精确地定位是哪一步、哪个工具、哪条推理出了错。 轨迹不仅是执行的记录,更是 Agent 能力的体现。通过分析大量的轨迹,我们可以发现 Agent 的行为模式、优化决策路径、改进工具设计。轨迹数据甚至可以总结到知识库中,或者通过强化学习来训练更好的 Agent 模型,实现从经验中学习的闭环优化。 3.4 消融实验:理解循环的诊断方法要真正理解一个系统怎么工作,一个有效的方法是逐个拿掉它的组件,看它会怎么坏。这种方法在机器学习中叫消融实验(Ablation Study)。
举个栗子:你想知道一辆车为什么能跑,可以试着拆掉不同的零件——拆掉火花塞,发动机不转了,说明它负责点火;拆掉轮胎,车动不了但发动机还在转,说明轮胎负责接触地面。通过"减法",你理解了"加法"。 对 Agent 系统做消融实验,能发现一些反直觉的现象:
消融实验的价值在于:它把"这个组件有用"这种模糊的直觉,转化为"拿掉它系统会怎样"这种可验证的判断。这种思维方式,是理解任何复杂系统的通用方法。 四、三大组件的深度剖析上文我们看到了 Agent 是怎么循环运行的。现在让我们逐个深入三大组件,理解每个组件的内部结构和设计要点。读完这一部分,你会明白:为什么有的 Agent 灵活强大,有的却笨拙迟钝——差别往往就在这三个组件的设计细节里。 4.1 工具:Agent 的执行通道工具的四种形态工具是 Agent 的"手脚",但它的形态远比"几个 API 函数"丰富。现代 Agent 的工具可以分为四类:
工具设计的三个原则工具不是越多越好。设计工具时,有三个原则值得遵循:
4.2 LLM:Agent 的决策引擎能力的两个来源:预训练与后训练LLM 作为决策引擎,它的能力来自两个阶段:
对 Agent 来说,后训练尤为关键。一个只预训练的模型,你问它"帮我订张机票",它可能会写一段关于订机票的散文;而经过 Agent 后训练的模型,它会调用 模型即 Agent:一个正在发生的范式转变近年来出现了一个重要趋势:模型即 Agent(Model as Agent)。以 Kimi K3 等模型为代表,新一代模型通过强化学习训练,将工具调用的决策策略内化为模型的原生能力——何时调用工具、调用哪个、传什么参数,都由模型自主决定,无需外部框架编写编排逻辑。最近 Kimi 的 k3 划时代的发布,可以理解成:以前的 Agent 像一个"被指挥的实习生"——框架(指挥者)告诉他每一步做什么,他只负责执行;现在的"模型即 Agent"像一个"成熟的经理"——你给他目标,他自己决定怎么拆解、调用什么资源、按什么顺序推进。 这种范式转变的影响是深远的:当模型自己能决策,外部框架的复杂度可以大幅降低。但这并不意味着框架工程会消失——恰恰相反,下一节我们会看到,围绕模型的工程反而变得更加重要。 4.3 上下文:Agent 的信息视野上下文不是"输入文本",而是"信息架构"很多人把上下文理解为"输入给模型的那段文本",这是低估了它的重要性。上下文是 Agent 在每个决策点能看到的全部信息,它是一个精心设计的信息架构。 就比如你是一位外科医生,正在做一台手术。你的"上下文"包括:眼前病人的生命体征(环境信息)、病人的病历和过敏史(用户记忆)、解剖学知识(领域知识)、手术进行到第几步(任务进展)。这些信息必须以正确的格式、在正确的时间、出现在你的视野里——这就是信息架构。 一个典型的 Agent 上下文包含以下层次:
案例分析 4-1:Claude Code —— 一个完整的 Agent 系统让我们用"决策引擎 + 信息视野 + 执行通道"的框架,分析 Claude Code 这个自主编程 Agent:
Claude Code 的成功,不在于用了最强的模型,而在于三个组件的协同设计——决策引擎知道何时该用哪个工具,信息视野能精准提供所需代码,执行通道的输出能被决策引擎正确理解。任何一个环节脱节,整个系统就会失效。 案例分析 4-2:Perplexity —— 信息视野的极致优化Perplexity 作为一个研究型 Agent,其核心竞争力在于信息视野的工程化:
对比 Claude Code 和 Perplexity,我们会发现一个有趣的规律:不同类型的 Agent,三个组件的权重不同。编程 Agent 重在决策引擎和执行通道的协同;研究 Agent 重在信息视野的深度。理解这一点,能帮你判断"我做的 Agent,瓶颈到底在哪个组件"。 五、接口的视角:观察空间与动作空间之前我们讨论了 Agent 的公式、循环和组件。现在换一个更高的视角——从"模型与世界的接口"来看 Agent,会发现一个更深层的认识。 5.1 Agent 能看到什么观察空间(Observation Space)是 Agent 能感知到的所有信息的集合。它决定了 Agent 的"视野边界"。 想象你坐在一辆车里开车。你的观察空间包括:挡风玻璃外的路况、后视镜里的车流、仪表盘的速度和油量、导航的语音提示。你看不到的——比如三公里外的堵车、其他司机的想法——就不在你的观察空间里。你能做的决策,受限于你能看到什么。 Agent 的观察空间由工程师设计。同样是"帮我分析这家公司",一个只能访问公开网页的 Agent,和一个能访问付费数据库、行业报告、内部 CRM 的 Agent,做出的分析深度天差地别。观察空间的边界,就是 Agent 能力的边界。 5.2 动作空间:Agent 能做什么动作空间(Action Space)是 Agent 能执行的所有动作的集合。它决定了 Agent 的"行动边界"。 还是那辆车。你的动作空间包括:踩油门、踩刹车、打方向盘、按喇叭、开灯。但是你始终做不到的——比如让车飞起来、让前车让路——就不在你的动作空间里。你能改变的现实,受限于你能做什么。 Agent 的动作空间同样由创建者设计。一个只能调用搜索工具的 Agent,和一个能调用搜索、代码执行、浏览器操作、文件系统访问的 Agent,能完成的任务复杂度完全不同。 5.3 接口边界:Agent 工程的真正杠杆把观察空间和动作空间合起来看,你会发现一个关键:Agent 工程的核心,就是不断扩展模型与世界的接口边界。 模型本身的能力提升是缓慢的(需要重新训练),但接口边界的扩展是快速的(只需加一个工具或一个数据源)。所以,短期内提升 Agent 能力的最有效方式,不是换更强的模型,而是扩展它的接口边界。 这就是为什么同样的底层模型(比如同一个 GPT-4),有的产品表现平庸,有的产品惊艳——差别往往不在模型,而在接口设计。Cursor 之所以写代码好用,不是因为它用了更强的模型,而是因为它把代码库、文件系统、终端、LSP(语言服务器协议)等接口接入了模型;Deep Research 之所以调研深入,是因为它把多轮搜索、网页解析、引用追踪等接口设计得很好。 理解了这一点,就抓住了 Agent 工程的真正杠杆:与其等待更强的模型,不如设计更好的接口。 六、Harness 工程:模型之外的真正竞争力前面我们讨论了 Agent 的公式、循环、组件和接口。你可能会想:既然公式这么清晰,组件这么明确,那构建一个 Agent 不就是把这三者组装起来吗?为什么实际工程中,Agent 系统的代码量往往远超预期? 答案在于:模型本身只是 Agent 的一小部分,围绕模型构建的工程层——我们称之为 Harness——才是决定 Agent 能否可靠工作的关键。 6.1 什么是 HarnessHarness 这个词的本义是"马具"——套在马身上、让人能驾驭马的一套装备。在 Agent 工程中,Harness 指的是围绕 LLM 构建的工程层:上下文管理、工具调度、错误恢复、安全约束、监控日志等。 Harness 这个词在 2026 年爆火,但也很好理解:LLM 就像一匹烈马——力量强大,但难以驾驭。Harness 就是那套马具——缰绳、马鞍、马镫——让你能安全地、可控地、高效地使用这股力量。没有 Harness,烈马可能跑得很快,但方向不可控、随时可能失控。 6.2 Harness 的四大职责一个成熟的 Harness 通常承担四类工作:
6.3 为什么 Harness 越来越重要随着模型越来越强(比如"模型即 Agent"趋势),Harness 会不会变得不重要?答案恰恰相反——Harness 的重要性在增加。原因有三:
模型决定上限,Harness 决定下限。一个配了顶级模型但 Harness 粗糙的 Agent,实际表现往往不如一个用中等模型但 Harness 精细的 Agent。
很多人以为 Agent 工程就是"调 LLM API",但真正在生产环境跑起来的 Agent,绝大部分代码都在做 Harness 的工作——管理上下文、调度工具、检查安全、恢复错误。LLM 调用只是 Harness 这个"壳"里的"核"。理解这一点,你就明白了为什么"模型即 Agent"的趋势下,Harness 工程反而更重要。 七、工程范式的演进:从提示工程到 Graph 工程理解了 Harness 的重要性,我们再退一步看:Agent 工程这几年的范式是怎么演进的?这个演进史能帮你看清当前处于什么阶段,以及未来可能往哪里走。 7.1 五个阶段的范式跃迁
这五个阶段不是替代关系,而是叠加关系——后一阶段建立在前一阶段之上。今天一个成熟的 Agent 系统,往往同时用到这五种工程。 7.2 范式演进背后的驱动力这个演进背后有一个清晰的驱动力:模型在变强,但工程复杂度也在变高。 这就像汽车工业的演进。早期汽车简单,重点是发动机(提示工程);后来有了变速箱、悬挂(上下文工程);再后来有了安全带、ABS(Harness 工程);现在有了自动驾驶系统(循环工程);未来会有车路协同(Graph 工程)。每一代都建立在前一代之上,而不是替代。
图 7-1:Agent 工程范式演进时间线每个范式不是替代前一个,而是在前一个基础上叠加。提示工程解决"模型听不懂"的问题;上下文工程解决"模型看不到关键信息"的问题;Harness 工程解决"模型不可靠"的问题;循环工程解决"单次回答不够"的问题;Graph 工程将解决"单 Agent 搞不定复杂任务"的问题。识别你的瓶颈在哪一层,就用对应范式的工具。 当你面对一个 Agent 任务时,先判断瓶颈在哪一层,再选择对应的工程范式。如果是模型答不好,优化提示词;如果是信息不够,做上下文工程;如果是不可靠,加强 Harness;如果需要多步推理,设计循环;如果需要多角色协作,用 Graph 编排。复杂度要匹配瓶颈,而不是无脑堆砌。 八、构建有效 Agent 的核心原则讲了这么多概念和范式,落到个人的实践上,构建一个有效的 Agent 系统应该遵循哪些原则?以下几条原则,算是我自己踩的一些坑。 8.1 原则一:先简单后复杂这是最重要的一条原则。面对一个 Agent 任务,永远从最简单的方案开始,只有当简单方案证明不够时,才引入复杂度。 具体来说,遵循这个顺序:
8.2 原则二:上下文为王在 Agent 工程中,上下文的质量决定 Agent 的质量。同样的模型、同样的工具,上下文设计得好和差,效果天差地别。 实践要点:
Agent 工程师不是在"调模型",而是在"准备上下文"。模型的能力是固定的,但你能通过上下文设计,让同样的能力发挥出截然不同的水平。 8.3 原则三:可观测性优先Agent 系统的调试难度远超传统软件——因为它的行为是模型生成的,不是确定性的代码逻辑。这就要求从第一天起就把可观测性设计进去。 最低限度的可观测性包括:
传统软件调试像在白盒里找 bug——代码逻辑是确定的,加日志就能定位。Agent 调试像在黑盒里找 bug——模型行为不确定,如果没有完整的轨迹记录,出了问题你只能干瞪眼。可观测性不是锦上添花,是 Agent 系统的生存必需。 8.4 原则四:安全是架构问题最后一条,也是容易被忽视的一条:安全不是上线前打的补丁,而是从第一行代码就要考虑的架构问题。 Agent 的安全风险贯穿五个层面:
安全是架构问题,不是功能问题。你不能在 Agent 开发完之后再"加安全",就像你不能在房子盖完之后再"加地基"。安全要从设计阶段就嵌入,贯穿每一个组件。 九、模型选型与编排模式理解了原则,我们来看两个实践中的关键决策:选什么模型,用什么编排模式。 9.1 模型选型:没有银弹不同模型有不同的能力特点和成本结构,没有"最好"的模型,只有"最适合"的模型。选型时需要平衡四个维度:
实践建议:不要一开始就锁定一个模型。设计 Agent 时把模型当作可替换的组件,通过抽象层隔离模型差异。这样你可以根据任务特点,灵活切换不同模型——简单任务用小模型省成本,复杂任务用大模型保效果。 9.2 编排模式:工作流 vs 自主 Agent编排模式解决"怎么把多步任务组织起来"的问题。主要有两种模式: 工作流模式工作流(Workflow)是预定义的、确定性的执行路径。开发者事先设计好每一步做什么、下一步走哪里,Agent 按图索骥地执行。 工作流像流水线——每个工位做什么、顺序怎么排,都是事先设计好的。产品沿着流水线走,每经过一个工位完成一道工序。优点是稳定可控,缺点是不灵活。 工作流适合:流程明确、步骤固定、合规要求高的任务。比如订单处理、报销审批、数据 ETL。 自主 Agent 模式自主 Agent(Autonomous Agent)让模型自己决定下一步做什么。开发者只提供工具和目标,Agent 根据当前状态自主决策。 自主 Agent 像一位经验丰富的项目经理——你给他目标,他自己判断该联系谁、查什么资料、按什么顺序推进。优点是灵活强大,缺点是不可控、成本高。 图 9-1:工作流 vs 自主 Agent 对比
案例分析 9-1:同一个任务,两种模式假设要构建一个"客户退款处理系统",我们用两种模式分别设计: 工作流模式设计:
自主 Agent 模式设计:
自主 Agent 适合:开放式探索、需要灵活决策、流程无法预先定义的任务。比如深度研究、复杂编码、创意写作。 两种模式的混合实践中,两种模式并非非此即彼——很多系统会混合使用:关键的、有严格合规要求的流程用工作流来确保可靠性,需要灵活决策的部分切换到自主模式。比如一个客服系统:标准问答用工作流(稳定可控),复杂投诉处理切换到自主 Agent(灵活应对)。 十、安全性:让 Agent 可靠地做事前面讨论的编排模式解决了 Harness 中上下文与工具的组织问题——怎么把 LLM 调用、工具和数据流串联起来。但光能做事还不够,还需要确保做得对、做得安全。这就是护栏要解决的问题。 10.1 护栏:分层防御机制护栏(Guardrails)是 Harness 中"约束、验证与纠正"层面的核心实现手段——它们构成了保障 Agent 行为安全可控的分层防线。 护栏就像公路上的多重安全设施——护栏(防止冲出路面)、限速摄像头(约束速度)、红绿灯(控制通行)、交警(处理违规)。单个设施不够,要组合使用才能保障安全。Agent 的护栏也是同样道理。 精心设计的护栏有助于管理数据隐私风险(例如防止系统提示泄露)或声誉风险(例如确保模型行为与品牌形象一致)。你可以先针对已识别的风险设置护栏,然后在发现新漏洞时逐步添加新的护栏。 可以将护栏理解为分层防御机制。单个护栏不太可能提供足够的保护,但将多个专门的护栏组合使用,就能构建出更有韧性的 Agent 系统。
案例分析 10-1:一个提示注入攻击的防御过程假设有一个客服 Agent,工具包括"查询订单"和"发送邮件"。攻击者通过订单备注字段注入恶意指令: 没有护栏时:Agent 可能真的执行了这个指令,泄露用户数据。 有分层护栏时的防御过程:
这个案例说明:单一护栏几乎一定会被绕过,只有多层防御才能形成真正的韧性。这也是为什么 Anthropic、OpenAI 等公司都在投入大量资源研究 Constitutional Classifiers 等分层护栏技术。 10.2 护栏的三层分类按防护位置,护栏可以分为三类:输入侧、执行侧和输出侧。 输入侧护栏输入侧护栏在请求到达 Agent 之前拦截,通常包含四种机制:
执行侧护栏执行侧护栏在工具调用时验证。其核心是工具风险评级:根据操作是否可逆、权限等级、财务影响,为每个工具标注风险等级(低/中/高),高风险操作需额外审查或人工确认。 这就像银行的风控系统——小额转账直接通过,大额转账要短信验证,跨国转账要人工审核。不同风险等级,对应不同的验证强度。 输出侧护栏输出侧护栏在响应返回用户之前检查:
需要注意的是,某些机制(如基于规则的正则过滤)既可以用在输入侧也可以用在输出侧,上文按最常见的部署位置归类。 10.3 人工干预:最后一道防线无论护栏多么完善,总有一些情况需要人类介入。人工干预(Human-in-the-Loop)是 Agent 安全的最后一道防线,适用于以下场景:
人工干预的设计要点是优雅地移交控制——Agent 应该清晰地说明"我为什么需要人工介入"、"我建议怎么做"、"用户有哪些选项",而不是简单地把问题抛回给用户。同时,要设计好超时机制——如果用户长时间不响应,Agent 应该有合理的降级方案(如暂停任务、保存状态、稍后重试),而不是无限等待。 人工干预不是把责任甩给用户,而是设计一个健壮的人机协作流程。好的 Agent 应该像一个靠谱的下属——遇到拿不准的事,主动请示,并给出自己的建议,而不是把难题原样甩回给老板。 十一、结语:站在 Agent 时代的起点回望这篇文章,我们从 Agent 的核心公式出发,依次讨论了 ReAct 循环、三大组件、接口视角、Harness 工程、范式演进、核心原则、模型选型、编排模式和护栏安全。如果用几句话浓缩全文,那就是: Agent 的本质是接口。Agent = 决策引擎 + 信息视野 + 执行通道——这三个组件构成了模型与世界的完整接口。Agent 工程的演进史,就是接口边界不断扩张的历史。理解这一点,你就抓住了 Agent 能力提升的真正杠杆:与其等待更强的模型,不如设计更好的接口。 循环是 Agent 的灵魂。ReAct 循环让模型从"单次回答"进化为"多步推理 + 自主行动"。轨迹作为循环的执行记录,同时是调试依据、优化素材和训练数据——它是 Agent 工程中最有价值的资产。 Harness 决定下限。模型决定上限,Harness 决定下限。随着模型越来越自主,Harness 工程的重要性不降反升——因为越自主的模型,越需要良好的环境来发挥。 范式要匹配瓶颈。从提示工程到 Graph 工程,五个范式对应五个不同的瓶颈。先识别瓶颈,再选择范式,复杂度是最后的手段,不是默认选项。 安全是架构问题。护栏、人工干预、对齐——安全问题从第一行代码就要考虑,而不是上线前打补丁。它贯穿模型、上下文、工具、协作和社会五个层面。 最后,一个穿越周期的思维方式:好的设计原则应该穿越模型的迭代周期。今天我们讨论的很多具体技术(如 ReAct 循环、工具调用格式、上下文压缩算法),可能会随模型进步而过时;但本文提炼的底层原则——接口边界、循环结构、Harness 工程、范式匹配、安全架构——这些会沉淀下来,成为 Agent 工程的持久智慧。 我们正站在 Agent 时代的起点。模型在快速进化,框架在激烈竞争,应用在爆发式涌现。在这个充满不确定性的时代,理解本质比掌握工具更重要——工具会变,但本质不变。希望这篇文章,能帮你建立那份穿越变化的判断力。 阅读原文:点击这里 该文章在 2026/8/5 15:13:38 编辑过 |
关键字查询
相关文章
正在查询... |