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

这样就达到了效果,从没有出现幻觉现象。
最近在项目中引入skill,系统提示词大幅减小,却出现了幻觉
模型输出类似:
• CD65_CPE_Standard
• CD65_CPE_Advanced
• CD65_CPE_Quality
• CPEv2
• CPEv3
• CPE-AI
从当前项目代码和 skill 契约来看,这些都不是正式允许值,因此属于幻觉式扩展。
这就奇怪,现在的Tool定义上也有,而且在SKILL.md文件中也特意说明
如果用户尚未提供 `cpeModel`,你必须只展示正式允许值列表,并要求用户从中选择。
禁止补充任何额外示例、行业常见名、产品名、历史名、猜测值,禁止使用“常见模型包括”“例如”“或者其他模型名称”这类会诱导扩展的表达。
固定回答格式:
请从以下正式 cpeModel 中选择一个:
- CPE2
- CPE6
- CPE6CF9
- CPE15
- CPE15CF4
- CPE19
虽然这样写了,但有时还是会幻觉,特地还写了一个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时循环调用、智能体在完成多步任务时忘记最初指令、模型输出逐渐超出安全边界等。