跳转到内容

AI 调试桥

AI 调试桥是让 AI 直接读取运行中程序内部的值(变量值等)的机制。

平常调试总是在重复“AI 猜 → 我运行 → 我复制粘贴报错 → AI 再猜”。用了调试桥,中间就不需要人了。在代码里放一行固定格式的记录(@BLYCK@ …),当这一行打印到 Blyck 终端或网页预览时,Blyck 会把它收集起来,AI 读取后查找原因。通常由 AI 自己加上这些行,用完再自己删掉。

代码中加入的 @BLYCK@ 行在终端输出时,会单独汇集到 Debug Bridge 窗口

  1. 加在代码里的记录行 — @BLYCK@ {"label":…, "vals":…, "level":…}(通常由 AI 加入和删除)
  2. 在 Blyck 终端中运行 — Blyck 会收集输出中的 @BLYCK@ 行
  3. 🐞 Debug Bridge 窗口(Ctrl+Shift+D)— 把收集到的记录按阶段·名称·值整理显示,AI 用 debug_read 读取
功能免费Pro
在调试窗口(Ctrl+Shift+D)查看记录✓✓
由 AI 加入·读取·删除记录行—✓
AI 自动调查(出错时 AI 自动调查)—✓
  • 想把“这个值为什么不对?”交给 AI 时
  • 不想复制粘贴终端输出时
  • 调试手机应用(Flutter 等)时 —— 在 Blyck 终端里运行 flutter run、adb logcat(Android)、idevicesyslog(iOS),这些输出也会被收集。
  1. 把 AI 聊天设为 ⚡ 执行 或 🚀 自动 模式,说“在这个函数里加调试输出,帮我找原因”。
  2. AI 在代码里加入记录行,或者写一个记录用的辅助函数(往代码里加行时可能会弹出审批卡片)。
  3. 我(或 AI)在 Blyck 终端或网页预览里运行程序。
  4. AI 读取收集到的记录并修复。需要的话再运行一次确认。
  5. 结束后说 “把调试行清理掉” —— AI 会找出剩下的记录行并删除。
@BLYCK@ {"label":"after-add","vals":{"qty":3,"total":null},"level":"debug","loc":"cart.js:42"}
字段含义
label名称
vals想查看的值
leveldebug、info、warn、error、assert 之一(不认识的值按 debug 处理)
loc位置 文件:行号(可省略)
  • JSON 损坏的行也不会丢弃,会以名称 (malformed)、级别 warn 保留下来。
  • 自己手动加的时候,@BLYCK@ 后面只放 JSON。
输出是否收集
Blyck 终端(本地·SSH)输出是
网页预览控制台是
AI 在远程服务器上执行的输出是
编辑器 ▶ 运行 的输出窗口否
Blyck 之外(浏览器 F12 控制台、其他终端程序)否

运行了却没收集到记录时,先确认那个程序是不是在 Blyck 终端窗格里运行的。

按 Ctrl+Shift+D 打开的 🐞 Debug Bridge 窗口 — 实时显示收集到的 @BLYCK@ 记录

  1. 筛选 — label · loc 输入框,选择 level · source / 🔕 AI 自动调查 · ⏸ 暂停 · 🗑 清除 · ✕ 关闭
  2. 一行记录 — [阶段] 名称 值 · 来源(terminal / preview)

实时查看收集到的记录的小窗口(在画面右下角,标题 🐞 Debug Bridge)。再按一次关闭。它和 AI 读取的是同一份记录,所以可以和对话并排看 AI 正在看着什么修复。免费。

部分作用
label / loc 输入框按名称·位置筛选(部分文字即可)
level 选择debug / info / warn / error / assert
source 选择terminal / preview
🔔 / 🔕打开·关闭 AI 自动调查
⏸ / ▶暂停 / 继续
🗑清除 —— 连 AI 读取的记录也一起清空
✕关闭

最多保留 1,000 行,超出时从最旧的开始删除。

打开后,一旦出现 error 或 assert 记录,AI 不用你问就会自动开始调查原因。让程序一直跑着,问题爆发的那一刻也不会错过。

  • 打开位置:调试窗口的 🔔,或 AI 聊天 ⋯ → 对话设置 → 显示 → 🖥 显示 / 流式 → 🔔 自动调试调查(AI 在 assert/error 时自动执行 — 产生成本)。两处是同一个设置。
  • 调查会发到当前正在用的 AI 聊天,并且只在那个对话打开着且空闲时进行。
  • 为防止过度使用,60 秒内最多 3 次,同一条记录 120 秒内不会再调查。
工具作用审批
debug_read读取收集到的记录(按名称·位置·级别·来源·时间筛选)不需要
debug_shim生成各语言的记录辅助代码(blyckDbg / blyckAssert)—— 支持 11 种语言不需要
debug_probe在文件的指定行按正确格式插入记录行 —— JS/TS、Python、Dart、Bash⚡ 执行模式下需要
debug_release_check发布前查找残留的 @BLYCK@不需要
debug_strip只删除 @BLYCK@ 输出行(保留注释、字符串常量、辅助文件)⚡ 执行模式下需要
  • debug_probe·debug_strip 在 💬 对话·📋 计划 模式下被禁止。对远程(SFTP)项目文件也有效。
  • 其他语言(Go·Rust·Java·C# 等)由 AI 直接放入 debug_shim 生成的辅助代码。

让记录行不留在发布版里,有两种办法。

① 辅助代码在发布版中会自动关闭

语言在发布版中
JavaScriptNODE_ENV=production 时关闭(不经打包工具直接在浏览器里用时始终开启)
Python用 python -O 运行时关闭
Go不带 blyckdebug 构建标签构建时去除
Rust · C# · Dart在发布构建中关闭
Java需要手动把代码里的 DEBUG=true 改成 false 才会关闭
Bash只有存在 BLYCK_DEBUG 环境变量时才输出
Kotlin · Swift · C/C++以各语言的调试标志(DEBUG / #if DEBUG / NDEBUG)为准

② 发布前删除 —— 对 AI 说 “把调试行清理掉”,它会找出残留的位置(debug_release_check),只删除输出行(debug_strip)。node_modules·.git·dist·build 这类文件夹以及图片·压缩文件不做检查。

需要把控制台输出复制给 AI 吗? 不需要。这正是用这个功能的原因。加上记录行、在 Blyck 终端里运行,AI 就能直接读取。

运行了,AI 却读不到记录 输出必须出现在 Blyck 终端窗格或网页预览里。编辑器 ▶ 运行 的输出窗口、Blyck 之外的终端、浏览器 F12 控制台都不会收集。请确认调试窗口(Ctrl+Shift+D)里能不能看到记录。

发布时一定要删掉吗? 大多数语言在发布版中辅助代码会自动关闭。Java 需要手动关闭。想彻底干净,就说“把调试行清理掉”来删除。

应用报错时,AI 会自己介入吗? 打开 AI 自动调查 就会。默认是关闭的,打开后会消耗用量。

手机应用(Flutter)也可以吗? 可以。在 Blyck 终端里运行 flutter run、adb logcat、idevicesyslog 这类日志,设备上应用的记录也会被收集。