Skip to content

调试与反馈

ETOS LLM Studio 在「出问题怎么定位」上做得比大多数 LLM 客户端深——它内置了局域网调试客户端应用日志归档API 流量分析带 PoW 防刷的反馈工单系统。这一页讲它们各自是什么、什么时候用。

你大概率会遇到的问题

现象你需要
AI 回答没出来,弹失败提示应用日志 看具体错误码
AI 回答莫名其妙API 流量分析 看实际发出去的请求和返回
想给开发者提 bug反馈助手
想让电脑端帮你看完整请求流水局域网调试
想给会话注入自定义代理 / 调试中间人本地调试服务器代理

新手必读

应用日志(最常用)

在哪

设置 → 拓展能力 → 拓展功能 → 应用日志

或者从异常弹窗的"查看日志"链接直接跳。

它记录什么

每天会建一个按日期命名的文件夹,里面是当天所有请求 / 响应的结构化日志(JSON):

  • 每条 LLM 请求的完整 URL、Header、Body
  • 每条响应(包括流式分片)
  • 工具调用的请求和返回
  • 失败时的错误码、堆栈

记录请求明文消息

记录请求明文消息」开关:

状态行为
关闭(默认)请求体日志会隐藏 messagecontent 等消息字段(只看到结构,不看到内容)
开启记录明文消息文本,但图片、音频和文件的 Base64 仍会隐藏(避免日志爆炸)

明文日志含敏感信息

开启明文日志后,你聊过的所有内容都会落盘。如果你不想留这些记录,平时关着,只在调试时临时开。

怎么用

  1. 复现问题
  2. 进应用日志,找当天的文件夹
  3. 找到对应时间的请求条目(按时间排序)
  4. 看里面的错误信息

清理

  • 单天日志可以左滑删除
  • 清空全部」按钮清掉所有历史(有二次确认)

反馈系统

在哪

设置 → 拓展能力 → 拓展功能 → 反馈助手

或者从应用某些错误弹窗"反馈给开发者"直接跳。

提一个反馈

每个反馈工单包含:

  • 类型:Bug 报告 / 功能建议 / 提问 / 其他
  • 标题 + 正文
  • 环境信息(自动采集):版本号、iOS 版本、设备型号、模拟器状态等
  • 截图(可选)
  • 日志附件(可选):附上一份脱敏日志压缩包

PoW 防刷

提交时会要求做一个工作量证明(PoW)——你的设备 CPU 跑几秒哈希计算。这是 ETOS 防垃圾工单的方式:不要个人邮箱验证,但每个工单都要付一点点 CPU 成本。

工单状态跟踪

提交后工单会带一个编号。你可以在反馈助手列表里看:

  • 状态:未读 / 开发者已读 / 处理中 / 已解决 / 已关闭
  • 评论对话:开发者可以在工单下回复,你也能回复
  • 开发者标记:「确认 bug」「无法复现」「已修复(下版本)」等

工单状态会自动同步

双端工单

  • iPhone 提的工单会同步到 Watch
  • 系统通知会推送状态更新

API 流量分析(看 LLM 请求到底发了什么)

在哪

设置 → 拓展能力 → 拓展功能 → 高级诊断

简易用法(仅看 token 用量)

如果你只是想看每条请求的 token 用量和响应速度,直接在 聊天与模型 里的「用量统计」(设置 → 拓展能力 → 用量统计)就够了。

完整流量分析(看完整请求 / 响应)

「高级诊断」是完整流水捕获——能看到每条请求的:

  • 完整 URL(含 query string)
  • 完整 Request Headers(含 Authorization)
  • 完整 Request Body
  • 完整 Response Headers
  • 完整 Response Body(流式合并后的)

适合定位"为什么 AI 看到这个问题给出那个答案"。

进阶选项

局域网调试模式

高级诊断 页面顶部「连接模式」可以选「HTTP 轮询」或「WebSocket」。

适合:配合电脑端调试工具(仓库的 docs/debug-toolsdocs/debug-tools-go 提供了客户端)。

工作原理

设备主动连接电脑端 WebSocket 服务器,接收命令并执行文件操作。

设备主动连电脑——不需要在路由器开端口。电脑端起一个 WS 服务(默认端口 8765),设备连过来即可执行:

  • 浏览设备的 App 沙盒文件
  • 拉取本地数据库做诊断
  • 上传 / 下载文件
  • 直接在浏览器里看实时控制台

启动步骤

  1. 电脑端:运行 docs/debug-tools/ 里的服务器(npm 项目)
  2. 电脑端服务器启动后会显示本机 IP + 端口
  3. iPhone 端:高级诊断 → 输入"IP:端口"(比如 192.168.1.100:8765)→ 点「连接」
  4. 连上后状态变绿,可以从浏览器看实时日志

仅在可信网络中使用

高级诊断会完全暴露你的应用沙盒给电脑端。不要在咖啡馆 Wi-Fi 或公共网络用。

页面底部的提示:

仅在可信网络中使用 用完后请及时断开连接

API 代理模式

API 代理设置」允许把所有 LLM 请求路由到电脑端的中间人:

将 API Base URL 设置为:http://电脑IP:8080

请求会被电脑端记录、解析、可能修改后再转发给真实的 LLM API。适合:

  • 看完整流式响应内容
  • 自己写中间件改请求 / 响应做调试
  • 模拟错误响应测试 App 行为

全局代理(生产网络环境)

设置 → 提供商与模型管理 → 全局代理

如果你的网络环境所有 LLM 请求都要走代理,配在这里:

字段说明
启用代理总开关
代理类型HTTP / HTTPS / SOCKS5
代理地址主机名或 IP
端口1-65535
用户名(可选)代理鉴权
密码(可选)代理鉴权

优先级第一次配置提供商 进阶里讲过——提供商级代理 > 全局代理。

适合:

  • 整体网络环境需要代理(公司网络 / VPN 出海)
  • 不想给每个提供商单独配

请求日志的脱敏机制

ETOS 在记录请求日志时默认会脱敏

字段是否记录
URL✅ 完整
Header✅ 完整(含 Authorization,这是为了调试,分享时自己删)
Body 中的 messages 文本❌ 默认隐藏(需要开"记录明文消息")
Body 中的图片 base64❌ 总是隐藏
Body 中的音频 base64❌ 总是隐藏
Body 中的文件 base64❌ 总是隐藏
流式响应 body✅ 合并后完整记录

分享日志给开发者前再脱敏一次

即使开了脱敏,日志里还有 URL、Header 等可能含 API Key 的字段。分享前自己再过一遍,把 Authorization / X-API-Key 等替换成 ***

模型连通性测试

如果你想快速测试一个新接入的模型能不能正常通讯,不必每次都回聊天页发消息——

设置 → 提供商与模型管理 → 某个提供商 → 详情页右上角的「模型测试」按钮

它会自动用最小请求体测试这个 Provider 下所有启用模型的连通性,并显示每个模型的:

  • ✅ 通过
  • ❌ 错误信息
  • 响应时间

排查"哪个模型还在用、哪个挂了"的最快方式。

下一步