Agent 工程化落地:我们太迷信技术,却忘了先把问题想清楚

11 阅读6分钟

看了很多论文,写了很多 Demo,做了几个项目之后我才发现:Agent 最难的地方,不是让模型变聪明,而是让人想清楚自己到底想要什么。

一、一个普遍的错觉

最近,Agent 火得一塌糊涂。

ReAct、LangGraph、OpenClaw、Harness Engineering……新概念、新框架、新协议层出不穷。每个听起来都很厉害,每个都宣称能让 Agent 更强大、更通用、更易用。

于是很多人,包括我,产生了一种错觉:

只要我选对了框架、调好了 prompt、接好了工具,Agent 就能帮我解决实际问题。

但真动手做的时候,现实很快就泼冷水:

  • 模型确实能调用工具了,但不知道什么时候该用,什么时候该停。
  • 加了一个又一个能力,系统反而越来越脆弱。
  • Prompt 调了几十版,换个问法又崩了。
  • Demo 的时候很惊艳,上线之后用户问三句就露馅。

问题出在哪?

我们太迷信技术了,以为工程难点在代码。但真正卡住大多数人的,是需求还没收敛——大家一头扎进实现,却跳过了最核心的那一步:"这个 Agent 到底要解决什么具体问题?"

二、论文和框架不会替你定义问题

这不是批评论文和框架,它们本来就不是干这个的。

论文的任务是证明可能性。

ReAct 论文展示了 Thought-Action-Observation 循环的有效性;SWE-agent 证明了 Agent 可以修代码;各种基准测试证明 Agent 在某些任务上能超过人类。

但论文里的任务,都是已经被定义好的。HotpotQA 有标准问题,ALFWorld 有固定环境,SWE-bench 有明确仓库和 issue。论文不需要回答"这个问题从哪来",它只需要回答"给定这个问题,我能不能解"。

框架的任务是降低实现成本。

LangGraph 帮你画状态图,AutoGen 帮你搭多 Agent 对话,MCP 帮你标准化工具接口。这些都很重要,但它们都默认一件事:

你已经知道 Agent 该做什么、能做什么、边界在哪里。

如果你连这一步都没想明白,框架只会让问题更加复杂。

三、真正难的是需求收敛

我做了一个叫 minimal-agent 的小项目,初衷是练习 ReAct 范式。

一开始很顺利:写循环、接工具、调 prompt,很快就能跑出一个能查天气、做计算、搜网页的 Demo。

但做到后面,我开始陷入一种熟悉的困境:

  • 这个 Agent 到底要解决什么问题?
  • 用户会问什么样的问题?
  • 哪些能力必须保留,哪些只是"看起来有用"?
  • 模型选错工具时,是我 prompt 写得不好,还是这个动作空间本身就有歧义?

我反复修改代码,却始终感觉在原地打转。后来我才意识到:

我不是在解决技术问题,我是在逃避一个更难的问题——把模糊的现实需求,翻译成一个可执行的系统。

这件事没有标准答案,也不能靠堆技术解决。它需要你理解用户、理解场景、理解任务边界。

四、为什么这个问题被严重低估

需求收敛之所以难,是因为它不符合我们对"技术进步"的想象。

我们习惯了这样一种叙事:技术越先进,问题越容易解决。GPU 更快了,模型更聪明了,框架更完善了,所以 Agent 应该离我们越来越近。

但 Agent 和其他软件不一样。

一个传统软件,需求清楚了,剩下的就是实现。但 Agent 的"需求清楚"本身就很难:

  • 用户通常说不清楚自己要什么。
  • 即使说清楚了,真实场景也比描述复杂十倍。
  • 环境是动态的,工具可能失败,模型可能产生幻觉。
  • 你以为的"完成",和用户认为的"完成",往往不是一回事。

所以 Agent 工程化,本质上不是"让模型执行命令",而是"让模型在不确定性中,依然做出符合人类预期的行为"。

这需要的不只是技术,还有对问题本身的深刻洞察。

五、POC 和 Demo 掩盖了这个问题

很多 Agent 项目都经历过相似的轨迹:

  1. 炫酷的 Demo 拿到关注和资源,大家觉得"核心问题已解决,只剩工程化"。
  2. 真正落地时发现:动作空间、异常处理、用户意图理解全是空白。
  3. 团队在 prompt、框架、模型之间反复横跳,试图用技术填补需求的缺口。

最危险的是第三步——它制造了一种"我们在快速迭代"的幻觉。实际上,你可能只是在用更复杂的代码,掩盖一个从一开始就没人想清楚的问题。

六、我的尝试:先锁死场景

那该怎么办?

说实话,我现在也没有找到银弹。但我开始尝试一个更收敛的思路:不要先追求通用,先在一个具体场景里把事做扎实。

我拿 minimal-agent 做实验,做了四件事:

第一,砍掉"以后可能用得上"的工具。 从七八个砍到三个(天气、计算、搜索),限定场景为"回答需要外部信息的事实性问题"。动作空间一小,模型的决策质量立刻上来了——选错工具的频率明显下降。

第二,给每个工具写"人话版"说明书。 不是写 search(query: str) 就完事,而是写清楚"什么时候用、参数怎么填"。

第三,准备一组固定测试问题。 20 个问题覆盖单工具调用、多工具组合、模糊意图等场景。每次改 prompt 都跑一遍,看成功率和步数,不再凭感觉判断好坏。

第四,接受"还是有很多问题解决不了"。 比如用户问"帮我规划一下周末",Agent 就懵了。这时不是加工具,而是做决策:这个场景我要不要做?要做就得重新定义动作空间,不做就明确告诉用户边界在哪。

最大的体会是:

收敛不是限制,而是让问题先变得可解决。

七、写在最后

Agent 工程化落地的距离,可能比我们想象的要远。

这个距离不是从 GPT-4 到 GPT-5.5 的距离,而是从"我们有一个很厉害的技术"到"我们知道怎么用它解决一个具体问题"的距离。论文和框架让我们看到了可能性,但最后一公里没人替你走——它需要你坐下来,认真想清楚用户要什么、场景边界在哪、怎样才算"做完了"。

这件事没有捷径,但它是值得的。


你是怎么看的?你在 Agent 落地时,卡在代码更多,还是卡在问题定义更多?欢迎在评论区讨论。