news 2026/9/10 2:22:25

AIRI 桌面版开发者工具台(System → Developer)完整指南:诊断、渲染与调试实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AIRI 桌面版开发者工具台(System → Developer)完整指南:诊断、渲染与调试实践

AIRI 桌面版开发者工具台(System → Developer)完整指南:诊断、渲染与调试实践

【免费下载链接】airi💖🧸 Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, wishing to achieve Neuro-sama's altitude. Capable of realtime voice chat, Minecraft, Factorio playing. Web / macOS / Windows supported.项目地址: https://gitcode.com/GitHub_Trending/ai/airi

导读

AIRI 桌面应用(apps/stage-tamagotchi)在Settings → System → Developer页面集中提供了一批面向开发、排障与实验性功能验证的诊断工具。本文以官方文档 desktop-developer-tools.md 为主体,结合仓库源码逐项讲解每个工具的用途、适用场景与操作要点,帮助你快速定位渲染问题、网络异常、插件生命周期故障,并为维护者收集规范、可复现的诊断材料。

适用前提:本文仅针对桌面应用。Web 版虽然也有开发页面,但其可用功能与运行环境不同(见 webui.md)。这些工具不会改善日常聊天或角色交互,安装后无需配置,只在复现问题、开发功能或收集诊断信息时才需要使用。

::: warning 先弄清你在测试什么 部分工具会采集屏幕、使用麦克风、注册全局快捷键、打开额外窗口,或展示原始网络与插件数据。测试结束后务必停止采集流并关闭不再使用的窗口;不要公开分享包含 API 密钥、对话内容、屏幕内容或 WebSocket 数据的截图。 :::

打开页面并选择工具

在桌面应用中打开Settings → System → Developer。页面顶部是快捷操作与渲染开关,下方是各诊断页面的入口链接。其页面实现位于 developer.vue,所有入口统一映射到/devtools/*路由,并在 devtools 目录 下提供对应页面。

想排查的问题从哪个工具开始
页面报错、元素样式或网络请求打开 Developer Tools
Three.js 或 VRM 渲染诊断Lag Visualizer
异常的转场动画动画开关(Disable Stage Transitions / Use Page Specific Transitions)
键盘、鼠标、显示器或全局快捷键行为useMagicKeys、鼠标/显示器工具或 Global Shortcut
聊天上下文、WebSocket 或实时转写Context Flow、WebSocket Inspector 或 Aliyun Real-time Transcriber
插件发现、加载或卸载Plugin Host Debug
更新失败或更新源异常Updater
屏幕共享、视觉输入或采集权限Screen Capture 或 Vision Capture

快捷操作与渲染诊断

打开 Developer Tools

选择Open会启动 Electron 内置的浏览器开发者工具,可用于检查控制台错误、网络请求、DOM 与性能录制——通常是排查界面问题的首选入口。源码中通过事件通道调用electronOpenMainDevtools/electronOpenDevtoolsWindow(见 developer.vue)实现。

对于可复现的问题,建议:清空控制台 → 只重复一次操作 → 仅保存相关错误。附加到 Issue 或 PR 前移除敏感信息。

Markdown Stress

在独立窗口中渲染高量级 Markdown,用于测试长段落、代码块、表格、滚动与主题样式;不会修改你的文档或对话。实现上,开发者页通过openDevtoolsWindow({ key: 'markdown-stress', route: '/devtools/markdown-stress' })打开独立窗口。

IO Tracer

IO Tracer 以时间跨度(timing spans)展示一轮交互在ASR → LLM → Streaming Control → TTS → Playback各阶段的耗时,用于定位语音-聊天管线中的延迟点或缺失阶段。它从开发者页以{ key: 'io-tracer', route: '/devtools/io-tracer', width: 1600, height: 900 }的大窗口形式打开,便于阅读完整时序。注意:轨迹数据可能包含上下文信息,仅在需要时打开,避免分享完整轨迹。

Lag Visualizer(性能可视化器)

Lag Visualizer 追踪Stage Three 运行时,可报告:

  • 窗口生命周期(可见、最小化、聚焦状态与原因)
  • Three.js 渲染计数与资源(renderCount、drawCalls 等)
  • VRM 帧更新耗时
  • hover 淡入淡出命中测试(fade-on-hover hit test)
  • VRM 加载与销毁耗时
  • 渲染器/资源快照

从源码看,performance-visualizer.vue 挂载时调用diagnostics.startTracing()、卸载时stopTracing(),数据来源于useStageThreeRuntimeDiagnosticsStoreuseStageWindowLifecycleStore(见 stage-three-runtime-diagnostics 相关 store 目录下的 stores)。它面向 Three.js/VRM 渲染问题,不是通用的页面转场、长任务或 FPS 分析器。

Stage 与页面转场动画

  • Disable Stage Transitions:关闭切换 stage 时的整体动画。排查时开启它,可把 stage 转场从变量中剔除。
  • Use Page Specific Transitions:控制每个页面自身的转场,在Disable Stage Transitions开启时不可用。

这两个开关直接绑定设置中的settings.disableTransitionssettings.usePageSpecificTransitions。排查闪烁、页面不卸载或转场缓慢时,请分别测试各状态,测完恢复常规设置。

键盘、鼠标与显示器

useMagicKeys

展示键盘快捷键与修饰键状态,用于确认应用是否正确接收按键事件;没有面向用户的常规设置。如需修改 AIRI 的 Spotlight 快捷键,应使用Settings → System → Window Shortcuts(实现见 window-shortcuts.vue 与 spotlight-shortcut.ts),而非本页面。

useElectronWindowMouse、Displays 与 Relative Mouse

这三个工具展示不同坐标系下的指针位置:

  • useElectronWindowMouse:指针在「所有显示器构成的桌面坐标系」中的位置。
  • Displays:展示已连接的显示器及指针当前位置,用于多显示器、缩放比例或外接显示器问题(实现见 use-electron-all-displays.vue)。
  • Relative Mouse:指针相对 AIRI 窗口的位置,用于测试窗口内命中区域与拖拽(实现见 use-electron-relative-mouse.vue)。

上报窗口跟随、点击偏移或多显示器定位问题时,请附上:显示器排列、缩放系数、主显示器、复现步骤。

Widgets Calling

创建悬浮小组件(overlay widgets)并校验传入组件的 props,面向 desktop-overlay 与 component-call 开发,常规使用无需打开。桌面悬浮窗相关实现可参考 desktop-overlay.vue 与 widgets.vue。

Beat Sync Visualizer

绘制节拍同步的 V-motion 目标、路径以及 Y/Z 标量变化。使用Hit beatHit V sequence注入测试节拍并观察结果运动;该页面没有音频输入与自动节拍检测通路(相关主进程窗口见 beat-sync/index.ts)。

聊天、实时服务与网络

Context Flow

展示进入聊天管线的上下文更新,以及发送给服务的聊天流事件。可用于确认来自插件、VS Code 等外部来源的上下文是否真正到达 AIRI。

操作方式:先打开工具,执行最小复现,再按时间顺序对比输入上下文与输出事件。上下文可能包含文件名、对话或其他隐私信息,分享前务必脱敏。

WebSocket Inspector

展示原始 WebSocket 流量,用于连接失败、事件缺失或消息格式异常的场景。只分享与问题相关的少数帧,并移除令牌、用户内容与地址信息。

Aliyun Real-time Transcriber

将系统默认麦克风的音频发送至阿里云 NLS(Alibaba Cloud NLS),并实时展示转写结果。它用于验证实时语音识别通路:默认麦克风输入 → 凭证 → 网络连通 → 转写输出。页面不提供输入设备选择器,因此请先到操作系统选择好默认麦克风再打开。仅在获得许可的环境中录音。

插件、更新与系统功能

Plugin Host Debug

展示插件是否被发现、启用、加载,并允许开发者控制其加载/卸载生命周期。排查「插件不工作」问题时,依次检查:发现(discovery)→ 启用状态(enabled)→ 加载错误 → 卸载后是否残留事件或接口状态。

底层实现中,主进程通过buildPluginHostDebugSnapshot构建调试快照,包含 registry、sessions、kits、modules 与 capabilities(见 plugins/host/debug.ts 与 plugins/host/registry.ts)。仓库还提供示例插件 devtools-sample-plugin 可参考。

修改任何状态前,先记录当前状态与错误。在没有最小复现的情况下反复加载/卸载插件,反而会让原始问题更难诊断。

Updater

展示当前版本、平台、架构、更新渠道、更新源、日志位置与更新状态,并可手动检查、下载、安装更新。用于排查更新失败、更新源异常或平台特定的安装问题。

日常更新请优先使用About窗口;除非你理解并信任该更新源,否则不要覆盖它。

屏幕与视觉采集

Screen Capture

可采集应用窗口或整个显示器,生成视频或音频流,主要用于屏幕共享与采集行为的测试页。

  • 首次使用,操作系统可能请求屏幕录制权限。macOS 上若 AIRI 未出现在列表中,请在系统设置 → 隐私与安全性 → 屏幕与系统音频录制中添加/启用,重启 AIRI 后重试;Windows/Linux 的权限提示取决于操作系统、桌面环境与 Electron 版本。
  • 工具中Applications列出应用窗口,Displays列出整个屏幕。当前实现不会向Devices标签提供外部源,因此该标签保持为空。
  • 连接/断开显示器、打开窗口或更改权限后,使用Refetch刷新。
  • 停止后确认预览已关闭,使流不再占用系统资源或权限。

页面实现见 screen-capture.vue。

Vision Capture

采集屏幕帧并展示发送到视觉管线的 payload,用于验证视觉输入是否正确采集并到达下游功能。它是一次性的诊断流程,不是配置视觉供应商后必须保持开启的全局开关。

测试屏幕视觉的完整步骤:

  1. Settings → Providers → Vision配置视觉供应商凭证。
  2. 打开Settings → Modules → Vision,选择已配置的供应商与支持图像能力的模型。
  3. 打开Settings → System → Developer → Vision Capture,授予操作系统屏幕录制权限。
  4. 选择一个窗口或显示器,然后选择Start ticker开始采集与分析帧。
  5. 仅当你希望识别结果加入 AIRI 对话上下文时,才启用Publish to character
  6. 结束后选择Stop ticker;离开页面也会停止采集循环。

若页面停留在权限提示,请在操作系统中授权后完全退出 AIRI 并重启,再重新打开工具。切勿发布显示个人桌面、通知或其他应用内容的采集结果。

全局快捷键

Global Shortcut

注册、注销并观察系统级快捷键事件。它与日常使用的 Spotlight 快捷键(配置于Settings → System → Window Shortcuts)不同:本页面仅用于开发与验证。

选择不与操作系统或其他应用冲突的组合键;若注册失败,检查该组合是否已被占用。测试完成后务必注销快捷键,避免它持续拦截按键。

小结

AIRI 桌面版开发者工具台是一组按问题域划分的诊断工作流:界面问题从 Developer Tools 入手,渲染问题交给 Lag Visualizer,语音/聊天管线用 IO Tracer 与 Context Flow 定位,插件问题走 Plugin Host Debug,更新与权限问题则分别由 Updater、Screen Capture 和 Vision Capture 覆盖。使用时要遵循「最小复现、及时停止、分享前脱敏」三条原则,既保证诊断效率,也避免泄露隐私与凭据。相关页面源码均可从 devtools 目录 与 settings/system/developer.vue 继续深入阅读。

【免费下载链接】airi💖🧸 Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, wishing to achieve Neuro-sama's altitude. Capable of realtime voice chat, Minecraft, Factorio playing. Web / macOS / Windows supported.项目地址: https://gitcode.com/GitHub_Trending/ai/airi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 2:22:20

Python面试三大件:迭代器、生成器与装饰器原理与实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/10 2:21:57

移动储能灾后动态调度的MATLAB建模与闭环验证

简介:本资源面向电力系统自动化、智能配电网及能源优化方向的研究生、科研人员与工程技术人员,聚焦灾害场景下配电网韧性提升这一关键问题,提供灾后动态调度的完整建模与实现方案。资源包含9个文件,以5个核心MATLAB脚本&#xff0…

作者头像 李华
网站建设 2026/9/10 2:21:40

ST7701三线SPI初始化代码拆解:从寄存器序列到GPIO模拟实现

简介:面向需要驱动ST7701液晶控制器的MCU开发者,这套代码演示在STM32平台上如何用三线SPI完成屏幕初始化,解决小型彩色TFT LCD模块的驱动配置问题。压缩包共两个文件,包含C源码文件和波形Word文档,整体大小仅三百六十七…

作者头像 李华
网站建设 2026/9/10 2:21:34

ATT7022EU三相计量芯片驱动移植:SPI通信与校表参数全解析

简介:围绕国网三相电能计量芯片ATT7022EU(兼容ATT7022E)的参考驱动包,面向智能电表、用电信息采集等电力终端研发场景,能够帮助嵌入式开发者快速完成驱动移植、计量寄存器配置与数据读取调试,适用于中高级单…

作者头像 李华
网站建设 2026/9/10 2:20:37

虚拟机+仿真bag+SLAM Toolbox:零成本入门ROS建图全流程

1. 选型:为什么我坚持“虚拟机仿真bag”而不是直接上真机实话说,我最初动过直接买一台带激光雷达的小车来练手的念头,但后来认真盘算了一下,发现这个路线对“第一次接触SLAM建图”的人来说,成本和时间都不太友好。一台…

作者头像 李华
网站建设 2026/9/10 2:18:39

Working Memory

Working Memory 【免费下载链接】OpenViking Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills. 项目地址: https://gitcode.com/GitHub_Trending/op/OpenViking Session Title 简短独特的 5-10 词标题,信息密…

作者头像 李华