关于 classify
classify 是使用 classifier.dev API 对文本进行分类的技能,面向需要在将文本纳入上下文前筛选或整理内容的 Agent。它支持批量、多个维度和多标签请求,并要求谨慎处理隐私、置信度及失败回退。
主要功能
- 01按自定义标签分类文本
- 02批量处理最多 1,000 条输入
- 03支持多维度与多标签模式
- 04按置信度标记结果并筛选
- 05失败时按相同标签进行本地判断
适用场景
- 01将搜索结果按主题分类后再阅读
- 02从文件中批量筛选相关文本
- 03按多个维度整理文本
- 04敏感文本无法发送时进行本地判断
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ dyrits/ skills --skill classify安装后在 Claude Code 中输入/classify确认已加载。
附带文件agents/openai.yamlapm.yml
详细介绍
分类
将文本放入上下文前,使用 classifier.dev 对其进行分类。以编程方式从文件或搜索结果中收集输入,批量发送,然后读取值得保留的条目。对于已在上下文中的少量条目,除非用户要求 API 判定,否则请自行判断。注明判定来自哪个来源。不同 API 层级无法保证每次调用的标签或分数完全一致。
文本会离开本机并发送给第三方 API,因此只发送你愿意粘贴到公开表单中的文本。如果输入包含秘密或私人信息,请使用相同标签在本地进行分类,并注明判定是你自己的判断;如果必须获得 API 判定,则请求用户提供已删去敏感信息的输入。
步骤 1:确定标签
/classify <text> [option, option, option] 同时提供文本和标签。在构建请求前,先选择单标签分类、独立维度或多标签标注。若未提供标签,则为每组编写 2 到 100 个不同且描述清晰的标签,每个标签最多 200 个字符。
对于单标签分类,应确保标签完整划分问题:每段合理的文本都恰好落入一个标签。对于偏离主题的输入,添加 none of these;对于证据可能不足的情况,添加 unknown。对每个维度也采用此规则。多标签可以重叠。
如果标签不是用户提供的,请在报告中注明你选择的标签。
使用 instructions 来定义含糊不清的标准,最多 4,000 个字符。如果判定结果显示缺少类别或标准不明确,请修订并解释变更。比较结果时应固定标准;反复运行直到出现理想答案会使结果产生偏差。
第 2 步:调用
使用 POST https://classifier.dev,并设置 content-type: application/json。普通自由文本请求无需密钥,但匿名代理流量可能需要已充值工作区的密钥。根据请求形式选择请求体:
| 你要处理的内容 | 请求体 |
|---|---|
| 一段文本、一组标签 | {"input":"…","labels":["a","b"]} |
| 最多 1,000 段文本、一组标签 | {"inputs":["…","…"],"labels":["a","b"]} |
| 同时使用多组标签对文本进行分类 | {"items":["…"],"dimensions":{"topic":["a","b"],"urgency":["low","high"]}} |
| 文本或批次中的所有适用标签 | {"inputs":["…"],"labels":["a","b"],"multi":true,"max_labels":2} |
input、inputs 和 items 只能三选一。维度会替代顶层的 labels,且不能与 multi 或 max_labels 组合使用。若某个维度需要特定的判断标准,请将该维度的标签数组替换为 {"labels":["a","b"],"instructions":"…"}。
默认使用 tier: "fast"。当单标签判断需要服务端复核时,选择 smart:对于置信度低于 0.7 的答案,它会使用推理模型重新判断,并独立处理每个维度。升级处理后的答案会带有 escalated: true,置信度和分数为 null,并附有 unscored 说明。如果升级处理失败,则保留原始答案,并由 usage.escalation_failed 记录。多标签请求会忽略 tier,因此请使用 fast。
使用 JSON 编码器序列化请求体,并通过标准输入将其传给 curl,使用 --data-binary @-。不要将输入文本放入 shell 命令字符串中,以免引号和命令替换失去数据属性。请按以下限制进行批处理,不要对每个项目循环发起单独调用。
普通文本路径每段输入最多允许 32,000 个字符,请求体最大为 1 MB,最多可包含 1,000 段输入和 20 个维度;维度最多可进行 1,000 次判断,按输入数乘以维度数计算。公开的 smart 请求最多支持 200 段输入或 200 次维度判断。
每 IP 的免费配额按分类次数计算,而非 HTTP 调用次数。包含 400 段单标签输入的批次计为 400 次分类;维度则按每次判断计数。
| 层级 | 每分钟 | 每天 |
|---|---|---|
fast | 3,000 | 20,000 |
smart | 200 | 2,000 |
批次必须完整符合剩余配额。共享标签集配额和支出限额可能会在达到这些上限前拒绝请求。对于更长的文本、付费处理或配额详情,请在选择请求路径前阅读实时 API 参考。更长的默认模型输入需要已充值的 fast 层级长上下文处理;请保留原文,不要默默截断。
请求失败时,请查看状态码以及 JSON 中的 error、code、action 和 retryable 字段(如有)。修正无效请求;如遇资金或访问限制,请如实说明。一次失败请求最多重试一次,以先发生的失败为准。对于 429,请遵循 Retry-After,且仅在延迟时间以秒计时重试。对于暂时性网络或 5xx 错误,请在重试前退避;如果提供了 Retry-After,请遵循该值。遇到 HTML 错误时,如有状态码和请求 ID,请一并报告。如果请求仍然失败,请报告实际原因;在可行时,使用相同标签进行本地判断,并注明这是你的判断,不要编造置信度。如果无法在本地审查输入,请说明哪些内容仍未分类。
步骤 3:报告判定结果
将 results[i] 与原始输入顺序对应起来,并按模式读取:
| 模式 | 结果字段 |
|---|---|
| 单标签 | results[i].label、.confidence、.scores |
| 多维 | results[i].dimensions[name].label、.confidence、.scores |
| 多标签 | results[i].labels 和 .scores;没有单数形式的 label 或 confidence |
使用阈值前,先检查 confidence 和 scores 是否为 null,即使在 fast 模式下也一样。将 null confidence 报告为“未评分”,并在需要置信度门槛时将其转交审核。若数值型 confidence 低于 0.7,则将判定标记为较弱。scores 表示在所提供标签之间的选择情况;它们无法确定类别是否匹配,也不能证明结果正确。保留结果对应的服务 model,以便追踪升级处理和回退回答。
多标签结果会列出分数至少为 0.7 的标签,按分数从高到低排列,并在提供 max_labels 时受其限制。报告每个标签及其分数。如果调用方指定了其他阈值,请使用完整的分数映射;标签列表为空也是有效结果。
筛选时,倾向于保留。否定判定是指调用方指定为丢弃项的标签(irrelevant、none of these)。如果标签超过两个,请先询问要丢弃哪些标签;在调用方说明之前,保留所有项目。除非调用方提供阈值,否则只丢弃数值型 confidence 至少为 0.8 的否定判定。保留肯定、低置信度和未评分的项目,以供阅读或审核。对于多标签筛选,按照调用方的标签规则使用对应分数,并保留不确定的项目。
报告判定结果,而不是 JSON。单条文本占一行(label · 0.94)。批量结果使用表格,或按标签分组列出项目;如果调用方要求筛选,则列出保留的项目和丢弃数量。
维护此技能时,请将请求和响应规则与已发布的上游技能及实时 API 参考进行比较。