常见痛点:Skill经常遇到的现象——“规范写进文档了,上下文也说得很清楚,提示词又强调了,但智能体却视而不见,仍然莫名其妙胡来”……一遍遍优化也没什么用,甚至越优化偏差越大,烦死了。
——这种现象的根源,通常不在某一个点,而是参数、Skill 描述方式、上下文等多重因素叠加的结果。
拆成几层来排查:
1. 参数问题(最直接的怀疑对象)
如果你没改过 Temperature,vibe coding工具大模型默认的 0.5 对“遵守规范”来说其实偏高了。0.5 意味着它仍有不小的概率去“自由发挥”,而不是死守文档。
•验证方法:直接把 Temperature 降到 0.2 甚至 0.1 再跑几次。如果规范被遵守了,那就是参数问题。
•连带说明:Top-P 一个道理,不过一般只要 Temperature 够低,随机性就压得住。
2. Skill 描述的“强制力”不足(更隐蔽的深层原因)
这是非常常见的坑。智能体“读”你的 Skill 描述,但它只当参考,不视作必须执行的代码。
•反面例子(太软):“建议遵循命名规范”“通常使用驼峰命名”
•正面例子(带约束):“必须遵循 / 强制要求:所有函数名必须为驼峰式。如果不符合此格式,视为无效输出”
为什么要写得这么绝对? 因为大模型很擅长“找借口”,你写得软,它遇到冲突时就会选择忽略。直接声明“不符合 X 条件即为错误”,它会重视得多。
3. 调用链与上下文截断(最容易被忽略)
“参考文档里一再强调”但被忽视——如果这份文档是放在引用文件里,或是多轮对话后智能体记忆模糊,很可能是上下文太长,被截断或权重稀释了。
•症状:前几轮守规矩,聊深了开始乱来
•对策:把核心规范直接写进 Skill 的 System Prompt 里,别只放在附件或对话历史中间。
或者如果skill.md和参考文档已经行数过多,那么就一定要在skill任务流程设计上明确要求按你设计的“渐进式披露”阶段来,文档只在每个阶段性任务开始前才读取,并且保持各阶段文档不超过模型上下文大小限定,防止AI因为“听一半话就行动”或“工具性记忆”只有你讲话篇幅的一半,而造成各种“不听话”。复杂的skill,分段任务是更可行的。
4.提示词、大模型设定、上下文、参考文档等的内容间相互冲突(复杂流程最常见)
这也是常见的原因,特别是你优化过几轮skill以后,还是在发起的不同对话里优化的,一旦需要读取的内容长于模型上下文限定,AI就可能“断章取义”,几次断章取义间就容易出来互相冲突与矛盾的规范描述。这种情况下skill复现结果不稳定就很正常了。
给一个排查清单:
1. Temperature 先降到 0.1~0.2,跑 5 次看稳定性
2. 把 Skill 描述里的“建议”全部换成“必须”“强制”“否则视为无效”
3. 核心规范从附件挪到 Skill 的固定指令区
4.每个任务阶段后都加一个质量审核任务和相应的规范,确保输出符合既定约束
5,复杂流程务必核对各规范文档间的一致性
一般来说,这几步都做好了,AI的瞎搞基本能压住。