Open-AutoGLM日志查看技巧,快速定位问题所在

Open-AutoGLM日志查看技巧,快速定位问题所在

本文聚焦于 Open-AutoGLM 实际部署与调试过程中的日志分析实战经验,不讲原理、不堆概念,只分享你在连接失败、操作卡顿、模型无响应时,该看哪几行日志、怎么看、为什么这么看。所有技巧均来自真实设备调试现场,覆盖 USB/WiFi 连接、ADB 异常、模型服务通信、动作执行失败等高频问题。

1. 日志体系概览:三类日志,各司其职

Open-AutoGLM 的日志不是一锅粥,而是分层设计的“侦察兵网络”。理解每类日志的职责,是高效排查的第一步。

1.1 控制端(本地电脑)日志:你的“操作台仪表盘”

这是你运行python main.py时终端输出的内容,也是最先看到、最需关注的日志。它不记录底层细节,但精准反映“你做了什么”和“系统反馈了什么”。

  • 典型内容

    • 设备连接状态(Connected to device: emulator-5554
    • 当前步骤编号与屏幕信息摘要(Step 3: current_app=抖音, screenshot_size=1080x2400
    • AI 推理耗时(Inference time: 2.41s, first token: 0.27s
    • 动作执行结果(Executed Tap at [520, 310] -> success
    • 关键错误提示(ERROR: ADB command failed: adb shell input tap 520 310
  • 核心价值:它是问题定位的起点。如果任务卡在某一步,这里会明确告诉你卡在哪、执行了什么动作、结果是成功还是失败。

1.2 ADB 系统日志(logcat):设备的“心跳监测仪”

这是 Android 设备自身的运行日志,通过adb logcat命令获取。它不关心你的 AI 指令,只忠实记录设备每一秒发生了什么——系统服务启动、应用崩溃、权限拒绝、输入法切换……所有与 Open-AutoGLM 操作强相关的底层事件,都藏在这里。

  • 典型内容

    • I/ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.ss.android.ugc.aweme/.main.MainActivity}(AI 启动抖音)
    • W/InputMethodManager: Starting input on non-focused client com.android.adbkeyboard/.AdbIME(ADB Keyboard 切换成功)
    • E/AndroidRuntime: FATAL EXCEPTION: main Process: com.tencent.mm ... java.lang.SecurityException: Permission Denial: starting Intent(微信启动被拒)
  • 核心价值:当控制端日志只显示“执行失败”,而你不知道为什么时,logcat 就是真相的唯一来源。它能告诉你,是应用没权限?还是系统阻止了截图?或是输入法根本没切过去?

1.3 模型服务端日志:AI 的“思维日记”

这是运行 vLLM 或 SGLang 服务端时产生的日志(例如python -m vllm.entrypoints.openai.api_server ...的输出)。它记录模型加载、请求接收、推理过程、显存使用等,是判断“AI 是否在线”、“是否理解指令”、“有无资源瓶颈”的关键。

  • 典型内容

    • INFO: Started server process [12345](服务启动成功)
    • INFO: Received request for model autoglm-phone-9b(收到请求)
    • WARNING: OOM when allocating tensor with shape...(显存不足警告)
    • INFO: Request processed in 2.34s(单次请求耗时)
  • 核心价值:当你发现控制端日志里 AI 总是“无响应”或“返回乱码”,问题大概率出在这里。它能帮你区分:是网络不通?是模型没加载?还是显存炸了?


2. 高频问题诊断:按现象反查日志路径

别再大海捞针。以下是最常见的 5 类故障,以及你应该立刻打开、重点扫描的日志位置和关键词

2.1 “adb devices 显示 device,但 main.py 报错连接失败”

现象adb devices能看到设备,但运行python main.py --device-id XXX "任务"时,报错类似Connection refusedDevice not found

日志路径与关键词

  • 第一步:检查控制端日志开头几行
    找到Connecting to device: XXX后的下一行。如果出现ERROR: Failed to get device IPERROR: ADB command 'adb -s XXX shell getprop ro.build.version.release' failed,说明 ADB 通信本身就有问题。
  • 第二步:立即执行adb -s XXX shell echo test
    这不是看日志,而是做验证。如果这句命令也失败,问题就彻底锁定在 ADB 层。此时,跳过所有其他日志,直接看 ADB 自身状态
    # 在终端执行,观察输出 adb version adb kill-server && adb start-server adb -s XXX shell getprop ro.product.model
    如果getprop命令超时或报错,说明设备 USB 调试未真正生效,或驱动异常。此时adb logcat和模型日志完全无关,无需查看。

2.2 “任务执行到一半卡住,日志停在某一步不动”

现象:日志显示Step 5: current_app=小红书...,然后就再也没有新输出,程序既不报错也不继续。

日志路径与关键词

  • 第一步:紧盯控制端日志的最后一条
    它一定是Executing action: do(action="XXX", ...)。记下这个动作类型(如Tap,Type,Swipe)。
  • 第二步:立刻打开 ADB logcat,过滤关键词
    不要全屏滚动,用Ctrl+F搜索:
    • 如果是TapSwipe:搜索input tapinput swipeMotionEvent。如果完全搜不到,说明 ADB 命令根本没发出去,问题在控制端代码逻辑或设备连接中断。
    • 如果是Type:搜索ADB_INPUT_TEXTAdbIMEInputMethodService。如果看到W/InputMethodService: Not allowed to switch to com.android.adbkeyboard,说明 ADB Keyboard 未被授权,需手动在手机设置中开启“ADB Keyboard”的“允许显示在其他应用上”权限。
  • 第三步:检查设备屏幕
    卡住时,手机屏幕是否停留在某个加载动画(如抖音的“正在加载”)?如果是,日志里必然有Waiting for app to load...,这是正常等待,不是故障。耐心等 10 秒,日志会继续。

2.3 “AI 返回的动作明显错误,比如在微信里点坐标[10,10](左上角)”

现象:日志显示AI action: do(action="Tap", element=[10, 10]),但这个坐标在当前屏幕上毫无意义(比如是个状态栏)。

日志路径与关键词

  • 第一步:确认控制端日志中该步骤的截图尺寸
    找到Step X: ... screenshot_size=WIDTHxHEIGHT。如果尺寸是1080x2400,但你手机实际是1440x3200,说明 ADB 截图命令失败,返回了默认尺寸的黑图或缩略图。此时 AI 是在“瞎猜”。
  • 第二步:检查 ADB logcat 中的截图相关日志
    搜索screencaptmp.pngStatus: -1。如果看到Status: -1,说明截图被系统拒绝(常见于支付、银行类 App),AI 收到的是黑屏,自然无法准确定位。此时日志里应紧接着出现is_sensitive=TrueTake_over required提示。
  • 第三步:回溯上一步日志
    查看Step X-1current_app是什么。如果上一步是System Home,这一步却在微信里点坐标,说明 AI 错误地认为已经进入了微信,问题出在get_current_app()函数的识别上。此时去phone_agent/adb/device.py查看get_current_app的实现,并在 logcat 中搜索dumpsys window的输出,看它是否真的解析出了正确的包名。

2.4 “中文输入全是乱码或空格,日志里显示 type_text 成功”

现象:控制端日志显示Executed Type text '你好世界' -> success,但手机上输入框里是????或一堆空格。

日志路径与关键词

  • 第一步:检查控制端日志中 ADB Keyboard 的切换过程
    找到Switching to ADB Keyboard...ADB Keyboard activated这样的日志。如果没有,说明切换失败。
  • 第二步:强制在 ADB logcat 中搜索AdbIME
    执行adb logcat | grep AdbIME,然后在手机上手动触发一次输入(比如用adb shell am broadcast -a ADB_INPUT_TEXT --es msg "test")。如果 logcat 里完全没有AdbIME相关输出,说明 APK 根本没安装或没启用。此时去手机“设置 > 语言与输入法 > 当前输入法”,确认ADB Keyboard已被选中。
  • 第三步:检查文本编码
    phone_agent/adb/input.py中,找到type_text函数。确保encoded_text = text.replace(" ", "%s")这行之后,发送的广播命令是am broadcast -a ADB_INPUT_TEXT --es msg "你好世界"。如果日志里显示发送的是am broadcast ... --es msg "hello",说明代码逻辑被意外修改,或环境变量PHONE_AGENT_LANG设置错误。

2.5 “模型服务端日志疯狂刷 WARNING,但控制端一切正常”

现象:vLLM 服务端日志里不断出现WARNING: GPU memory usage is highWARNING: Prefill is slow,而main.py运行流畅,AI 响应也快。

日志路径与关键词

  • 这不是故障,是预警。这类日志意味着你的 GPU 正在高负荷运转,但尚未达到崩溃阈值。
  • 关键判断点:看日志里是否有ERRORCRITICAL字样。只要没有,且控制端的Inference time数值稳定(比如始终在 2.0-2.5s),就可以忽略这些 WARNING。
  • 何时需要干预?当Inference time开始剧烈波动(如从 2s 跳到 8s),或出现OOM(Out of Memory)字样时,才需行动。此时,不要改代码,先调参数
    # 启动 vLLM 时,增加显存限制和最大长度 python -m vllm.entrypoints.openai.api_server \ --model /path/to/model \ --gpu-memory-utilization 0.8 \ --max-model-len 4096 \ --port 8000
    参数调整后,重启服务,观察 WARNING 是否减少、Inference time是否回归稳定。

3. 日志精读实战:从一行报错读懂整个链路

理论不如实战。我们来解剖一个真实案例的日志片段,看看如何像侦探一样抽丝剥茧。

3.1 案例背景

用户报告:“运行python main.py "打开淘宝搜索iPhone",程序在Step 2卡住,日志最后是Executing action: do(action="Type", text="iPhone"),手机淘宝搜索框没任何反应。”

3.2 日志片段还原

[INFO] Step 2: current_app=淘宝, screenshot_size=1080x2400 [INFO] Building message for model... [INFO] AI response received in 1.82s [INFO] Parsed action: {'_metadata': 'do', 'action': 'Type', 'text': 'iPhone'} [INFO] Executing action: do(action="Type", text="iPhone") [INFO] Switching to ADB Keyboard... [INFO] ADB Keyboard activated [INFO] Sending broadcast: am broadcast -a ADB_INPUT_TEXT --es msg "iPhone" [INFO] Restoring original input method... [INFO] Executed Type text 'iPhone' -> success

3.3 逐行精读与推理

日志行关键词/信息推理结论下一步动作
Step 2: current_app=淘宝当前应用正确AI 知道在淘宝,没问题——
Parsed action: ... 'text': 'iPhone'AI 输出的文本正确Prompt 工程有效,AI 理解了任务——
Switching to ADB Keyboard...
ADB Keyboard activated
切换日志存在输入法切换流程已触发检查手机设置中 ADB Keyboard 是否启用
Sending broadcast: ... msg "iPhone"广播命令已发出控制端代码执行无误立刻看 ADB logcat
Restoring original input method...恢复流程也执行了代码逻辑完整——
Executed Type text ... -> success这是最大的陷阱!success只代表 Python 脚本里的subprocess.run(...)命令执行成功,并不代表广播真的被 ADB Keyboard 接收到了!问题一定在 ADB Keyboard 的接收端在手机上打开ADB Keyboard的设置,看“接收广播”开关是否打开

最终定位:用户手机上的 ADB Keyboard 应用,其“接收广播”权限被手动关闭了。虽然控制端日志显示success,但广播根本没送达。打开该开关后,问题立即解决。

核心教训-> success不等于“功能成功”,它只代表“命令发出去了”。真正的功能成功,必须由 ADB logcat 或设备屏幕来验证。


4. 效率工具箱:三条命令,省下 90% 的日志时间

别再手动翻日志。掌握这三个命令,让问题定位从“找线索”变成“查答案”。

4.1 一键过滤并高亮关键事件(Linux/macOS)

# 监控所有与 Open-AutoGLM 相关的实时日志流 adb logcat | grep -E "(ADB_INPUT_TEXT|AdbIME|screencap|dumpsys|com\.android\.adbkeyboard)" --color=always # 解释:-E 表示扩展正则,--color=always 让关键词高亮,一眼就能抓住重点

4.2 快速定位最近一次截图失败(Windows/Linux/macOS)

# 查看最近 50 行 logcat,专门找截图失败线索 adb logcat -t 50 | findstr /i "screencap Status: -1 Failed" # Linux/macOS 替代命令 adb logcat -t 50 | grep -i "screencap\|Status: -1\|Failed"

4.3 检查 ADB Keyboard 是否在前台(终极验证)

# 这条命令直接告诉你,此刻哪个输入法在“掌权” adb shell settings get secure default_input_method # 正常输出示例:com.android.adbkeyboard/.AdbIME # 如果输出是 com.sohu.inputmethod.sogouoem/.SogouIMEService,说明 ADB Keyboard 被切走了

5. 总结:日志不是文档,是你的对话伙伴

日志不是冰冷的记录,而是 Open-AutoGLM 与你进行的一场无声对话。它不会主动告诉你“我哪里坏了”,但它会诚实地回答你每一个具体的问题。

  • 当你问“设备连上了吗?”→ 看控制端日志第一行Connecting to...adb devices输出。
  • 当你问“AI 看到屏幕了吗?”→ 看控制端日志里的screenshot_size和 ADB logcat 里的screencap结果。
  • 当你问“点击为什么没反应?”→ 看 ADB logcat 里有没有input tap的执行日志,以及MotionEvent的上报日志。
  • 当你问“中文为什么输不出?”→ 看 ADB logcat 里有没有ADB_INPUT_TEXT的接收日志,以及default_input_method的当前值。

记住,最高效的调试者,不是那个翻遍所有日志的人,而是那个每次只问一个问题、并精准找到答案所在那一行日志的人

--- > **获取更多AI镜像** > > 想探索更多AI镜像和应用场景?访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_source=mirror_blog_end),提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1208858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IQuest-Coder-V1显存优化技巧:LoRA微调部署实战案例

IQuest-Coder-V1显存优化技巧:LoRA微调部署实战案例 1. 为什么需要关注IQuest-Coder-V1的显存问题? 你可能已经注意到,IQuest-Coder-V1-40B-Instruct 这个名字里藏着两个关键信息:40B(400亿参数)和Instru…

基于单片机的LCD1602液晶显示屏程序设计与工业集成

以下是对您提供的技术博文进行 深度润色与专业重构后的终稿 。我以一位深耕嵌入式工业HMI开发十余年的工程师视角,彻底摒弃AI腔调与教科书式结构,将原文转化为一篇 有温度、有战壕经验、有工程痛感、可直接用于项目交付的技术笔记 。 全文已按如下原则重写: ✅ 去除所…

GPEN训练数据准备难?FFHQ数据对生成步骤详解教程

GPEN训练数据准备难?FFHQ数据对生成步骤详解教程 你是不是也遇到过这种情况:想用GPEN做自己的人像修复模型训练,但卡在第一步——根本不知道怎么准备训练数据对?下载完FFHQ数据集,面对10万张高清人脸图发呆&#xff1…

DeepSeek-R1-Distill-Qwen-1.5B部署卡顿?显存优化实战解决方案

DeepSeek-R1-Distill-Qwen-1.5B部署卡顿?显存优化实战解决方案 你是不是也遇到过这样的情况:刚把 DeepSeek-R1-Distill-Qwen-1.5B 拉起来,一输入问题,网页就转圈、响应慢、甚至直接报 CUDA out of memory?明明是 1.5B…

大模型长文本处理新选择:Qwen3-14B 128k部署实战案例

大模型长文本处理新选择:Qwen3-14B 128k部署实战案例 1. 为什么你需要关注 Qwen3-14B? 你有没有遇到过这样的问题:手头有一份 30 页的 PDF 技术白皮书,想让它帮你提炼核心观点;或者一段 20 分钟的会议录音转文字稿&a…

YOLO26推理卡顿?CUDA 12.1优化部署实战提升性能

YOLO26推理卡顿?CUDA 12.1优化部署实战提升性能 你是不是也遇到过这样的情况:刚拉起YOLO26官方镜像,跑个detect.py就明显卡顿,GPU利用率忽高忽低,推理一帧要等好几秒?明明显卡是A100或RTX 4090&#xff0c…

科哥镜像支持多语言吗?Emotion2Vec+语音识别范围说明

科哥镜像支持多语言吗?Emotion2Vec语音识别范围说明 1. 开篇直击:你最关心的两个问题,先说清楚 很多人第一次打开科哥的 Emotion2Vec Large 语音情感识别系统时,会立刻问两个问题: “它能听懂中文吗?”“…

Paraformer-large显存溢出怎么办?批量推理参数调优实战

Paraformer-large显存溢出怎么办?批量推理参数调优实战 在实际部署 Paraformer-large 语音识别模型时,很多用户会遇到一个高频问题:明明有 24GB 显存的 4090D,一跑长音频就 OOM(Out of Memory)。更让人困惑…

目标检测新标杆:YOLOv11开源特性与部署优势解析

目标检测新标杆:YOLOv11开源特性与部署优势解析 你可能已经听说过YOLO系列模型在目标检测领域的统治力——从YOLOv5到YOLOv8,再到最近火热的YOLOv10,每一次迭代都在速度、精度和易用性上带来惊喜。而就在近期,一个被社区广泛称为…

Cute_Animal_For_Kids_Qwen_Image实操手册:ComfyUI工作流快速启动

Cute_Animal_For_Kids_Qwen_Image实操手册:ComfyUI工作流快速启动 1. 这是什么?一个专为孩子设计的“动物画师” 你有没有试过,蹲下来问小朋友:“你最想养什么小动物?” 答案可能是——长着蝴蝶翅膀的小兔子、戴厨师…

通俗解释CC2530编译、下载和运行全过程

以下是对您提供的博文内容进行 深度润色与重构后的技术文章 。整体风格已全面转向 真实工程师口吻的实战教学笔记 ,摒弃所有模板化表达、AI腔调和教科书式结构,代之以 逻辑自然流淌、经验穿插其中、细节直击痛点、语言简洁有力 的专业叙述方式。全…

MinerU如何提高表格识别精度?table-config调优教程

MinerU如何提高表格识别精度?table-config调优教程 MinerU 2.5-1.2B 是一款专为复杂 PDF 文档解析设计的深度学习提取工具,尤其擅长处理多栏排版、嵌套表格、跨页表格、带合并单元格的学术论文与技术报告。但很多用户反馈:同样一份含表格的 …

电路仿真circuits网页版从零实现:集成BrowserStack进行兼容性验证

以下是对您提供的技术博文进行 深度润色与重构后的专业级技术文章 。全文严格遵循您的所有要求: ✅ 彻底消除AI痕迹,语言自然、真实,如一位资深前端架构师EDA工具开发者在技术社区的真诚分享 ✅ 所有模块有机融合,无“引言/概…

语音识别前必做!FSMN-VAD模型预处理应用详解

语音识别前必做!FSMN-VAD模型预处理应用详解 在构建高质量语音识别系统时,一个常被忽视却至关重要的环节是——语音端点检测(VAD)。你是否遇到过这些问题:语音识别模型把长时间的静音误判为“啊…”“嗯…”&#xff…

Qwen-Image-Edit-2511性能表现,低显存也能跑

Qwen-Image-Edit-2511性能表现,低显存也能跑 最近在本地部署多个AI图像编辑模型时,反复被显存门槛卡住:动辄8G起步的VRAM要求,让不少朋友的4060、4070甚至部分4090用户都得调低分辨率、关掉细节、反复重试。但就在上周&#xff0…

MinerU镜像使用指南:预装环境优势与GPU支持深度解析

MinerU镜像使用指南:预装环境优势与GPU支持深度解析 MinerU 2.5-1.2B 深度学习 PDF 提取镜像专为解决科研、工程与内容工作者在处理复杂PDF文档时的痛点而生。它不是简单的OCR工具,而是一套融合视觉理解、结构识别与语义解析的多模态推理系统——能准确…

新手必看:usb_burning_tool固件打包基础配置教程

以下是对您提供的博文内容进行 深度润色与专业重构后的版本 。我以一位资深嵌入式系统教学博主的身份,彻底摒弃AI腔调、模板化结构和空泛术语堆砌,转而采用 真实工程师口吻 工程现场视角 教学逻辑驱动 的方式重写全文。文章不再分“引言/原理/总结…

2024年AI边缘计算:Qwen2.5-0.5B部署趋势解读

2024年AI边缘计算:Qwen2.5-0.5B部署趋势解读 1. 为什么0.5B模型正在成为边缘AI的“新标配” 你有没有遇到过这样的场景:在工厂巡检平板上,想让AI快速解释设备报警日志;在社区服务终端里,需要本地化响应老人的健康咨询…

Qwen All-in-One日志系统:请求追踪与调试信息记录

Qwen All-in-One日志系统:请求追踪与调试信息记录 1. 为什么需要专为All-in-One设计的日志系统? 你有没有遇到过这样的情况: 刚部署好一个轻量级AI服务,界面点几下确实能跑通——输入“今天心情真好”,它秒回“&…

基于JLink下载的PLC固件更新操作指南

以下是对您提供的技术博文《基于J-Link的PLC固件更新技术深度解析》进行 全面润色与专业重构后的终稿 。本次优化严格遵循您的全部要求: ✅ 彻底消除AI生成痕迹,语言自然、老练、有“人味”——像一位在工控一线摸爬滚打十年的嵌入式系统工程师,在深夜调试完一台死机PLC后…