用途:本技能围绕 DSPy 程序中的输出约束校验展开,主要记录旧版 dspy.Assert(硬约束,失败重试并回传反馈)与 dspy.Suggest(软约束,记录警告并继续)的用法,用于理解既有代码。
主要能力:说明两类约束的差别;解释回溯机制,即失败时把消息作为反馈注入签名并重试,默认 max_backtrack_attempts 为 2,可用 backtrack_module 指定目标模块;给出长度、格式、内容、列表、来源依据等校验示例;说明与优化器配合时 Assert 失败会重试或跳过样本,Suggest 作为软信号;全部重试失败会抛出 DSPyAssertionError,需在调用处捕获。
必要用法:约束需写在 dspy.Module.forward() 内,顶层调用不会触发重试;消息要写成可执行的指令而非简单错误描述。安装技能命令:npx skills add lebsral/DSPy-Programming-not-prompting-LMs-skills --skill <name>。
限制:dspy.Assert 与 dspy.Suggest 已在 DSPy 3.x 中移除,官方建议改用 dspy.Refine(迭代加反馈)或 dspy.BestOfN(独立采样),并改用奖励函数对整体输出打分。本技能仅作旧版 API 的存档,具体迁移细节可参考 /dspy-refine 与 /dspy-best-of-n。