项目中有一个参数cpeModel ,是固定的枚举项,希望在大模型询问参数时,给出固定的选项,在
Tool 参数上,描述一下:
1 | @ToolParam(description = "必须让用户确认选择cpeModel,可选值只能是CPE2;CPE6;CPE6CF9;CPE15;CPE15CF4;CPE19其中一个") @NotNull String cpeModel |

这样就达到了效果,从没有出现幻觉现象。
最近在项目中引入skill,系统提示词大幅减小,却出现了幻觉
模型输出类似:
CD65_CPE_StandardCD65_CPE_AdvancedCD65_CPE_QualityCPEv2CPEv3CPE-AI
从当前项目代码和 skill 契约来看,这些都不是正式允许值,因此属于幻觉式扩展。
这就奇怪,现在的Tool定义上也有,而且在SKILL.md文件中也特意说明
1 | 如果用户尚未提供 `cpeModel`,你必须只展示正式允许值列表,并要求用户从中选择。 |
虽然这样写了,但有时还是会幻觉,特地还写了一个tool,强制输出枚举项
在SKILL.md里面写上当需要枚举参数确认时,调用这个tool来确认
可过两天测试又正常了,不再需要这个参数确认的tool


最近又有一个新词叫:Harness Engineering
Prompt Engineering管的是「说什么」,Context Engineering管的是「知道什么」,Harness Engineering管的是「在什么环境里做事」

技术上来说,Harness 是包裹在 AI Agent 外面的那层基础设施,负责管理:
工具调用(Tool Use)
上下文记忆(Context / Memory)
错误重试(Retry)
人工审批节点(Human-in-the-loop)
架构约束和代码规范检查
主要就是来应对模型的幻觉和执行的漂移
模型的幻觉
指模型生成内容时,编造出看似合理但事实上错误、无依据的信息。
根源:大模型本质是概率生成器,它在“续写”时没有内置的事实核查机制;训练数据中的偏差、知识截止后的新事实、过度自信的生成都会导致幻觉。
表现:在事实性问答、代码生成、逻辑推理中常见,尤其在模型不确定时反而会“自信地胡说”。
执行的漂移
指在复杂任务(尤其是多步、长周期、与环境交互的任务)中,模型逐渐偏离原始目标、违反约束或进入无效状态。
根源:自回归误差累积、缺乏全局规划、对中间反馈的误判。
表现:例如Agent在调用API时循环调用、智能体在完成多步任务时忘记最初指令、模型输出逐渐超出安全边界等。