
你好,我是郑工长。
大家都在谈 Agent,谈得热火朝天,但在我看来,大部分人连门都没摸到。他们还在盯着对话框里的字漂不漂亮,还在纠结提示词怎么写得更委婉。这完全是搞错了方向。交互范式从"Chat 对话"转向"Agent 自主执行",这不是一个简单的功能升级,这是底层架构的重构,是软件工程逻辑的根本性位移。
别被对话框骗了
很多人觉得,Agent 不就是能调 API 的 Chatbot 吗?大错特错。
Chat 的本质是什么?是概率性的文本生成。你问它一个问题,它基于训练数据的分布,给你一个最可能的回答。这个过程是无状态的,或者说,它的状态维护非常脆弱。你跟 Chat 对话,就像是在跟一个博学的顾问聊天,他可以说得天花乱坠,但让他去工地搬块砖,他立马就傻眼了。为什么?因为“说话”和“做事”在工程上是两个完全不同的维度。
说话容错率高。我说“把那个文件发给我”,哪怕指代不明,你也能猜个八九不离十。但做事容错率极低。代码里少一个分号,程序就跑不起来;API 参数传错一个字段,订单就下失败。
Chat 追求的是“似真性”,而 Agent 追求的是“确定性”。
这就是为什么很多所谓的 Agent 产品,用起来总觉得差点意思。它们只是在聊天界面外挂了几个插件,本质上还是那个概率模型在裸奔。一旦遇到复杂的任务链路,比如“帮我查一下上周的销售额,对比去年同期,生成报表并发给老板”,这种多步骤、强依赖、需要状态记忆的任务,纯 Chat 架构立马崩盘。
这背后,是状态管理的缺失。Chat 是线性的,一问一答。Agent 必须是图状的,它有分支,有循环,有回滚。看明白了吗?从线性对话到图状执行,这就是第一个坎。
Agent 不是人,是流水线
把 Agent 拟人化,是产品经理最爱犯的错。什么“数字员工”、“虚拟助理”,听着好听,实则误导。在工程师眼里,Agent 就是一个自动化的控制回路。
它由四个核心模块组成:感知、规划、行动、反思。这四个词听着抽象,落到代码里,就是具体的工程问题。
感知,不仅仅是读取用户的输入,还要读取环境的状态。比如你要做一个订票 Agent,它不仅要听懂“我要去北京”,还要知道现在的余票情况、用户的预算约束、甚至公司的差旅政策。这些信息分散在不同的数据库和 API 里,怎么聚合?
规划,是大模型最强的地方,也是最不稳定的地方。让它拆解任务,它可能拆得很好,也可能胡编乱造。工程上怎么解决?我们不能指望模型一次就做对。我们需要引入“规划校验层”。比如,模型生成了一个执行计划,必须先经过一个规则引擎或者小型验证模型的检查,确认逻辑闭环了,才能下发执行。
行动,就是调工具。这里有个巨大的坑:工具的定义。很多开发者把 API 文档直接扔给模型,指望它自己能读懂。这是偷懒。工具描述必须标准化、结构化,甚至要为模型专门写一层适配层(Adapter)。因为模型的 Token 理解是有噪声的,你的 API 参数稍微复杂一点,模型就可能 hallucinate(幻觉)出一个不存在的参数。
不要信任模型的输出,要信任经过验证的执行结果。
反思,是 Agent 区别于传统脚本的关键。脚本错了就报异常,停在那里。Agent 错了,要能自己察觉,然后尝试修复。比如调用 API 失败了,是网络问题还是参数问题?如果是参数问题,能不能根据错误信息自我修正参数,然后重试?这个闭环能不能跑通,决定了你的 Agent 是智能体,还是个只会报错的脚本。
工程化的深水区
说到这儿,可能有人觉得,架构图画出来挺简单,搭个 LangChain 不就完了?
太天真了。真正的挑战在水面之下。
首先是延迟。Chat 慢一点,用户等个几秒没关系,那是思考时间。但 Agent 执行任务,用户要的是结果。如果一个订票任务,模型规划花了 5 秒,调 API 花了 2 秒,中间再反思重试两次,用户等了 30 秒还没动静,体验就是灾难。怎么优化?异步执行是必须的。前端不能傻等,得有个进度条,告诉用户“正在查询余票”、“正在锁定座位”。这种状态同步的机制,比聊天消息的推送要复杂得多。
其次是 consistency(一致性)。在大模型的世界里,一切都是概率的。但业务系统要求强一致性。你不能用一个概率性的模型,直接去操作一个确定性的数据库。这中间必须有一个“事务层”。比如,Agent 决定要扣款,这个动作必须幂等。如果模型因为网络波动重试了三次,不能扣三次款。这需要我们在 Agent 框架之外,建立传统的分布式事务保障机制。
大模型负责模糊决策,传统代码负责精确执行。
这就是“解耦合”。不要把业务逻辑都写在 Prompt 里,Prompt 只负责意图识别和任务拆解。真正的业务规则、权限校验、数据验证,必须写死在代码里。很多人想把所有逻辑都交给模型,觉得这样灵活。这是技术债,迟早要还。模型会变,Prompt 会失效,但代码里的规则是系统的基石。
还有一个常被忽视的问题:成本。Chat 是按 Token 收费的。Agent 自主执行意味着大量的中间思考过程都会消耗 Token。一个复杂任务,模型可能在后台自我对话了几十轮,这些 Token 用户看不见,但都要买单。如果任务执行失败了,这些钱就白花了。所以,工程上必须设计“止损机制”。比如,规划阶段超过一定步数还没得出结论,强制终止,转人工介入。这不是妥协,这是经济性原则。
谁来为结果负责
范式转移的最深处,其实是责任主体的转移。
Chat 时代,责任在用户。模型给了建议,用不用是你自己的事。答错了,大不了换个问法。但 Agent 时代,责任在系统。用户下达指令后,是期待结果交付的。如果 Agent 把邮件发错了人,把数据库删错了表,这个锅谁背?
这就引出了“人机回环”(Human-in-the-loop)的设计哲学。
在高风险场景下,Agent 不能全自动。它必须是一个“副驾驶”。它做好所有准备工作,填好表单,写好代码,生成报告,然后停下来,等待人类点击“确认”。这个确认按钮,不是多余的,它是信任的边界。
自动化不是为了取代人,而是为了让人专注于决策,而不是操作。
未来的交互界面,可能不再是聊天框,而是一个“待办确认列表”。Agent 会在后台默默干活,把能做的都做了,遇到不确定的、高风险的,推送到你面前让你选。你从“操作员”变成了“监工”。
这对企业架构提出了新要求。我们需要审计日志,需要操作回溯,需要权限的细粒度控制。以前是控制人能访问什么菜单,现在是控制 Agent 能调用什么 API,能读取什么数据行。这种安全模型的重构,比算法升级要难得多。
别指望一蹴而就
我知道,很多人想着一夜之间就把公司的系统都 Agent 化。作为工长,我得泼盆冷水。
这种转型是渐进的。先从高频、低风险、规则明确的任务开始。比如自动整理会议纪要、自动回复常见客服工单、自动测试代码回归。这些场景容错率高,价值立竿见影。
不要一上来就搞“全自动公司”。那是科幻,不是工程。工程讲究的是鲁棒性,是可控性,是投入产出比。
你要建立一套评估体系。不是看模型有多聪明,是看任务完成率(Task Completion Rate)有多高。一个能完美对话但任务完成率只有 50% 的 Agent,在生产环境里就是垃圾。一个说话笨拙但任务完成率 99% 的 Agent,才是好工具。
这背后,是价值观的转变。从炫技到务实。
未来的软件,将不再是功能的堆砌,而是目标的达成。用户不再关心怎么点菜单,怎么填表单,他们只关心“我要结果”。软件将隐身到任务背后,成为基础设施。
我们这一代工程师,正处在这样一个历史节点上。我们不再仅仅是编写逻辑的人,我们是设计“自主系统”的建筑师。我们要教会的不仅仅是代码如何运行,而是机器如何“理解”意图并“负责”地行动。
这很难,但值得做。
交互的本质,从来不是沟通,而是协作。当机器能够真正承担执行的责任时,人类才能从繁琐的数字化劳作中解放出来,去处理真正的复杂性问题。不要迷恋对话的流畅度,要敬畏执行的准确度。
工具的价值不在于它多么像人,而在于它能多大程度上让人不再需要像机器一样工作。
