写在前面
最近在做 Agent 开发相关的事情,踩了不少坑。准备把这段时间的感触和收获整理下来,大概会分四五个主题来讲。今天先从意图识别开始。
说实话,刚开始做的时候,我觉得意图识别不就是调用一次大模型,让它判断用户想干嘛嘛。结果真正跑起来的时候才发现,这玩意远没有想象中那么简单,用户的输入千奇百怪——病句、倒装句、代词、缩写、行业黑话等等,想到什么说什么。你要是不处理好这一步,后面的所有流程可能都是在沙子上盖楼。
这篇是“Agent开发手记”系列的第一篇,我想把自己关于在意图识别上的实践和思考整理下来。后续会聊聊规划执行、上下文管理、工具调用等话题。
从一个让我头疼的场景说起
前阵子遇到一个很典型常见的案例。用户再聊了一下云服务的话题后,突然来了一句:
“帮我找个更靠谱的”
就这么一句话。缺主语宾语,“靠谱”还是一个主观判断词。Agent 该怎么理解?是找个更靠谱的云服务商?还是找个更靠谱的技术方案?还是更靠谱的技术架构?
我当时的第一反应是:这有啥难的,让大模型推理一下不就行了。结果发现,大模型确实能猜,但猜对猜错全靠运气。而且更麻烦的是,这种模糊输入不是个例,有时候用户问问题就是这么随意。
意图识别不是给用户输入贴个标签就完事了,它决定了三件事:
加载哪套Prompt / 业务规范
往上下文窗口中塞什么内容
调用哪个工具,进入哪个业务流程
加载哪套Prompt / 业务规范。