所有有聊天框的产品现在都叫自己 AI 代理,大多数不是。
这个区别不只是措辞问题。把聊天机器人叫成代理会导致设计错误、范围设定错误,以及在出问题时感到意外。"代理"这个词意味着一套具体的特性,构建有这些特性的系统需要做不同的设计决定。
最简单的区别:一次响应 vs 追一个目标
聊天机器人响应输入,代理在多个步骤里追一个目标,中途不需要有人逐步确认。
问 Claude Python 怎么排序列表,它给你答案然后停下来,这是聊天机器人。给一个系统访问代码库的权限,告诉它修复所有失败的测试,它花二十分钟读文件、写代码、跑测试、调 bug、提交,全程没问你任何事,这是代理在追一个目标。
真正的差距在于持续性:代理在你停止盯着它之后还在跑,这是聊天机器人做不到的。
代理由四件事构成,缺一不可
工具。 没有工具(读文件、调 API、跑代码、搜索、发消息的能力),LLM 只能产出文字,而文字不改变任何外部状态。工具是系统从"知道事情"变成"能做事情"的路径。
跨步骤的记忆。 代理不在单次交互里完成任务,它需要知道已经做了什么、发现了什么、下一步是什么。把完整历史一直留在上下文里的简单做法,在第 40 步左右就会崩掉,好的代理系统主动压缩和管理这个状态。
循环。 代理跑到任务完成或卡住为止:看当前状态、决定下一步、行动、看结果、重复。每次交互只做一个动作、停下来等指令的系统,是辅助输入,还没有做到自主执行。
目标,而不只是提示。 要有人告诉代理什么叫完成。"修复失败的测试"是目标,"这里有个坏掉的测试"是输入。目标跨步骤持续有效,输入只影响一次响应,这个差距决定了系统能不能真正自主工作。
代理有三个地方比看起来难
错误有真实后果。 聊天机器人最坏的结果是一个不好的答案,代理最坏的结果是一个你撤不回来的行动:邮件发错了人,代码部署到生产,文件被删了,API 调用产生了费用。代理的权限边界需要被显式设计出来,靠代理自己判断边界在哪里是不可靠的。
错误会叠加。 在第 2 步有错误假设的代理,会在第 3 到 15 步基于那个假设自信地往前走。让代理在行动前先总结它对目标的理解是个低成本的做法,能提前拦截相当比例的问题。
上下文会撑爆。 代理在工作过程中不断累积状态:历史记录、工具返回的结果、备注。在长任务里这些会超过模型能有效处理的范围。好的代理系统压缩历史、单独缓存结果、对发生的事情做摘要。不考虑这个问题的系统会在最不合适的时刻撞墙。
自主程度是个连续谱,大多数产品在中间某处
从"回答问题的 LLM"到"独立跑好几天的完全自主系统",中间有很多档位,大多数实用的生产系统在中间某处。
运转良好的模式:代理自主处理边界清晰的任务,在无法自信判断的决策处主动汇报,在超出权限时移交给人。能自动解决 80% 工单、把剩下 20% 移交人工的客服代理设计得很好,因为它的目标从一开始就很具体:处理这个任务里边界清晰的部分,在需要人参与的地方主动移交。
代理发挥最大价值的任务有一个共同特点:需要多个步骤,而且每一步的输入取决于上一步的输出。处理一张发票包括读文件、提字段、对采购单、套规则、路由审批人、发通知、更新 ERP,共七步。代理在一次调用里处理全部,让人逐步操作的系统在每一步都需要有人在场。
在构建之前先搞清楚:这个任务是否真的需要自主的多步骤执行?"代理"这个词太便宜,不足以作为构建决策的依据。
觉得有帮助?分享给朋友。