首页

最近更新.rss.xml

更新于 2024-06-19

搓了个 Vite 插件,让 Agent 能自己 debug 前端代码

向大家推荐一个我做的 Vite 插件 —— vite-plugin-pilot
bash
Read https://raw.githubusercontent.com/2234839/vite-plugin-pilot/master/SETUP.md and follow its steps to configure vite-plugin-pilot for my project, including installing the plugin, configuring vite.config.ts, and writing the usage guide into the project instruction file.
效果基本可以媲美 Chrome DevTools MCP,用来开发一些运行在稀奇古怪环境(比如你在开发浏览器插件、嵌入式 Webview、某个定制化的客户端)的前端程序的时候非常好用,即便是开发正常前端程序也能达到和 chrome devtools mcp 差不多的效果
这个的作用很简单,就是让 agent 能够在前端使用 eval 执行 js,这样他就能自己检查自己写的前端程序有没有什么bug之类的了
还可以用于探索一些稀奇古怪环境的运行时下怎么实现一些功能,agent同样是有自己探索的能力的,但是这些运行时是没法运行 chrome devtools mcp 这些工具
这个项目本身是我使用 glm5-turbo + cc 迭代出来的,一开始是一个项目中的 vite-plugin.ts 文件,结果发现就这么简单的提供给 agent 在页面执行js的能力就能让他的开发 测试和debug能力得到大幅的提升
想和大家分享的一个有意思的点是在这个迭代过程中本身也是用到了 vite-plugin-pilot 项目中有一个 playground ,我只要提供思路 glm5-turbo 就能自己利用 vite-plugin-pilot 在 playground 中测试使用他的顺手度并完善,由于这个插件完全是由 agent 使用这个插件自身迭代出来的,所以我相信对于agent而言他会能非常顺手的来使用这个工具
事实上在我工作中的真实场景,他确实能够很好的工作在开发插件场景下,能够自行实现功能并测试直到正确完成
于是便创建了一个单独的项目发布出来,希望能够帮助到各位前端开发者❤️
​​
刚刚才发现一个非常帮的issues,我实现了他,现在 alt 时可以滚轮跳转选中范围了
alt + 右键单击直接跳转代码
刚刚才发现一个非常帮的issues,我实现了他,现在 alt 时可以滚轮跳转选中范围了
alt + 右键单击直接跳转代码
还有一个很大的优势,就是能够调试移动端的移动端的思源、使用 VConsole 之类的方案,我觉得是不如这套完善的。
参考silkpulse 官网的 Agent 接入方法,将提示词给你的 Agent,它就可以去控制你的思源浏览器进行调试开发了。
只需要在思源的设置外观,自定义代码里面,新增导入 silkpulse 的 JS 代码
23
212
2123
没有找到对应的渲染方法 NodeCustomBlock 最近更新.rss.xml

更新记录

非前台页面的表达式也会进行计算,方便各种调用情况
计算缓存,在依赖没有发生变化的情况下不会进行新的计算,而是使用之前计算的结果
在思源界面直接更新块属性不会去更新块的updated字段,而我打算使用这个字段减少计算量,那么我应该提供一个更简便的修改表达式的界面,在这个界面进行手动的更新块updated
;;;expr // 需要被翻译的块(文档)的 id const sourceId = '20241228103033-h9y9bt3';
const sourceAttr = await expr.util.api.getBlockAttrs(sourceId); // 表达式块的属性 const blockAttr = await expr.util.api.getBlockAttrs(block.id);
// 只支持英文字母和数字,不支持特殊字符和空格 const updateFlag = 'custom-ai-translated-updated';
if (sourceAttr.updated === blockAttr[updateFlag]) { // 原文档没有更新,所以表达式块的内容也不需要更新 return expr.flag.noOutput; } else { const res = await expr.util.api.getBlockKramdown(sourceId); const kramdown = res ? res.kramdown : res; if (!kramdown) { return expr.flag.noOutput; } block.Attr={ [updateFlag]: sourceAttr.updated } return ( '{{{row\n' + (await aiChatPlugin.openaiAPI.ai翻译为英文({ openai: aiChatPlugin.openaiAPI.openai }, kramdown)) .res + '\n}}}' ); } ;;;

为什么现在需要它

AI 编程正在逐步完全接手写代码这件事情,但前端项目的调试一直是一个难点:如果能够使用本地浏览器直接给 agent 调试则还算可以,例如 vscode 的 copilot 支持内嵌浏览器的调试
但还有更多的场景是不支持直接被 copilot 进行操控的,silkpluse 就是为了将这个能力扩展到一切前端项目运行的终端设备。
我相信调试工具的下个形态就是 AI-native:工具不仅仅为人使用而设计,还要为给人服务的 agent 使用而设计。silkpulse 是我这个信念的一次实践
在线体验打开 silkpulse 控制台 (输入密钥或以访客身份进入)点"➕ 接入新设备"生成 iife 代码去其他网页控制台粘贴,30 秒把任意线上页面接入进来。
从这一点我认为 VS Code 天下第一,它才是真正的最好的一个 AI工具。它没有被时代抛弃,而是追赶上了时代潮流,甚至于说我认为它在引领时代潮流。以后这种 Agent 作为内核应该是可以被任意切换的。
我之前使用 Copilot 最重要的一点,就是 VSCode 提供了良好的内置浏览器操作支持。但现在我既可以继续使用更习惯的 Claude Code,又能让 Claude Code 调用 VSCode 提供的浏览器操作能力及其他更多特性。
就在今天,VSCode 发布了一个新版本,它现在能够支持在聊天窗口里切换 Claude Code 来作为实际执行的 agent

最近实践

notehttps://z2h.cn/hanzi 字帖生成网站,田字格
note​ amd 利用 npu 的办法:https://ryzenai.docs.amd.com/en/latest/inst.html https://lemonade-server.ai/ https://github.com/amd/gaia?tab=readme-ov-file 主要还是 lemonade-server ,gaia 也是连接的 gaia (直接安装 gaia 会自动安装 lemonade-server
好文推荐https://vue-bits.dev/ 非常绚酷的 vue 动画库
好文推荐​ 浏览器插件开发最佳实践 https://wxt.dev/guide/installation.html
我相信调试工具的下个形态就是 AI-native:工具不仅仅为人使用而设计,还要为给人服务的 agent 使用而设计。silkpulse 是我这个信念的一次实践
和 vconsole 等方案不一样在哪里:
写的 H5 在用户手机上白屏了,但本地 DevTools 鞭长莫及。 只能求着用户截屏、录屏,或者在 vConsole 那巴掌大的屏幕上艰难翻日志,或者和测试会议查看,手机端还不能通过会议的画笔工具指指点点
更绝望的是,现在 AI 都能帮你写代码了,但调试时它却帮不上忙——因为它“看”不到远程设备。 于是你只能自己盯着控制台,做一个复制粘贴的人肉转发器。
silkpulse 的出现,就是为了终结这种原始状态。
1.
支持远程接入 vue devtools 和 react devtools
2.
支持 agent 使用 silkpulse 进行调试而无需人工参与,通过一个 skill + HTTP API 就能操作一切
3.
还支持许许多多的能力,例如 log/请求/element 的查看,还有 storage 的查看与修改,基于 snapDom 的截图能力,目标设备的特性支持检测
3.
还支持许许多多的能力,例如 log/请求/element 的查看,还有 storage 的查看与修改,基于 snapDom 的截图能力,目标设备的特性支持检测
还支持许许多多的能力,例如 log/请求/element 的查看,还有 storage 的查看与修改,基于 snapDom 的截图能力,目标设备的特性支持检测

通过公网服务端连任意终端,不使用强大但受限的CDP

传统远程调试多基于 CDP(Chrome DevTools Protocol):需要设备开调试端口( --remote-debugging-port​)或走 adb/USB 转发,意味着你必须能"碰到"那台设备、 能控它的启动参数。别人的手机、客户环境里的 webview、生产环境 App 内嵌页,这些都做不到
silkpulse 通过 ws 和设备建立链接,使用动态执行脚本来实现各项能力

为什么叫 silkpulse:悬丝诊脉

《西游记》第六十九回,朱紫国国王染疾三年,悟空揭了皇榜。国王见这毛脸雷公嘴的和尚, 不敢让他当面诊脉,悟空便取出三条金线,让宫人系在国王腕上,自己捏住线头隔着帘幕诊脉这
我觉得这个产品的形态非常符合悬丝诊脉这个意象,所以我将它命名为 silkpulse!
silkpulse 的出现,就是为了终结这种原始状态。

silkpulse 是什么

我给他的定位是一个 AI 原生的远程设备调试器,让 AI Agent 像医生悬丝诊脉一样,直接查看、诊断、操作运行在任意远程设备上的网页(线上 H5、移动端浏览器、WebView),所有本地 DevTools 够不着的地方,它都能触达。
我给他的定位是一个 AI 原生的远程设备调试器,让 AI Agent 像医生悬丝诊脉一样,直接查看、诊断、操作运行在任意远程设备上的网页(线上 H5、移动端浏览器、WebView),所有本地 DevTools 够不着的地方,它都能触达。
AI 编程正在逐步完全接手写代码这件事情,但前端项目的调试一直是一个难点:如果能够使用本地浏览器直接给 agent 调试则还算可以,例如 vscode 的 copilot 支持内嵌浏览器的调试
我觉得这个产品的形态非常符合悬丝诊脉这个意象,所以我将它命名为 silkpulse!
《西游记》第六十九回,朱紫国国王染疾三年,悟空揭了皇榜。国王见这毛脸雷公嘴的和尚, 不敢让他当面诊脉,悟空便取出三条金线,让宫人系在国王腕上,自己捏住线头隔着帘幕诊脉这
《西游记》第六十九回,朱紫国国王染疾三年,悟空揭了皇榜。国王见这毛脸雷公嘴的和尚, 不敢让他当面诊脉,悟空便取出三条金线,让宫人系在国王腕上,自己捏住线头隔着帘幕诊脉这
更绝望的是,现在 AI 都能帮你写代码了,但调试时它却帮不上忙——因为它“看”不到远程设备。 于是你只能自己盯着控制台,做一个复制粘贴的人肉转发器。
写的 H5 在用户手机上白屏了,但本地 DevTools 鞭长莫及。 只能求着用户截屏、录屏,或者在 vConsole 那巴掌大的屏幕上艰难翻日志,或者和测试会议查看,手机端还不能通过会议的画笔工具指指点点