最近用LangChain搭了个简单的客服Agent,发现一个头疼的问题。我明明在System Prompt里写了“如果知识库没有答案,请明确告知用户‘暂未收录’,不要编造”,结果模型还是会偶尔自由发挥,给出模棱两可或者完全错误的信息。我试过加大惩罚性描述,比如“这是严重错误”,但似乎效果不稳定。也试过用few-shot给几个“不知道就说不知道”的例子,但一旦对话轮次变多,它又开始飘。请问大家在实际项目里,是单纯靠Prompt硬约束,还是必须配合结构化输出(比如强制JSON字段)或者在外面套一层校验逻辑?感觉纯Prompt工程的上限就在这了,有点迷茫。