首页/新闻资讯/正文详情

open-slide current-slide Skill 指南:用 current.json 精准定位 Agent 当前正在查看的幻灯片与元素

发布时间:2026/9/28 3:02:20 来源:云帆数科 栏目:资讯中心
open-slide current-slide Skill 指南:用 current.json 精准定位 Agent 当前正在查看的幻灯片与元素
【免费下载链接】open-slideA slide framework built for agents.项目地址https://gitcode.com/gh_mirrors/op/open-slide点击查看免费下载本指南以 open-slide 仓库中的 Agent Skill 文档 current-slide/SKILL.md 为核心讲解当用户说出这个页面、这张幻灯片、我正看的这页等指代性deictic表述时Agent 应如何通过 dev server 实时写出的node_modules/.open-slide/current.json文件来定位用户当前所处的幻灯片、页码乃至选中元素。读完本文你将掌握该文件的完整字段语义、读取时机、新鲜度判断规则、失效场景与端到端实现原理从前端 HMR 消息到 Vite 插件的原子写入从而在 open-slide 的 Agent 协作流程中避免改错文件这一最常见的错误。背景Agent 协作中的当前上下文难题open-slide 是一个为 Agent 构建的幻灯片框架详见仓库根目录 README.md开发者会直接对着 dev viewer 说修一下这个页面、把这里放大一点、我正看的那张图换掉——他们几乎不会说出slideId、页码或元素名。此时 Agent 面临一个信息缺口用户指的这里到底对应哪个文件、哪一页、哪一行 JSXcurrent-slideSkill 的答案非常直接不要反问先读文件。open-slide 的 dev server 在用户每一次导航切换幻灯片、翻页和每一次 inspector 选中点击元素时都会把最新的位置信息写入node_modules/.open-slide/current.json。这个文件就是用户现在在哪的权威实时游标是解开一切指代性表述的钥匙。current.json 是什么一条从浏览器到磁盘的数据链路从源码可以确认这条链路的两端。写入端是 dev server 注册的 Vite 插件currentPlugin位于 packages/core/src/vite/current-plugin.ts它通过server.ws.on(open-slide:current, ...)监听浏览器端通过 HMR WebSocket 发来的消息并把最新状态写入path.join(userCwd, node_modules, .open-slide)目录下的current.jsoncurrent-plugin.ts 第 69-70 行。该插件在 vite/config.ts 第 85 行 被装配进核心 Vite 插件链slidesDir默认取slides即用户项目根下存放幻灯片的目录。消息的发送端在浏览器渲染层页面级导航幻灯片路由 packages/core/src/app/routes/slide.tsx 第 160-167 行 在slideId / pageIndex / totalPages / slideTitle / view任一变化时通过import.meta.hot.send(open-slide:current, {...})上报导航状态元素级选中同文件中的SelectionReporter组件slide.tsx 第 1092-1107 行监听 inspector 的选中结果把line / column / tagName / text文本经空白压缩并截断到 120 字符随{ selection }一并发送。插件收到消息后做一层防御性校验非法slideId直接丢弃、pageIndex被钳制到[0, totalPages-1]、selection的字段逐个做类型与范围检查然后以先写current.json.tmp再rename的原子方式落盘避免 Agent 读到半截文件current-plugin.ts 第 132-139 行。文件路径相对于用户项目根目录即包含slides/与package.json的那个目录而不是相对于 open-slide 核心包本身。字段详解current.json 里每一项的准确语义一个典型的current.json内容如下示例取自原 Skill 文档{ slideId: q2-roadmap, pageIndex: 2, pageNumber: 3, totalPages: 8, slideTitle: Q2 Roadmap, view: slides, pagePath: slides/q2-roadmap/index.tsx, selection: { line: 42, column: 6, tagName: h1, text: Q2 Roadmap }, updatedAt: 2026-05-09T14:32:11.123Z }各字段语义如下字段含义使用要点slideIdslides/下的文件夹名直接作为/__slides/id/...系列 API 的参数或 URL 段使用写入端会校验其必须匹配SLIDE_ID_RE /^[a-z0-9_-]$/i见 slide-ops.ts 第 5 行非法 id 会被丢弃pageIndex0 起始的页码对应index.tsx中export default [Cover, Body, ...]数组的下标即index.tsx中的 page 数组位置pageNumber1 起始的页码用于向用户表达第 3 页共 8 页也对应 URL 参数?pN源码中由pageIndex 1计算而来current-plugin.ts 第 117 行pagePath幻灯片源文件相对路径直接交给Read/Edit工具使用由path.join(slidesDir, slideId, index.tsx)生成current-plugin.ts 第 109 行slideTitle幻灯片标题来自slide.meta?.title ?? slideIdslide.tsx 第 164 行即未显式声明meta.title时回退为文件夹名viewslides画布视图或assets资源管理器为assets时用户是在为该幻灯片浏览资源文件而非查看页面Agent 应把焦点转向资源而非页面 JSX浏览器端由 URL 参数?view决定slide.tsx 第 155 行selection用户在 inspector 覆盖层中选中的 JSX 元素未选中时为null见下方专项说明updatedAt最近一次导航或选中变化的 ISO 时间戳用于判断数据是否已过期stalenessselection 子字段的精确语义line1 起始与column0 起始指向pagePath内 JSX开标签的位置。这是权威句柄——Agent 必须对照源文件行而不是渲染后的 DOM 去匹配写入端在 current-plugin.ts 第 59-60 行 把line钳制为不小于 1 的整数、column钳制为不小于 0 的整数tagName是渲染后的 DOM 标签名统一小写h1、div、img并会被截断到 32 字符以内current-plugin.ts 第 52-53 行text是元素textContent的空白压缩、去首尾空白后截断到 ≤120 字符的文本片段用作确认找对了节点的 sanity check选中状态会在用户切换到不同幻灯片或页码时自动清空——写入端在检测到slideId或pageIndex变化时会把selection重置为nullcurrent-plugin.ts 第 111-113 行因此旧选中永远不会跨页残留。使用时机何时必须读 current.json应当使用的场景用户以指代性方式引用当前幻灯片/页面这个、这里、我正看的这页、我正在看的这张幻灯片、我在弄的那个用户引用某个具体元素这个标题、这张图、我刚才点的那个按钮、把这个收紧一点、改一下这个的颜色——如果selection非空它指向的就是用户所指的元素在反问哪张幻灯片或哪个元素之前先读这个文件在依据git log、最近编辑过的文件或最近创建的幻灯片文件夹去猜测之前先读这个文件。不应当使用的场景用户已显式说出幻灯片名如改一下q2-roadmap——直接用这个名字即可无需查文件apply-comments工作流已通过源码内的slide-comment标记定位文件它不需要这个 skill相关流程见 apply-comments/SKILL.md需要列出或发现幻灯片时——直接读slides/目录即可。核心纪律每一轮指代性对话都必须重新读取current.json是一个实时游标live cursor而不是关于对话的事实。用户会在你的两轮思考之间自由地切换幻灯片、页码和元素——包括在你做其他工作期间。因此 Skill 文档强调在每一轮使用指代性引用的新回合开始时都要重新读取该文件即使你在同一段对话中已经读过它你刚刚编辑完它指向的幻灯片用户的新消息听起来像是承接上一轮现在把它再调大一点、顺便把这个也修一下、继续。继续编辑恰恰是最容易踩坑的情况用户很可能刚刚导航到了另一张幻灯片或选中了另一个元素。若还信任上一次读取的值就会静默地改错文件。正确做法是重新读取后把这次的slideId/pageIndex/selection与上次用过的值做比对然后基于新值行动。经验法则如果updatedAt比你上一轮看到的更新那就是用户已经移动位置的正常信号——无需追问直接切到新的slideId/pageIndex/selection。新鲜度判断把 updatedAt 当缓存看待updatedAt是用户最后一次导航的时间。Skill 文档给出的分级策略新鲜约 5 分钟以内直接信任它。打开pagePath开始干活超过约 5 分钟编辑前先与用户确认。dev server 可能已不在运行用户也可能已切换了上下文数小时乃至数天前忽略它直接询问用户指的是哪张幻灯片。文件缺失时的处理以下两种情况会导致current.json不存在dev server 从未在任一幻灯片上被打开过dev server 从未运行过。此时不要自行创建该文件也不要凭空猜测。正确做法是询问用户指的是哪张幻灯片或建议用户先在 dev server 中打开该幻灯片。实战示例示例一页面级指代——收紧这个页面的间距读取node_modules/.open-slide/current.json检查updatedAt是否足够新读取pagePath如slides/q2-roadmap/index.tsx定位 default 导出数组中pageIndex对应的那个页面组件参考slide-authoringskill 中的间距规则见 slide-authoring/SKILL.md就地编辑该页面。如果current.json缺失或已过期可以这样回应您想收紧哪张幻灯片、哪一页的间距dev server 最近没有发布当前页信息。示例二元素级指代——把这个再放大一点读取node_modules/.open-slide/current.json若selection非空用户指的就是该元素。读取pagePath跳到selection.line在附近找到对应的 JSX 开标签并用selection.text片段和tagName确认无误编辑前先查阅slide-authoring中的字号阶梯与布局规则就地编辑该 JSX 节点。如果selection为null则回退到上面的页面级流程——并考虑询问您指的是哪个元素用户用了指代性表述但还没有在 inspector 中选中具体元素。源码级深入写入端如何保证数据可信理解了读取契约后再看写入端的实现current-plugin.ts 全文仅 143 行可以发现几处为Agent 读取安全服务的细节消息即最新状态插件每次收到open-slide:current消息时都以cached为基底合并新值并整体覆盖写盘天然保证每次导航/选中都产生一次完整的最新快照无状态兜底若收到的是仅含selection的消息如 inspector 点击而页面未变化会沿用缓存中的slideId / pageIndex等字段只更新选中与时间戳避免状态回退防御性校验非法slideId不匹配SLIDE_ID_RE直接 returnpageIndex会被Math.max(0, Math.min(totalPages - 1, rawIndex))钳制杜绝越界值污染文件原子写盘先写current.json.tmp再rename为current.json保证 Agent 在任何时刻读取到的都是完整 JSON而非写入中途的半截内容写盘失败被 catch 掉best-effort不会因此崩溃 dev server。这些实现细节意味着只要 dev server 在运行且用户与界面发生过交互current.json就始终是一个结构完整、经过校验、语义一致的位置快照——这正是 Agent 敢直接依赖它的前提。与其余 Skill 的分工协作在 open-slide 的 Agent 技能体系中current-slide的职责被刻意收窄为解析指代性引用具体如何编辑则由其他 Skill 承接current-slide负责把这个页面/这个元素解析为具体的slideId pageIndex selectionslide-authoring/SKILL.md 是页面编辑的技术参考规定了slides/id/index.tsx的文件契约default 导出为按页顺序排列的零参数组件数组、1920×1080 画布、类型阶梯、布局与调色板规则等current-slide的示例流程中编辑前查阅间距/字号规则指向的就是它apply-comments/SKILL.md 通过slide-comment标记自带定位能力因此明确声明不需要 current-slidecreate-slide/SKILL.md 负责起草新幻灯片的完整工作流同样会把具体的怎么写委托给slide-authoring。这套分工意味着Agent 在收到指代性编辑指令时应先读current.json定位再进入slide-authoring的规则体系执行编辑两者缺一不可。掌握current.json的读取纪律是 open-slide 上所有 Agent 安全编辑的前提——它把用户在哪儿从模糊的对话推断变成了一个可读、可校验、可失效判定的文件事实。赞分享【免费下载链接】open-slideA slide framework built for agents.项目地址https://gitcode.com/gh_mirrors/op/open-slide点击查看免费下载相关推荐Pearcleaner你的终极macOS清理管家告别应用残留轻松释放磁盘空间Pearcleaner你的终极macOS清理管家告别应用残留轻松释放磁盘空间 你是否曾经卸载过macOS应用却发现系统里还残留着各种缓存、偏好设置和支持文Pandoc Beamer 幻灯片实战用 --slide-level 与 columns 分栏精准控制帧结构Pandoc Beamer 幻灯片实战用 slide level 与 columns 分栏精准控制帧结构 导读 本文以 pandoc 官方测试用例 test/文档开发工具CLIopen-slide 项目模板完全指南从零开始创作 AI Agent 驱动的 React 幻灯片open slide 项目模板完全指南从零开始创作 AI Agent 驱动的 React 幻灯片 open slide 是一个面向 Agent如 Claud上一篇10分钟上手Suiron自动驾驶RC车快速启动教程下一篇hekate 启动 LogoBootlogo完全指南尺寸规格、ARGB BMP 格式与 logopath 配置详解创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

DjangoBlog 搜索引擎配置指南:Whoosh 与 Elasticsearch 双引擎切换与调优实战
DjangoBlog 搜索引擎配置指南:Whoosh 与 Elasticsearch 双引擎切换与调优实战

后端前端CMS 【免费下载链接】DjangoBlog 🍺基于Django的博客系统 项目地址: https://gitcode.com/gh_mirrors/dj/DjangoBlog 点击查看 免费下载 DjangoBlog 内置了「Whoosh(纯 Python,开箱即用)」与「Elasticsearch&… · 2026/9/28 3:02:20

基于卷积神经网络的驾驶员疲劳检测与预警系统实战解析
基于卷积神经网络的驾驶员疲劳检测与预警系统实战解析

简介:基于卷积神经网络的人脸识别驾驶员疲劳检测与预警系统毕业设计项目,面向计算机相关专业准备毕设的学生及需要实战练习的学习者,可直接用作课程设计或期末大作业。资源共十九个文件,压缩包约78.33MB,包含十一个Pyt… · 2026/9/28 3:02:14

基于OpenCV的双目立体视觉测距:从标定到SGBM的完整实现与调优指南
基于OpenCV的双目立体视觉测距:从标定到SGBM的完整实现与调优指南

简介:一套面向双目立体视觉图像匹配与测距的完整毕业设计项目,基于Python与OpenCV开发,内置可运行源码、毕业论文和数据库脚本,适合自动化、电子信息、物联网等计算机相关专业学生用于毕业设计、课程设计或期末大作业,… · 2026/9/28 3:02:07

Understanding Driving Risks using Large Language Models: Toward Elderly Driver Assessment
Understanding Driving Risks using Large Language Models: Toward Elderly Driver Assessment

文章主要内容总结 本文研究了多模态大语言模型(具体为ChatGPT-4o)利用静态行车记录仪图像进行类人交通场景解读的潜力,重点聚焦与老年司机评估相关的三项任务:交通密度评估、交叉口可见性评估和停车标志识别。这些任务需上下文推理而非简单目标检测。研究采用零样本、少样… · 2026/9/28 3:32:43

Leveraging Large Language Models for Classifying App Users‘ Feedback
Leveraging Large Language Models for Classifying App Users‘ Feedback

文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)解决应用用户反馈分类的挑战,传统方法依赖有监督机器学习,但受限于标注数据集的规模和质量。研究通过三个核心实验评估了4种先进LLMs(GPT-3.5-Turbo、GPT-4o、Flan-T5、Llama3-70b)的性能: LLMs在用户反馈分类中的基… · 2026/9/28 3:32:43

Using Large Language Models for Legal Decision-Making in Austrian Value-Added Tax Law: An Experim...
Using Large Language Models for Legal Decision-Making in Austrian Value-Added Tax Law: An Experim...

文章主要内容总结 本文通过实验评估了大型语言模型(LLMs)在奥地利及欧盟增值税(VAT)法框架下辅助法律决策的能力。研究聚焦于两种提升LLM性能的方法——微调(fine-tuning)和检索增强生成(RAG),并在两类案例中进行验证:一是权威教科书案例,二是税务咨询公司的真实案… · 2026/9/28 3:32:43

学Java别走弯路,这5个方向最吃香
学Java别走弯路,这5个方向最吃香

学Java的人很多,但学明白的人不多。有人学了半年还在写控制台程序,有人一年就能独当一面。差别不在天赋,而在方向。Java生态太庞大了,什么都学等于什么都没学。选对方向,事半功倍。今天盘点当前最吃香的5个Java方向&am… · 2026/9/28 3:32:15

AlphaAgents: Large Language Model based Multi-Agents for Equity Portfolio Constructions
AlphaAgents: Large Language Model based Multi-Agents for Equity Portfolio Constructions

AlphaAgents相关总结与翻译 一、文章主要内容总结 (一)研究背景与问题 传统股票投资组合管理依赖人类分析师处理海量信息(如财务披露、财报、市场新闻等),存在信息处理效率低、易受认知偏差(如损失厌恶、过度自信)影响的问题,可能错失投资收益机会。尽管AI在数据处理… · 2026/9/28 3:32:08

Java跑亿级报表OOM被开除?我靠达梦并行查询+虚拟线程分片拉取,3分钟出结果,DBA看懵了!
Java跑亿级报表OOM被开除?我靠达梦并行查询+虚拟线程分片拉取,3分钟出结果,DBA看懵了!

// 💥 翻车现场:经典“单线程+全量加载”的自杀式报表生成 String sql = “SELECT province, sum(amount), count(distinct user_id) FROM t_trade … GROUP BY province”; List<Map<String, Object>> result = jdbcTemplate.queryForList(sql); // 💥 5亿行… · 2026/9/28 3:32:02

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介&#xff1a;这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程&#xff0c;从线性调频&#xff08;LFM&#xff09;信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑&#xff0c;面向电子信息工程、计算机、数学等专业学生&#xff0c;适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介&#xff1a;基于PyTorch的多模态虚假新闻检测项目完整代码包&#xff0c;面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者&#xff0c;解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征&#xff0c;以Res… · 2026/9/27 0:00:01

制作网页比较方便的软件怎么选?一文搞懂避坑指南
制作网页比较方便的软件怎么选?一文搞懂避坑指南

制作网页比较方便的软件怎么选?一文搞懂避坑指南 很多老板一上来就问:做个网站多少钱?但我反问他:你的域名买了吗?服务器租了吗?他一脸懵。这就是典型的“域名服务器搞不懂”。别急,今天咱们不聊虚的,直接 一文搞懂 那些让你头秃的技术名词。… · 2026/9/28 0:00:06

婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量
婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量

婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 找婚恋网站建站公司,最怕的就是被坑高价。很多同行跟我吐槽,报价单上写得模棱两可,功能栏里全是“高级定制”、“专属UI”,结果落地全是套壳。今天不聊虚的,直接甩几个我经手的 实战案例… · 2026/9/28 0:00:19

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略
济南做网站多少钱:3个案例拆解,防黑源码下载全攻略

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 上周济南一个做建材的老板找我,脸都绿了。他的官网首页弹出了赌博广告,后台被植入了挖矿脚本。他慌得问我:“网站被黑挂马不知道怎么办?能不能直接找之前的外包公司要源码下载,看看哪里被动了手脚?… · 2026/9/28 0:00:25

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码