1. 引言
最近两年,Agent(智能体)概念被炒得火热,各大厂商都在推自己的 Agent 框架和平台。很多开发者看到 Demo 里 Agent 能自动规划、自动调用工具、自动完成任务,觉得这就是未来,于是跃跃欲试,想把自己的业务也改造成 Agent 架构。
但作为一个在多个项目里踩过坑的开发者,我想泼一盆冷水:Agent 开发并不适合所有场景,甚至对大多数业务来说,直接上 Agent 是一个性价比很低的选择。
这篇文章不否定 Agent 的价值,而是想从工程落地的角度,聊聊为什么不推荐一上来就走 Agent 开发。
2. 先搞清楚:什么是 Agent 开发
在展开讨论之前,先明确一下概念。这里说的 Agent 开发,指的是以LLM 为核心决策器,让模型自主规划任务步骤、自主调用外部工具(Tool/Function Calling)、自主决定下一步动作的软件开发范式。
典型特征包括:
- 模型拥有「思考-行动-观察」的循环(ReAct 模式);
- 系统根据模型输出动态决定调用哪个工具;
- 任务路径不是预先写死的,而是模型「临场发挥」;
- 通常配合记忆、多步推理、子任务拆解等机制。
与之相对的是传统开发:逻辑是开发者写死的,模型只负责其中某一段(比如只做文本生成、只做意图识别)。
3. 为什么不推荐:核心原因
3.1 不可控性是最大的坑
传统程序是确定性的:同样的输入,永远得到同样的输出。但 Agent 不一样,模型每一步的决策都有概率性,同样的输入可能走完全不同的路径。
这意味着:
- 你无法保证 Agent 每次都调用正确的工具;
- 你无法保证 Agent 不会在中间步骤「跑偏」;
- 你无法保证 Agent 在遇到边界情况时做出合理决策。
在 To B 或生产环境里,不可控 = 不可用。客户不会接受「这次运气好跑通了,下次就报错」的系统。
3.2 调试成本极高
传统代码出 bug,打断点、看日志、定位逻辑,很快就能找到问题。Agent 出问题呢?
- 你看到的是模型的一堆「思考过程」;
- 错误可能出在提示词、工具定义、上下文管理、模型版本、参数设置等任何一个环节;
- 同样的错误可能无法稳定复现;
- 你甚至很难判断是「模型笨」还是「提示词没写好」。
调试一个 Agent 的时间,往往是传统开发的数倍甚至数十倍。
3.3 成本不可预估
Agent 是多轮推理的,每一步都要调用 LLM。一个看似简单的任务,模型可能「思考」很多轮,每轮都在消耗 token。
- 单次任务成本从几分钱到几块钱不等;
- 任务越复杂,模型「想」得越多,成本越高;
- 高峰期并发上来,账单可能让你措手不及。
对于追求利润率的业务来说,这种成本模型很难接受。
3.4 延迟难以接受
多轮推理意味着多次串行调用 LLM,每次调用都有几百毫秒到几秒的延迟。一个需要 5 步推理的任务,总延迟可能达到 10 秒以上。
用户等不了。在大多数交互场景里,超过 3 秒的响应就已经让人烦躁了。
3.5 维护和迭代困难
Agent 的行为由提示词驱动,而提示词是「玄学」:
- 换一个模型版本,行为可能大变;
- 稍微改一下提示词,可能引发连锁反应;
- 你无法像写单元测试一样,稳定地验证 Agent 的每个分支。
这意味着 Agent 系统的维护成本远高于传统系统,而且越到后期越难改。
4. 什么情况下才值得用 Agent
说了这么多不推荐,那 Agent 到底适合什么场景?我的判断是:
- 任务边界模糊:无法预先穷举所有分支路径;
- 工具数量多且动态:需要根据上下文灵活选择;
- 容错率高:偶尔出错可以接受,或者有人工兜底;
- 低频、非实时:不要求毫秒级响应,成本敏感度低;
- 探索性任务:比如研究助手、数据分析探索,而不是固定业务流程。
典型例子:个人知识库问答助手、研究型信息聚合、内部效率工具。这些场景出错影响小、延迟容忍度高,适合 Agent。
5. 更务实的替代方案
如果你的业务其实不需要「完全自主」,我建议采用降级方案:
5.1 用 Workflow 代替 Agent
把任务流程预先写死,LLM 只负责其中某个环节(如意图识别、文本生成、信息抽取)。流程是确定的,模型只做「填空题」。
优点:可控、可测、成本低、延迟低。
5.2 用「受限 Agent」
如果确实需要一定的自主性,可以给 Agent 加硬约束:
- 限定可调用的工具白名单;
- 限定最大推理步数;
- 每一步都做结果校验,不通过就回退;
- 关键节点强制人工确认。
5.3 混合架构
大部分逻辑用传统代码实现,只在「确实需要模型决策」的地方接入 LLM。这是目前生产环境里最稳妥的做法。
6. 总结
Agent 是很酷的技术方向,但酷不等于适合。对大多数业务场景来说,Agent 带来的不可控、高成本、高延迟、难调试,是实实在在的工程问题。
我的建议是:
- 先想清楚业务是否需要「自主决策」;
- 能用 Workflow 解决的,不要上 Agent;
- 必须用 Agent 的,做好约束和兜底;
- 永远把「可控、可测、可维护」放在第一位。
技术选型不是追热点,而是解决问题。适合的才是最好的。