AI智能体真相:百行代码+大模型,拆解Agent底层逻辑

智能体并非新模型,而是语言模型加上工具、循环和目标四要素的组合,力量在模型外的harness软件。
文章澄清了一个常见误解:AI智能体并非全新的AI物种,其内部模型与聊天模型同类,只能输出文本。智能体的核心在于模型周围那层普通软件——harness。它通过两个缺失零件将模型变为智能体:一是工具,模型写出请求,harness在真实计算机上执行并返回结果;二是循环与目标,harness反复将全部信息发回模型,模型逐步选择动作直至判断目标达成。文章还区分了智能体、工作流与聊天机器人(谁决定下一步),指出harness如同整车比引擎更重要,循环带来重复计费和错误传播的代价,自主性是可控的旋钮,并列出定义不统一、标签滥用等四个诚实事实。
大多数人对AI智能体(AI Agent)有个误解:以为它是一个全新的、更强大的AI物种。但真相可能令人意外——智能体内部的那个模型,和你平时聊天用的模型是同一类,它本身什么都做不了:无法打开文件,无法按下按钮,只能输出文本。
那智能体是怎么来的?普林斯顿和斯坦福的研究者曾写出一个核心只有约一百行Python的智能体,只配备一个工具——命令行。在500个真实软件缺陷的标准测试上,这个百行程序配上强模型,报告修复率约为四分之三。
真正的力量不在模型本身,而在于模型周围那层薄薄的普通软件。

一个语言模型能做什么,不能做什么
语言模型只做一件事:文本输入,预测下一个文本。你问一个问题,它给出一个答案。
现在让它修复你项目里一个失败的测试。它从没见过你的项目,看不到文件,也跑不了测试。它只能做唯一会做的事——根据训练中习得的模式,写一个听起来合理的答案。没有任何验证,答案可能是错的,而且它回复一次就停了。
要继续推进,你得自己跑代码、复制错误、粘贴回去。这是聊天机器人:一问一答,而人负责搬运所有结果。人在执行动作,也在重复循环。
智能体的两个缺失零件:工具与循环
第一个零件:把「许可」变成工具
模型只能写文本,于是我们和它达成约定:描述几个它被允许请求的动作——读文件、跑命令、改文件。这些叫工具(tools)。
当模型想要某个动作时,它并不亲自执行,而是写一个简短请求:工具名加上细节。另一个程序在旁监听,读到请求后在真实计算机上执行真实操作,再把结果作为文本交还给模型。模型现在读到的是实际发生了什么,而在此之前它只能猜。注意分工:模型做选择,程序做执行。这个程序叫harness(执行框架),是普通软件。
工具调用(Tool Calling / Function Calling)是语言模型与外部世界交互的核心机制。模型并不直接执行操作,而是在输出中生成一段结构化文本,通常包含工具名称和参数(如 {"tool": "read_file", "path": "test.py"})。harness 解析这段文本,在真实环境中执行对应操作,再将结果(成功输出或错误信息)作为新的文本追加到对话上下文中。这个约定的关键在于:模型只需学会「如何描述请求」,而「如何执行」完全由外部软件负责。因此,同一套模型可以配合不同的工具集,适应编程、搜索、客服等截然不同的场景。工具的描述本身也是提示词的一部分,模型根据这些描述判断何时调用哪个工具。
第二个零件:循环与目标
一个动作很少够用,所以harness不会在拿到一个结果后就停止。它把目前为止的所有信息发回给模型,再问:下一步做什么?模型读完结果选择下一个动作,harness执行,然后重复。
跟踪失败测试、列出文件、读取测试、运行看错误、读代码、改一行、再跑测试——这次通过了。没有人预先写下这个序列,模型在每一步看到上一步结果后自行选择。模型也决定何时结束:当它判断目标达成,就写一个不含请求的正常回答,循环终止。
开发者Simon Willison给出了一个被许多构建者采纳的定义:智能体是在循环中运行工具的语言模型。模型选择,工具执行,循环重复,目标决定何时停止。
这个定义还对应一个更古老的想法。据1990年代的经典教科书,智能体被定义为「任何感知其环境并对其采取行动的东西」。对语言模型而言,感知就是读结果,行动就是写下下一个请求——两者都是文本。

智能体循环(Agent Loop)的典型结构是:观察(Observation)→ 思考(Thought)→ 行动(Action)→ 观察……如此往复。每一轮中,harness 将完整的对话历史(包括系统指令、用户目标、此前所有工具请求和返回结果)重新发送给模型,模型据此决定下一步。这种「重发全量上下文」的方式源于当前大多数语言模型的无状态特性——它们不在调用之间保留记忆,每次调用都是独立的。循环的终止条件通常由模型自行判断:当它认为目标已达成,便输出一个不包含工具请求的普通文本回复,harness 检测到无工具请求即停止循环。此外,harness 通常还会设置最大步数限制,防止模型陷入无效循环或产生过高成本。
智能体、工作流与聊天机器人的关键区别
许多产品都被叫作智能体。一个问题可以分清:谁决定下一步?
- 聊天机器人:人决定。
- 工作流:开发者决定,步骤提前写死在代码里,模型只负责填充每一步。
- 智能体:模型决定,它指挥自己的流程,两次运行可以完全不同。
这个区分来自Anthropic的构建指南。工作流可预测,智能体灵活,两者没有绝对优劣。当你已知步骤时,固定路径是正确选择;当你无法预知步骤时,智能体才有用武之地。
Harness比想象中重要:引擎与整车的比喻
harness不只执行工具。它还写入模型启动时的指令、列出可用工具、决定什么被允许。有作者把模型比作引擎,那么harness就是车的其余部分:转向、刹车、仪表盘。
这就是为什么同一个模型在两个产品里感觉截然不同:在聊天窗口里它回答问题,在编程工具里它完成整个任务。引擎没变。这也是为什么小harness配强模型能走这么远——开头那个百行智能体正是如此:一个循环、一个工具、一份对话记录。所以人们比较智能体时,往往比较的是harness。
沙盒(Sandbox)是一种隔离的运行环境,用于限制智能体操作的影响范围。在沙盒中,智能体可以自由读写文件、执行命令,但这些操作被限制在一个虚拟化的封闭空间内,无法触及宿主机的重要文件、网络或系统配置。常见的沙盒实现包括容器(如 Docker)、虚拟机或专门的权限隔离机制。沙盒的价值在于:它允许智能体在「远端」自主性模式下工作,即使模型犯错(如误删文件或执行危险命令),损失也被控制在沙盒内部,不会波及真实生产环境。因此,沙盒是平衡智能体自主性与安全性的关键基础设施,也是许多严肃 harness 的标配组件。
循环的代价:重复计费与错误传播
循环很强大,但有代价。模型在调用之间不保留记忆,所以每一轮harness都要把整段对话重新发送——指令、每个请求、每个结果。这份记录随每一步增长。一个三十步的任务,模型会把早期步骤读三十遍。这就是智能体比单次回答更贵、更慢的原因。
错误也会传播。早期一个错误步骤进入记录,后续步骤便建立在它之上。

构建者的建议很直白:用能工作的最简单方案。只要能做,提示词优于工作流,工作流优于智能体。智能体是用时间和金钱,换取处理无人能预先编写脚本的任务的能力。
自主性是一个旋钮,不是开关
区分智能体的另一点是自由度。它是个旋钮,由harness掌控。
- 一端:只能读。可查看文件、搜索,不能改动任何东西。
- 中间:可以修改,但执行删除文件、发送消息等风险操作前必须询问人类。
- 远端:在称为沙盒的封闭空间内独自工作,错误无法触及重要事物。
每个严肃的harness都会限制步数,防止混乱的智能体无限运行。所以智能体从来不是简单的「自主」——目标、工具和限制,都是有人选择的。
诚实的部分:四个需要正视的事实
第一,定义并未统一。 在提出自己的定义前,Simon Willison收集了211种不同的定义。视频中这个是构建者中最常见的,但仍只是若干种之一。
第二,标签被滥用。 研究机构Gartner估计,在数千家销售智能体的公司中,只有约130家提供的是真货,其余被称为「智能体洗白」(agent washing)。

第三,基准数字来自构建该程序的团队。 它既属于程序,也属于模型。那一百行是智能体本身,围绕它的完整包要大得多。
第四,循环不等于可靠。 智能体仍会走错步骤,仍会陈述虚假内容。人类始终对其行为负责。
拆到底:模型给判断,软件给手和耐心
语言模型单独存在时,文本进、文本出,无法行动,回复一次即止。给它工具,它能请求由程序执行的动作。放进循环,它能一步步推进,每一步基于上一步结果。给它目标,它知道朝什么努力、何时停止。
模型、工具、循环、目标——这就是智能体。模型提供判断,普通软件提供手和耐心。缺了任何一方,都不是智能体。
留一个问题:智能体自己选择步骤,但目标、工具和限制是人选的。那么它的行为里,有多少是真正属于它自己的决定?
相关推荐

WorkBuddy保姆级教程:半小时跑通自动化工作流
WorkBuddy 自动化工作流保姆级拆解:为什么大多数人只把它用成聊天软件,27 个支点课程与 12 个模板如何帮助新手半小时跑通落地实操,附使用边界提醒。

Codex云端模式详解:环境配置与适用场景
本文详细解析Codex云端模式的工作原理、环境配置步骤及适用场景,包括如何创建环境、连接GitHub仓库、设置定时任务,并对比云端与本地模式的差异,帮助开发者高效利用Codex。

Claude Code免费使用真相:三条路与一个骗局
Claude Code 免费使用是否可行?本文拆解 Pro、Max 的真实成本(含汇率与税费)、社区免费方案的技术原理与隐私代价,以及假安装包、钓鱼页面等安全陷阱,并给出访客通行证、开源贡献者计划和本地模型三条合法免费路径。