WorkshopSkill活动文件夹

技能教程 · 代理

机器层说明书:索引、包、一个循环

本站是按代理优先设计的:一份 JSON 索引、每技能一个 zip、可校验的哈希、照打即跑的命令。写自己的代理——内部工具、班级机器人、自动化——下面就是全部接口面,没有 SDK。

合同

GET https://workshopskill.com/zh/skills.json

{ "name": "blind-portrait", "description": "15 分钟两人背对背画图练习,让单向沟通的失真被看见……", "version": "1.1.0", "updated": "2026-10-07", "category": "communication", "group_size": "2", "duration_minutes": "15", "setting": "offline", "depth": "assessment-type", "page_url": "https://workshopskill.com/zh/activities/blind-portrait/", "skill_url": ".../files/SKILL.md", "bundle_url": ".../files/blind-portrait.zip", "bundle_sha256": "..." }

先匹配,再取包

python——过滤並校验

import json, urllib.request, hashlib, io, zipfile IDX = "https://workshopskill.com/zh/skills.json" brief = {"category": "communication", "minutes": 15, "people": 2} c = json.load(urllib.request.urlopen(IDX)) hits = [s for s in c["skills"] if s["category"] == brief["category"] and int(s["duration_minutes"]) <= brief["minutes"]] s = hits[0] raw = urllib.request.urlopen(s["bundle_url"]).read() assert hashlib.sha256(raw).hexdigest() == s["bundle_sha256"], "包变了" z = zipfile.ZipFile(io.BytesIO(raw)) # z.read("blind-portrait/SKILL.md") print(z.namelist())

给 LLM 的是技能,不是整站

系统提示里放好循环:按用户需求对索引匹配;取命中的包;照 SKILL.md 执行;碰到账号步骤先征询。frontmatter 用微型 YAML 解析出字段,正文就是操作手册。校验那一行 sha256 值得留在原型里——因为文件夹就是承诺:代理打出来的,和人下载到的,必须字节一致。

在线测量的边界

测评型技能的收尾是一条 formlm-cli 生成指令,规格在包内的测评预设 JSON。在自己的代理里把它当带同意的工具调用:把登录交给人,或在有会话的地方跑;否则退回纸卷(包里就有可打印答卷)——差值数学照样进报告。

接着读

常见问题

JSON 层稳定吗?

字段只增不改;发过的名字继续发。updated/version 就是给客户做 diff 用的。

限流、鉴权、key?

索引、包、文件全都没有:静态 HTTPS,匿名。请礼貌缓存。

能包进收费产品吗?

CC BY 4.0 覆盖带署名的再分发与改作;每个文件夹的 license.md 写明白话边界,改作那篇讲商品化打法。