关于 kernel-metadata
kernel-metadata 是用于创建、校验和修复 Kaggle notebook/kernel 的 kernel-metadata.json 的技能,面向推送或管理 Kaggle 内核的用户。它涵盖字段、数据源附件及隐私和网络设置等校验要点。
主要功能
- 01创建和修复 kernel-metadata.json
- 02校验 ID、代码文件与语言字段
- 03检查内核类型和隐私、网络设置
- 04配置 Kaggle 数据集及内核来源
- 05识别不支持的元数据字段
适用场景
- 01准备 Kaggle notebook 的推送元数据
- 02排查元数据与本地代码文件不匹配
- 03检查数据源附件及隐私设置
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill kernel-metadata安装后在 Claude Code 中输入/kernel-metadata确认已加载。
详细介绍
Kernel 元数据
概述
使用此技能为 Kaggle 笔记本/内核推送创建、验证或修复 kernel-metadata.json。保持元数据精简、明确,并与本地代码文件一致。
必需字段和常用字段
| 字段 | 用途 |
|---|---|
id | 完整的内核 ID,通常为 <owner>/<slug> |
id_no | 可用时填写数字 ID |
title | 易于理解的笔记本标题 |
code_file | 要运行的本地源文件 |
language | python、r 或 rmarkdown |
kernel_type | script 或 notebook |
is_private | 默认为 true |
enable_gpu | 默认为 false |
enable_internet | 默认为 false |
dataset_sources | 附加的数据集引用 |
competition_sources | 附加的竞赛引用 |
kernel_sources | 附加的笔记本/内核引用 |
model_sources | 附加的模型引用 |
验证流程
- 确认
kernel-metadata.json是有效的 JSON。 - 确认
id使用预期的 owner/slug,并与目标 Kaggle 笔记本一致。 - 确认
code_file存在于传递给kaggle kernels push -p <folder>的同一文件夹中。 - 确认
language是python、r或rmarkdown之一。 - 确认
kernel_type与文件和执行模式相符:.ipynb对应notebook,脚本对应script。 - 确认隐私和网络设置是经过考虑的。默认设为私有且不启用网络更安全。
- 确认来源数组包含有效的 Kaggle 公开引用,且不包含本地文件系统路径。
- 在推送或拉取工作流之前加载
notebook-lifecycle。
来源附件
使用 dataset_sources、competition_sources、kernel_sources 和 model_sources 附加 Kaggle 资源。尽可能优先使用准确的 owner/slug 引用。对于竞赛笔记本,确保已附加竞赛来源,且竞赛规则允许使用所有相关数据/模型来源。
id 和浏览器 URL 构造
id 字段使用文档规定的后缀格式 owner/kernel-slug 标识 Kaggle 笔记本/内核。当 id 存在且有效时,Agent 可以据此构造浏览器友好的 URL:
https://www.kaggle.com/code/<owner>/<kernel-slug>
构造 URL 前请验证:id 中恰好包含一个 /,owner 和 slug 均非空,id 不是完整 URL,并且 slug 来自实际的 id,而不是根据生成的标题猜测得出。如果还存在 id_no,则在支持的 API 操作中将其视为稳定的数字标识符,但不要仅使用 id_no 构造浏览器 URL。
派生出的 URL 是基于文档规定的标识符后缀构造的实用浏览器路径,并非另行记录的 CLI 返回值。私有笔记本可能需要登录或相应权限;重命名或 slug 更改也可能导致旧的派生 URL 失效。
加速器和元数据
enable_gpu 是用于启用 GPU 的旧式/简单布尔字段,而 CLI 推送可以使用 --accelerator <ID> 指定加速器 ID。有效的加速器 ID 包括 NvidiaTeslaP100、NvidiaTeslaT4、NvidiaTeslaT4Highmem、NvidiaTeslaA100、NvidiaL4、NvidiaL4X1、NvidiaH100、NvidiaRtxPro6000、TpuV38、Tpu1VmV38、TpuV5E8 和 TpuV6E8。使用高端加速器或设置较长超时时间前请先提醒用户,因为这些设置可能消耗配额。
安全默认值
除非用户明确要求公开,否则保持 is_private: true。对于竞赛笔记本,保持 enable_internet: false,除非竞赛规则和可复现性需求允许联网。避免在元数据或笔记本源代码中嵌入密钥;对于敏感值,建议使用 Kaggle Secrets。
不受支持的元数据字段
Kaggle 的 kernel-metadata.json 不支持密钥或任意环境变量。不要添加 secrets、environment 或 env 等虚假字段。对于需要网络/GPU 隧道的工作负载,请改为验证受支持的字段:
{
"enable_gpu": true,
"enable_internet": true
}
不得将密钥作为元数据建模。如果 CLI 推送的已提交运行需要无需身份验证的连接,请重新设计工作流以避免使用密钥。
修复模式
- 缺少
code_file:确定预期的.ipynb、.py、.R或.Rmd文件,并明确设置该字段。 - 语言错误:仅在有歧义时,先向用户确认,再根据扩展名推断。
- 源数组损坏:移除本地路径,并替换为 Kaggle 数据集、竞赛、内核或模型引用。
- 可见性变更:将私有改为公开之前,必须获得明确确认。