打开 AI 扩展开发指导
查看或复制提供给 AI 编程助手的完整上下文
开始前准备
AI 需要在扩展的源码根目录中工作。按照下面四步准备即可。1. 新建扩展并记住安装位置
进入 个性化 → 项目设置,在扩展树顶部点击「新建扩展」。创建窗口底部会显示最终安装位置,例如:extension.json 中的 id。
2. 初始化程序
在扩展树中展开刚创建的扩展,选中「程序」,点击「初始化程序」。完成后,源码根目录里应该直接出现:3. 确认没有选错目录
点击「在终端中打开」或「在文件管理器中打开」。最简单的判断方法是:打开的这一层必须直接包含extension.json、package.json、src/ 和 sdk/。
| 选择的目录 | 是否正确 | 原因 |
|---|---|---|
.../AVG-Extensions/affection-toast-a1b2c3/ | 正确 | 这是单个扩展的源码根目录 |
.../AVG-Extensions/ | 太上层 | 里面可能有多个扩展,AI 容易改错 |
.../affection-toast-a1b2c3/src/ | 太下层 | 看不到清单、构建配置和本地 SDK |
.../我的游戏/extensions/.../ | 错误 | 这是游戏项目中的运行快照,不是完整源码 |
4. 用 AI 工具打开源码根目录
在 Codex、Cursor 等工具中选择“打开文件夹”,选中上面确认过的扩展目录。使用终端工具时,先进入同一个目录: 不会使用终端也没关系,直接使用“打开文件夹”即可。下面的命令只提供给习惯终端的用户。第一次使用的推荐提示词
把下面内容复制到 AI 编程助手,再把中间的功能需求替换成自己的内容:- 指导地址:告诉 AI 去哪里获取 LetsGal 专用上下文;
- 需求:描述要做什么;
- 完成要求:让 AI 构建代码并给出 Studio 验证方法。
在不同工具中使用
Codex
用 Codex 打开扩展源码文件夹,在新任务中粘贴上面的提示词。Codex 会自动读取当前目录中的文件,可以修改源码并运行构建命令。 如果使用终端版 Codex,先进入扩展目录,再启动 Codex:Claude Code
在终端进入扩展目录后启动 Claude Code,再粘贴同一份提示词:Cursor 或其他编辑器内置 AI
使用“打开文件夹”打开扩展源码目录,在 AI 聊天中粘贴提示词。确认聊天上下文对应的是整个扩展工程,而不只是当前打开的一个.tsx 文件。
先看看扩展可以包含什么
扩展不一定只有一个页面。它可以同时为创作者、剧本和玩家提供不同能力,你只需根据需求选择需要的部分。| 扩展中的部分 | 直观理解 | 常见例子 |
|---|---|---|
| 完整页面 | 玩家打开后占据主要画面 | 背包、任务列表、手机、图鉴、小游戏 |
| 常驻小界面或弹窗 | 叠在剧情画面上的小界面,也常被称为 HUD | 日期、属性条、任务追踪、获得物品提示 |
| 配置面板 | 创作者在 Studio 中调整扩展 | 标题、颜色、位置、数量、功能开关 |
| 剧本指令 | 剧本执行到这里时让扩展做一件事 | 新增任务、获得物品、改变好感度 |
| 进度数据 | 记住玩家在游玩中产生的状态 | 背包物品、任务进度、已解锁图鉴 |
| 快捷键与按钮 | 玩家主动触发扩展功能 | 按 J 打开任务页、点击图标关闭面板 |
| 自动响应 | 游戏发生某件事时自动工作 | 变量变化时弹提示、进入对话时显示工具栏 |
| 可视化界面联动 | Studio 负责排版,程序补充动态行为 | 按钮切页、刷新列表、修改文字和图片 |
| 替换系统界面 | 接管 Studio 原有的游戏页面 | 自定义标题、存读档、设置或对话框 |
你不需要记住这些功能对应的代码名称。只要把“谁使用、怎样触发、看到什么、是否保存”描述清楚,开发指导文件会告诉 AI 应该使用哪种扩展能力。
一个完整任务扩展会怎样工作
以任务扩展为例,各部分可以这样连在一起:- 创作者在配置面板中填写页面标题和每页显示数量;
- 剧本运行“新增任务”指令;
- 任务进度自动跟随存档保存;
- 画面右侧 HUD 提醒玩家有新任务;
- 玩家按 J 打开完整任务页面查看详情。
按方向继续指导 AI
第一版能运行后,可以用下面这些短提示词逐步完善,不必每次重新描述整个扩展。制作扩展的配置面板
配置面板是给项目创作者使用的。告诉 AI 每个选项的名称、默认值和用途即可。增加剧本可以调用的指令
Studio 把这类指令称为“扩展方法”。你不需要理解它的代码写法,只要说明指令名称、需要填写什么,以及执行后会发生什么。编写玩家看到的扩展页面
页面需求要同时说明内容、布局、交互和空状态,不需要先决定使用什么技术。其他常见方向怎么说
下面这些要求可以直接追加到你的提示词中:| 想增加的能力 | 可以这样告诉 AI |
|---|---|
| HUD 提示 | “新增任务时在画面右上角显示三秒提示,不要遮挡对话框。” |
| 快捷键 | “玩家按 J 打开或关闭任务页,并允许在输入按键设置中重新绑定。” |
| 自动响应 | “任务状态变化后立即刷新页面;重复打开预览不能产生多个提示。” |
| 当前存档数据 | “任务只属于当前存档槽位,读档后恢复到保存时的状态。” |
| 跨存档解锁 | “已解锁的图鉴在所有存档之间共享。” |
| 联动可视化界面 | “我已经做好 main-panel 界面,请保留排版,让程序更新任务文字和按钮状态。” |
| 替换系统页面 | “把这个页面作为自定义标题画面,同时保留开始游戏、设置和退出入口。” |
让 AI 修改已有扩展
修改已有功能时,告诉 AI 保留什么、改变什么:可以授权 AI 做什么
一般扩展开发只需要允许 AI 编程助手:- 读取当前扩展目录;
- 修改
src/、必要的配置和extension.json中非稳定字段; - 按锁文件安装依赖;
- 运行
package.json中已有的构建和测试命令。
- 修改
extension.json.id; - 手动修改
sdk/或dist/; - 删除整个扩展目录;
- 读取密钥或其他项目中的隐私文件;
- 发布到扩展工坊;
- 上传文件或调用外部服务;
- 创建 Git tag 或执行发布流程。
构建 AI 的修改
AI 编程助手通常会在终端执行项目自己的构建命令。默认程序扩展使用:npm run dev。如果 AI 反复尝试这个命令,提醒它重新读取 package.json 和扩展开发指导。
在 Studio 中验收
构建成功后,根据扩展类型逐项检查:剧本方法
- 在剧本中插入「调用扩展方法」Block。
- 确认能找到新方法,参数控件和默认值正确。
- 分别测试正常值、空数据和边界值。
程序 UI
- 在扩展程序预览中打开对应模块。
- 在主预览或调试画布中通过真实触发方式打开。
- 检查不同画面比例、空数据和内容较多时的布局。
- 反复关闭、打开和重启预览,确认没有重复监听或重复弹窗。
设置与存档
- 修改扩展设置,确认无需改代码即可生效。
- 保存游戏、改变数据后再读档,确认
slot数据正确恢复。 - 换一个存档槽位,确认数据不会错误串联。
- 对
shared数据确认它确实跨存档保留。
快捷键与系统界面
- 确认动作出现在输入按键设置中,并可以重新绑定。
- 测试键盘重复按下、界面已经打开和输入框聚焦等情况。
- 替换系统界面时,逐一检查标题、返回、存读档和设置入口。
AI 完成后应该告诉你什么
一份合格的完成回复应该包含:- 修改了哪些文件;
- 实现了哪些行为;
- 执行了哪些构建或测试;
- 构建是否成功;
- 哪些效果无法在终端确认;
- 你需要在 Studio 中怎样验证。
常见问题
AI 找不到扩展 API
让它先检查扩展目录中的sdk/index.ts 和 sdk/sdk-context.ts。本地 SDK 是当前扩展最可靠的类型来源。
如果目录中没有 sdk/、package.json 或 src/,通常说明还没有在 Studio 中初始化程序,或者打开的是项目发行物而不是扩展源码。
AI 修改了 dist/index.js
让它把修改移回 src/,再执行构建。dist/ 会被下一次构建覆盖,不是源码。
构建成功但 Studio 没变化
检查以下内容:- AI 修改的是 Studio 当前关联的本地扩展目录;
extension.json.entry指向实际生成的文件;- 扩展已经在当前项目启用;
- Studio 已刷新项目发行物;
- 扩展日志中没有加载错误。
AI 是否可以直接制作可视化界面
可视化界面 JSON 主要由 Studio 编辑器维护。AI 更适合编写 TypeScript 控制器、React 程序 UI 和扩展逻辑。只需要排版界面时,先用可视化编辑器制作,再让 AI 通过ctx.visualUI 增加动态行为。
下一步
第一次尝试可以从一个只有剧本方法和存档字段的小扩展开始。理解基本结果后,再增加 React UI、快捷键或系统插槽。阅读 Hello World
看一个同时包含方法、设置、存档和 UI 的完整例子
查找运行时 API
按功能选择 ExtensionContext 命名空间