技能库(Skills)
默认情况下,踏海只熟悉 Paper/Bukkit 那套 API。但很多需求要用到额外的库或玩法套路——比如接 WebSocket、对接某个前置插件、套用一种成熟的经济/计分模型。技能库就是为此而生:把这些「额外能力」打包成可挂载的 Skill,挂上之后,AI 生成时就能照着这套资料来写。
一句话:Skill = 给 AI 临时加挂的「能力包 / 参考资料」。 挂了哪些,生成就多懂哪些。
技能从哪来
所有技能实时来自社区仓库 superwfox/TAHAI-Skills,由 GET /api/skills 拉取展示。也就是说技能库是开放共建的——任何人都能贡献新技能(见下文「贡献你自己的技能」)。
怎么挂载技能
进入 技能库页(/skills),或在对话页点开技能抽屉:
- 所有技能以**卡片(手牌)**形式平铺,点卡片查看它的能力说明、适配核心/版本、文件结构。
- 点选即把它加入「已挂载」,拖动可调整挂载顺序(靠前的优先级更高)。
- 选择会记在你本地浏览器(
localStorage),下次进来还在。 - 之后正常发起生成即可——挂载的技能会自动带进这次生成。
不用全挂。只挂这次需求真正用得上的:挂太多反而稀释上下文、可能拖偏生成。
挂载后,生成时发生了什么
发起生成时,前端把已挂载的技能 id 列表(skillIds)一起发给 /api/generate/plan。后端 getSkillBundles 按 id 拉取每个技能的完整内容(KV 缓存 30 分钟),存进任务状态,在规划与逐文件生成阶段注入 AI 上下文。于是 Planner 和各 Generator 就能「看着这份资料」来排文件、写代码。
一个技能内部由若干条目组成,分两类:
| 类型 | 作用 |
|---|---|
| gen(功能) | 带一个生成器(fileGen)的条目,指导 AI 生成对应的代码文件(如某个封装类、对接层)。 |
| ref(资料) | 纯参考资料(API 说明、用法约定、示例),只喂给 AI 理解,不直接产文件。 |
技能还会声明适配的 coreTypes / mcVersions 等元信息,方便你判断它适不适合当前项目。
贡献你自己的技能
技能库是社区共建的,你也可以上传:
- 登录后,在技能库页用上传入口提交你的技能文件(前端会打包好)。
- 后端做严格校验,然后用机器人账号自动在 TAHAI-Skills 仓库开一个 PR,并 @ 上你的 GitHub。
- 维护者合并后,所有人都能在技能库里看到并挂载你的技能。
为防刷 PR,上传有每用户 60 秒一次的限频。
小结
- 技能库 = 可挂载的能力/资料包,扩展 AI 在默认 Paper API 之外的「见识」。
- 像安排手牌一样挑选 + 排序挂载,选择存在本地。
- 挂载的技能在规划和生成阶段注入 AI 上下文,分 gen(产文件)/ ref(纯资料) 两类。
- 开放共建:登录即可上传,后端自动开 PR。