技能教程 · 代理
机器层说明书:索引、包、一个循环
本站是按代理优先设计的:一份 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 写明白话边界,改作那篇讲商品化打法。