关于 llm-structured-output
LLM Structured Output 是一项技能,用于设计便于下游软件解析和校验的模型输出流程。内容涵盖结构定义、提示词约定、验证、恢复策略和可靠性风险。
主要功能
- 01定义精简的输出结构
- 02明确提示词约定
- 03严格校验解析结果
- 04规划重试和备用结构
- 05识别可靠性风险
适用场景
- 01为下游软件生成 JSON
- 02将数据提取为类型化对象
- 03生成函数或工具参数
- 04处理格式错误的模型输出
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ shipshitdev/ skills --skill llm-structured-output安装后在 Claude Code 中输入/llm-structured-output确认已加载。
附带文件plugin.json
详细介绍
LLM 结构化输出
构建结构化输出流程,让下游软件能够可靠地解析结果。
适用场景
- 让模型输出 JSON 或类型化对象
- 数据提取管道
- 函数或工具参数生成
- 为下游自动化提供约束的提示词
- 对格式错误的模型输出进行验证和重试
工作流
1. 从使用方入手
- 明确下游系统的具体需求
- 定义必需字段、可选字段、枚举值和限制
- 尽可能缩小架构的范围
2. 明确约定
- 告知模型预期的结构
- 清晰说明字段含义和约束
- 优先使用确定性格式,避免将散文与 JSON 混合
- 如果字段内容不固定,请通过类型、长度或示例加以限制
3. 验证所有内容
- 严格解析
- 在正确性至关重要时,拒绝未知或格式错误的结构
- 验证枚举值、范围、数组大小和嵌套对象
- 在验证完成前,将结构化输出视为不可信输入
4. 设计恢复路径
- 如果输出接近正确,使用验证错误进行重试
- 如果原始架构过于复杂,则退回到更精简的架构
- 记录无效输出以供检查
- 避免使用会掩盖模型错误的静默强制转换
5. 优化可靠性
- 将大型任务拆分为更小的结构化步骤
- 必要时,将推理与最终的机器可读输出分开
- 优先选择键名稳定、歧义少的架构
- 删除实际上没有用处的可选字段
规则
- 除非使用方需要,否则不要要求在 JSON 外添加 Markdown 代码围栏
- 不要在面向机器的负载中混入面向人的说明文字
- 优先使用枚举,而非自然语言类别
- 优先使用对象数组,而非编码后的字符串
- 有意定义可空性,避免无意为之
常见故障模式
- 架构对任务而言过于宽泛
- 必需字段是模型无法推断的
- 本应使用枚举的值却采用自由文本
- 嵌套输出缺少示例或约束
- 解析器接受错误数据,导致管道后续环节发生故障
输出
使用此技能时,请提供:
- 目标架构或结构
- 生成该结构的提示词约定
- 验证和重试方案
- 任何可靠性风险或边界情况
评论
支持 Markdown