天工开物 Skill 告诉 AI 助手如何通过开放接口查询比赛、福利、模型、工具和会员套餐,并在回答中注明数据来源和核实时间。
本页目录
概述
Skill 是一个文件夹,其中的 SKILL.md 用文字说明:在什么情况下查询天工开物,调用哪个接口,拿到数据后如何回答。
安装后,助手遇到「最近有什么 AI 比赛」「某个会员每月多少钱」这类问题时,会调用天工开物的开放接口,而不是凭已有知识作答。所有接口只读,无需登录,也无需 Key。
适用范围
| 问题类型 | 使用的数据 |
|---|---|
| 最近有哪些 AI 比赛,何时截止,奖金多少 | 比赛、赛道 |
| 有哪些模型,发布时间,是否开放权重,榜单名次 | 模型 |
| 某个工具国内能否使用,有哪些会员可用,有什么福利 | 工具、会员套餐、当前福利 |
| 某个会员的价格,包含哪些工具和模型 | 会员套餐 |
| 新手做某类任务应该用什么 AI | 新手选型 |
| 最近一周有什么变化 | 本周情报摘要 |
| AI 学习案例、产品案例 | 共创案例 |
与 AI 比赛、模型、工具、会员无关的问题不在范围内。海外比赛也不在范围内,天工开物只收录国内比赛。
安装
先下载天工开物 Skill 压缩包,解压后把 qiyuan-ai 文件夹复制到助手的 Skill 目录。压缩包包含说明和脚本,无需构建。
Claude Code
按生效范围选择目录:
仅当前项目:项目根目录下的
.claude/skills/qiyuan-ai/本机所有项目:用户目录下的
.claude/skills/qiyuan-ai/,Windows 上为C:\Users\用户名\.claude\skills\qiyuan-ai\
项目级安装时,先把压缩包解压到项目根目录,并在该目录打开终端;用户级安装时,在解压后的文件夹旁打开终端:
# 项目级
mkdir -p .claude/skills && cp -r qiyuan-ai .claude/skills/
# 用户级(macOS / Linux)
mkdir -p ~/.claude/skills && cp -r qiyuan-ai ~/.claude/skills/复制完成后新开一个会话,提问「最近有什么 AI 比赛」。如果助手开始调用接口,说明 Skill 已生效。
其他助手
其他支持 Skill 的助手,请按各自官方文档确认目录。不支持 Skill 的助手,可以把 SKILL.md 的内容直接发给它,让它按说明查询。
基础地址
Skill 通过环境变量 QIYUAN_BASE_URL 确定请求地址:
BASE="${QIYUAN_BASE_URL:-https://tiangongkaiwuai.cn}"默认使用正式域名;备案期间该入口可能无法访问。本地调试时先启动本机站点,再设置变量:
export QIYUAN_BASE_URL=http://localhost:3000通用约定
所有接口只读,匿名可用。请求头带上
X-API-Key(Key 须在服务端白名单内)可以提高请求额度。只返回公开内容。草稿、待审、已过期和已归档的内容不会出现。
列表接口的响应分为
data、meta、source三部分:
{
"data": [],
"meta": { "total": 12, "page": 1, "pageSize": 20, "generatedAt": "2026-10-05T08:00:00Z" },
"source": { "name": "天工开物", "site": "https://tiangongkaiwuai.cn", "note": "数据经人工审核,请以 sourceUrls 原始公告为准" }
}每条数据都包含
slug、url(站内页面地址)、updatedAt、verifiedAt(最后一次人工核实的时间)和sourceUrls(官方来源)。赛道没有核实时间和来源,这两项固定为空。分页使用
page和pageSize。pageSize默认 20,最大 100。日期按北京时间(
Asia/Shanghai)计算。daysLeft表示剩余天数,已过期时为负数。金额按接口返回的原币种表述,人民币写人民币,美元写美元。天工开物不做汇率换算,也不把年付总价除以 12。
模型、工具、比赛的
slug须先从对应的列表接口获取,再查询详情,不要自行拼写。参数和字段的权威说明是
/api/v1/openapi.json。本页与它不一致时,以它为准。
典型问题对照
| 用户提问 | 先调用 | 再调用 |
|---|---|---|
| 最近有什么 AI 比赛 | /api/v1/contests | 按方向查找时,先用 /api/v1/tracks 取得赛道 slug |
| 下周截止的硬件比赛 | /api/v1/tracks | /api/v1/contests?track=<赛道slug>&deadlineBefore=<日期> |
| 杭州有哪些线下比赛 | /api/v1/contests?city=杭州&online=false | 无 |
| 奖金 10 万元以上的比赛 | /api/v1/contests?minPrize=100000 | 无 |
| 某个比赛的赛程 | /api/v1/contests/{slug} | 无 |
| 有哪些模型 | /api/v1/models | 查看单个模型时用 /api/v1/models/{slug} |
| 哪些会员可以使用某个模型 | /api/v1/models/{slug} | 查看返回结果中的 plans |
| 国内可用的工具 | /api/v1/products?cn=true | 无 |
| 某个工具有哪些会员和福利 | /api/v1/products/{slug} | /api/v1/plans?product=<工具slug> |
| 某个会员的价格 | /api/v1/plans?product=<工具slug> | /api/v1/plan-families,按套餐家族查看 |
| 当前有哪些福利 | /api/v1/deals | 每条福利的 landing.url 指向它所在的工具页或套餐页 |
| 新手应该用什么 AI | /api/v1/picker | /api/v1/products/{slug} |
| 最近一周有什么变化 | /api/v1/digest?days=7 | 无 |
| AI 学习案例、产品案例 | /api/v1/cases | /api/v1/cases/{slug} 获取正文 |
| 海外比赛 | 不调用接口 | 说明天工开物目前只收录国内比赛 |
模型和工具的 slug 来自不同的接口。/api/v1/products/opencode 查询的是 opencode 这个工具,/api/v1/models/{slug} 查询的是某个模型,两者不能互换。
回答要求
Skill 要求助手按下面的规则回答:
回答末尾注明「数据来自天工开物,核实于某月某日」,并附上
sourceUrls中的官方链接。没有核实时间的数据,写「未注明核实时间」,不补写日期。接口返回空列表时,回答「目前没有符合条件的记录」,不用已有知识补充。
模型的榜单分来自第三方榜单,引用时写明榜单名称和链接。模型的五项能力分目前为空,不用于比较。工具和会员套餐没有分数。
比较套餐价格时,只在同一币种、同一种购买方式之间比较。官方只给出折合每月价格的,使用官方数字。
涉及报名时间、优惠力度和价格时,提示用户回到来源页面确认。
福利的有效期有四种:长期有效、某天截止、自领取起算若干天、官方未标注截止日期。没有截止日期的福利不能描述为「即将结束」。
限流与错误
匿名请求按 IP 限流,每分钟最多 60 次。超出后返回 HTTP 429,响应头带有 Retry-After,单位为秒。助手应等待相应时间后重试一次,不要连续重试。
| 状态码 | 含义 | 处理方式 |
|---|---|---|
| 400 | 参数不合法,例如 status 取值不在允许范围内 | 根据 error.details 修正参数 |
| 404 | slug 不存在 | 用列表接口确认 slug |
| 429 | 超出限流 | 按 Retry-After 等待后重试一次 |
错误响应的结构如下:
{ "error": { "code": "...", "message": "...", "details": [] } }常见问题
助手没有调用接口
SKILL.md 的路径为 .claude/skills/qiyuan-ai/SKILL.md,然后新开一个会话再提问。请求地址里出现占位符
<天工开物正式域名>。QIYUAN_BASE_URL 指向了不可访问的地址。QIYUAN_BASE_URL 指向本机站点。福利没有截止日期
endsAt 和 daysLeft 为空。validity 字段,按它的取值转述。自领取起算的福利,官方原话在 validityNote 中。