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

- 加在代码里的记录行 — @BLYCK@ {"label":…, "vals":…, "level":…}(通常由 AI 加入和删除)
- 在 Blyck 终端中运行 — Blyck 会收集输出中的 @BLYCK@ 行
- 🐞 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),这些输出也会被收集。
使用步骤 — 用说的让 AI 去做
Section titled “使用步骤 — 用说的让 AI 去做”- 把 AI 聊天设为 ⚡ 执行 或 🚀 自动 模式,说“在这个函数里加调试输出,帮我找原因”。
- AI 在代码里加入记录行,或者写一个记录用的辅助函数(往代码里加行时可能会弹出审批卡片)。
- 我(或 AI)在 Blyck 终端或网页预览里运行程序。
- AI 读取收集到的记录并修复。需要的话再运行一次确认。
- 结束后说 “把调试行清理掉” —— AI 会找出剩下的记录行并删除。
记录行的格式
Section titled “记录行的格式”@BLYCK@ {"label":"after-add","vals":{"qty":3,"total":null},"level":"debug","loc":"cart.js:42"}| 字段 | 含义 |
|---|---|
label | 名称 |
vals | 想查看的值 |
level | debug、info、warn、error、assert 之一(不认识的值按 debug 处理) |
loc | 位置 文件:行号(可省略) |
- JSON 损坏的行也不会丢弃,会以名称 (malformed)、级别 warn 保留下来。
- 自己手动加的时候,
@BLYCK@后面只放 JSON。
收集哪里打印的内容
Section titled “收集哪里打印的内容”| 输出 | 是否收集 |
|---|---|
| Blyck 终端(本地·SSH)输出 | 是 |
| 网页预览控制台 | 是 |
| AI 在远程服务器上执行的输出 | 是 |
| 编辑器 ▶ 运行 的输出窗口 | 否 |
| Blyck 之外(浏览器 F12 控制台、其他终端程序) | 否 |
运行了却没收集到记录时,先确认那个程序是不是在 Blyck 终端窗格里运行的。
调试窗口 — Ctrl+Shift+D
Section titled “调试窗口 — Ctrl+Shift+D”
- 筛选 — label · loc 输入框,选择 level · source / 🔕 AI 自动调查 · ⏸ 暂停 · 🗑 清除 · ✕ 关闭
- 一行记录 — [阶段] 名称 值 · 来源(terminal / preview)
实时查看收集到的记录的小窗口(在画面右下角,标题 🐞 Debug Bridge)。再按一次关闭。它和 AI 读取的是同一份记录,所以可以和对话并排看 AI 正在看着什么修复。免费。
| 部分 | 作用 |
|---|---|
label / loc 输入框 | 按名称·位置筛选(部分文字即可) |
level 选择 | debug / info / warn / error / assert |
source 选择 | terminal / preview |
| 🔔 / 🔕 | 打开·关闭 AI 自动调查 |
| ⏸ / ▶ | 暂停 / 继续 |
| 🗑 | 清除 —— 连 AI 读取的记录也一起清空 |
| ✕ | 关闭 |
最多保留 1,000 行,超出时从最旧的开始删除。
AI 自动调查(Pro,默认关闭)
Section titled “AI 自动调查(Pro,默认关闭)”打开后,一旦出现 error 或 assert 记录,AI 不用你问就会自动开始调查原因。让程序一直跑着,问题爆发的那一刻也不会错过。
- 打开位置:调试窗口的 🔔,或 AI 聊天 ⋯ → 对话设置 → 显示 → 🖥 显示 / 流式 → 🔔 自动调试调查(AI 在 assert/error 时自动执行 — 产生成本)。两处是同一个设置。
- 调查会发到当前正在用的 AI 聊天,并且只在那个对话打开着且空闲时进行。
- 为防止过度使用,60 秒内最多 3 次,同一条记录 120 秒内不会再调查。
AI 使用的工具
Section titled “AI 使用的工具”| 工具 | 作用 | 审批 |
|---|---|---|
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生成的辅助代码。
让记录行不留在发布版里,有两种办法。
① 辅助代码在发布版中会自动关闭
| 语言 | 在发布版中 |
|---|---|
| JavaScript | NODE_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 这类日志,设备上应用的记录也会被收集。