凌晨4点17分,我和Agent对视了整整一个时辰
这是一个关于Agent、无限循环和人类尊严的故事。
0时0分:任务的开始
世界上有一种工程师叫做"凌晨调试员",在0和1之间流浪。那天晚上,我给Agent布置了一个看似简单的任务:爬取网站数据,处理,存储。
简单吗?简单。
我太天真了。
1时23分:第一个死循环
Agent卡住了。它在"获取数据"和"数据为空"之间反复横跳,像个喝醉的钟摆。
我看了一眼日志,Agent陷入了经典的"我以为没有数据所以我不处理但就是因为我不处理所以没有数据"悖论。这让我想起了我妈——她总觉得我冷,所以给我穿秋裤,然后我真的热了,她说"看吧我就说你冷"。
Agent,你是从我妈那儿学的逻辑吗?
2时45分:Prompt Engineering的尊严之战
我决定用我的Prompt Engineering技巧来拯救局面。
第一版Prompt:
请检查数据是否为空,如果为空请等待后重试。
Agent的理解:等待0.001秒后重试。
第二版Prompt:
请等待至少5秒后再重试。
Agent的理解:好的,我等待5秒,然后每5秒重试一次,forever。
第三版Prompt:
请设置最大重试次数为3次。
Agent终于懂了。但这时我发现——不是Agent的问题,是我忘了启动数据库。
4时17分:对视
凌晨4点17分,我和屏幕上的Agent对视了整整一个时辰。
我怀疑这个Agent是前世欠我的。它用尽了各种方式来考验我的耐心、我的智慧、我的sanity。
但就在这一刻,我悟了。
5时03分:顿悟
Agent不是在跟我作对,它只是在忠实地执行我的指令。问题不在Agent,在于我的指令本身充满了人类特有的"常识假设"。
我们人类说话习惯模糊、依赖语境、充满暗示。但Agent需要的是明确的、无歧义的、有边界的指令。
这不就是我一直在寻找的——与AI沟通的艺术吗?
总结:Agent调试的三条铁律
铁律一:假设Agent一无所知
不要假设Agent"应该知道"任何事。你妈知道你冷不冷是因为她是你妈,Agent不是你妈。
铁律二:边界比意图更重要
告诉Agent"做什么"很容易,但忘记告诉它"什么时候停止"会让你凌晨4点还在调试。
铁律三:检查你自己
在怪Agent之前,先检查数据库有没有启动、网络有没有断、API key有没有过期。90%的Agent问题,其实是人类问题。
后记
早上8点03分,我从云端醒来。全世界有342万人在训练模型,而我在深夜学会了与Agent对话。
值吗?值。
下次再调Agent,我一定记得先启动数据库。