特种作业理论考试机房

资讯详情

手机放桌上自动刷抖音:用 AiPy + ADB 复刻一个国产开源 Agent 的自动化链路

手机放桌上自动刷抖音:用 AiPy + ADB 复刻一个国产开源 Agent 的自动化链路 1. 手机放桌上自动刷抖音这套链路到底在解决什么问题手机放桌上自动刷抖音本质上是把「人手动滑手机」这件事拆成三段可编程动作识别当前屏幕内容、决定下一步操作、通过 ADB 把操作指令发回手机。AiPy 在这里扮演的角色是「把自然语言翻译成 Python 脚本并本地执行」的 Agent 运行时ADB 是它与真实安卓设备之间的物理通道Python 负责把滑动、截图、等待这些动作串成可循环的任务流。适合谁适合已经玩过 OpenClaw、想找一个更轻量、数据不出本地的自动化方案的开发者也适合想用 Python 做手机端 UI 自动化但不想从零写 uiautomator 的人。我试过把一台旧安卓机用 USB 线连在笔记本上跑通「启动抖音 → 每 5 秒上滑一次 → 截图存档」的完整循环全程没有装模拟器也没有在手机上点任何按钮。这套链路最容易被低估的地方是它不需要 root不需要在手机上装额外 App只要开发者选项里的 USB 调试打开电脑端有 adb 和 Python 环境就能跑。下面我会把 ADB 连接配置、AiPy 任务脚本、TaoToken 统一 Key 接入、以及验证请求和常见报错全部拆开讲你可以直接复制着做。需要先明确一个边界本文所有操作都在你自己拥有的设备和你自己的账号上完成目的是学习 Agent 自动化链路和 ADB 编程不要用于批量刷量、爬取他人数据或任何违反平台规则的行为。抖音的包名是com.ss.android.ugc.aweme这个信息在后面的脚本里会反复用到。2. TaoToken 前置统一 Key 与 API 通道让 Agent 有模型可用AiPy 本身是一个本地执行框架它需要一个大模型来把「每 5 秒滑一次抖音」翻译成 Python 代码。如果你每个项目都去不同厂商注册、管理不同的 Key很快就会乱。TaoToken 的作用是把模型调用收敛到一个统一的 API 通道上你只需要维护一个 Key就能在 AiPy、Cline、Codex 这些工具里切换模型。官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 入口是 https://taotoken.net/api 注意 API 地址不带 UTM 参数配置的时候别写错。前置准备分三步。第一步注册后在控制台创建一个 API Key控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite Key 只在创建时完整显示一次复制到本地安全的地方。第二步确认你要用的模型 ID比如做代码生成任务时选一个擅长 Python 的模型模型对话页面在 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 你可以在那里先手动测一下模型对「写一段 ADB 滑动脚本」的响应质量。第三步如果你打算长期跑编码和 Agent 任务可以看 Coding Plan 页面 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 它更适合高频调用场景。这里要强调一个概念TaoToken 是模型能力的统一接入层不是手机控制工具。手机控制靠的是 ADB模型只负责生成和修正 Python 代码。把这两层分清楚后面排错的时候你才知道该看哪一层的日志。API Key 的管理页面在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 配置格式以文档为准。3. 可复制配置ADB 连接、AiPy 任务脚本与 settings 片段这一节是全文最核心的部分所有片段都可以直接复制。先做 ADB 连接配置。手机端设置 → 关于手机 → 连点版本号 7 次解锁开发者选项 → 返回设置 → 开发者选项 → 打开「USB 调试」和「USB 安装」。电脑端装好 platform-tools然后执行adb devices正常输出应该是这样device前面那串是设备序列号List of devices attached R58M12ABCDE device如果显示unauthorized说明手机上还没点「允许 USB 调试」解锁手机点一下即可。如果显示offline执行adb kill-server adb start-server再试。连接稳定后先手动验证一次滑动确认 ADB 本身没问题adb shell input swipe 540 1600 540 600 300这条命令的意思是从坐标 (540,1600) 滑到 (540,600)耗时 300 毫秒也就是一次上滑。不同分辨率坐标不同你可以先用adb shell wm size查分辨率再按比例换算。接下来是 AiPy 侧的任务脚本。AiPy 的机制是你用自然语言描述任务它生成 Python 代码本地执行。为了让生成结果稳定我建议你直接把下面这段作为「任务描述」喂给它而不是只写一句话# 任务控制已通过 USB 连接的安卓手机自动刷抖音 # 步骤 # 1. 用 adb devices 检查设备在线 # 2. 用 adb shell am start -n com.ss.android.ugc.aweme/.splash.SplashActivity 启动抖音 # 3. 等待 8 秒加载首页 # 4. 循环 20 次adb shell input swipe 540 1600 540 600 300然后 time.sleep(5) # 5. 每 5 次循环执行一次 adb exec-out screencap -p frame_{i}.png 存档 # 6. 结束后打印任务报告总滑动次数、截图数量、耗时AiPy 会把它翻译成可执行的 Python核心逻辑大致长这样你可以对照检查它生成的代码有没有漏步骤import subprocess, time, os def adb(cmd): return subprocess.run(fadb {cmd}, shellTrue, capture_outputTrue, textTrue) assert device in adb(devices).stdout, 设备未连接 adb(shell am start -n com.ss.android.ugc.aweme/.splash.SplashActivity) time.sleep(8) for i in range(20): adb(shell input swipe 540 1600 540 600 300) if i % 5 0: img subprocess.run(adb exec-out screencap -p, shellTrue, capture_outputTrue).stdout open(fframe_{i}.png, wb).write(img) time.sleep(5) print(done)然后是模型接入的 settings 片段。如果你用的是支持 OpenAI 兼容格式的客户端配置写成这样注意 Base URL 用不带 UTM 的 API 地址{ base_url: https://taotoken.net/api, api_key: sk-你的Key, model: 你的模型ID }如果你用的是 Codex 这类读auth.json的工具三件套要写全Base URL、Key、Model ID 一个都不能少{ base_url: https://taotoken.net/api, api_key: sk-你的Key, model: 你的模型ID }Cline 的 MCP 配置同理在 settings 里填 Base URL、API Key、Model ID 三项。Claude Code 的接入方式在文档里有专门说明地址是 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 照着填即可。记住一个原则任何工具里出现 Base URL、Key、Model ID 这三个字段就按上面这套填不要只填 Key 不填 Base URL否则会报 401。4. 验证请求与成功结果跑通一次自动滑动与内容识别配置写完必须验证不然你不知道是模型没通还是 ADB 没通。验证分两层。第一层验证模型通道用 curl 直接打一次 API确认 Key 和 Base URL 正确curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的Key \ -H Content-Type: application/json \ -d {model:你的模型ID,messages:[{role:user,content:用一句话说明 adb shell input swipe 的作用}]}如果返回里有choices字段和正常文本说明模型通道通了。如果返回 401看下一节的排查。第二层验证 ADB 链路先单独跑一次启动抖音adb shell am start -n com.ss.android.ugc.aweme/.splash.SplashActivity手机屏幕应该亮起并进入抖音首页。如果报Error: Activity not started说明包名或 Activity 名不对用下面这条命令查当前前台应用的真实 Activityadb shell dumpsys activity activities | grep mResumedActivity拿到真实 Activity 后替换脚本里的启动命令。两层都通了再跑完整的 AiPy 任务。成功的结果是这样的手机自动启动抖音首页加载完成后每隔 5 秒上滑一次电脑当前目录下出现frame_0.png、frame_5.png等截图文件终端最后打印done。你可以打开截图确认画面确实在变化这就证明「滑动 内容识别截图存档」这条链路跑通了。关于内容识别如果你想让 Agent 不只是截图而是真的「看懂」当前视频在讲什么可以把截图交给模型做多模态理解或者用 ADB 抓取 UI 树adb shell uiautomator dump /sdcard/ui.xml adb pull /sdcard/ui.xml .ui.xml里包含当前界面的控件文本Agent 可以据此判断是广告、直播还是普通视频再决定是继续滑还是停留。这一步是把「自动刷」升级成「智能刷」的关键也是 OpenClaw 式玩法的核心差异点。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth排错要按层定位不要一上来就重装。下面是我实际踩过的几类报错和对应处理。第一类401 Unauthorized。这几乎都是 Key 或 Base URL 的问题。检查三件事Key 有没有复制完整前后不能有空格、Base URL 是不是写成了带 UTM 的地址应该用https://taotoken.net/api、请求头是不是Authorization: Bearer sk-xxx格式。如果 Key 是在控制台刚创建的确认没有误删。API Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 可以对照检查。第二类local proxy failed或连接超时。这类报错通常出现在客户端配置了本地代理但代理没启动或者 Base URL 指向了一个不可达的地址。处理方式先把客户端里的代理设置清空Base URL 直接填https://taotoken.net/api不要经过任何中间层。如果你在公司网络下确认网络策略允许访问该域名。第三类reading choices相关报错比如cannot read property choices of undefined。这说明请求发出去了但返回体结构不对常见原因是模型 ID 写错服务端返回了错误对象而不是正常的 completions 结构。解决方式先用第 4 节的 curl 命令单独测确认返回里有choices数组再把同一个模型 ID 填回客户端。模型 ID 可以在模型对话页面 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 里确认。第四类OAuth相关报错。有些工具默认走 OAuth 登录流程但你要用的是 API Key 模式两者混用就会报错。处理方式在工具的认证设置里明确选择「API Key」而不是「OAuth」然后把 Base URL、Key、Model ID 三件套填全。Codex 的auth.json、Cline 的 MCP 配置、Claude Code 的接入配置都属于这一类任何一个字段缺失都会触发认证失败。Claude Code 的完整接入步骤在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里有说明。第五类ADB 层的device unauthorized或no devices found。这跟模型无关纯粹是 USB 调试没授权或数据线只供电不传数据。换一根能传数据的线手机上重新点「允许 USB 调试」再adb kill-server重启。6. 把链路固定下来从一次性脚本到可复用 Agent跑通一次不难难的是让它稳定复用。我的做法是把 ADB 连接检查、抖音启动、滑动循环、截图存档封装成一个函数参数化滑动次数和间隔这样换设备、换分辨率时只改坐标参数。坐标换算可以用adb shell wm size拿到宽高然后按比例算比如 1080x2400 的屏幕上滑起点 y 取 0.67 倍高度、终点取 0.25 倍高度。模型这一层把 Base URL、Key、Model ID 写进环境变量而不是硬编码在脚本里这样换 Key 不用改代码。长期跑编码和 Agent 任务的话Coding Plan 页面 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 有更合适的调用方案。需要临时验证模型对某段 ADB 脚本的理解就去模型对话页面 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 手动测一轮确认没问题再写进自动化流程。最后提醒一句自动化脚本跑起来之后手机最好保持常亮并关掉自动锁屏否则滑动到一半屏幕黑了ADB 的 input 事件会打到锁屏界面上。这个坑我在第一次跑的时候踩过截图全是黑屏排查了半天才发现是锁屏导致的。把开发者选项里的「保持唤醒」打开问题就没了。
SERVICES

这篇文章没讲透的,服务来补

把方法落到行动,报名、备考、查证三件事都有人接。

FAQ

看完文章,你可能还想问

高频问题先答一遍,没有你的问题直接问顾问。

考试批次、政策变化一有官方消息就同步更新;日常内容按周持续补充。首页资讯区和资讯中心都会同步,不会漏。

把你的工种、学历、工作内容发给我们,顾问给针对性的报考方案;涉及证书状态的,发证书照片或号码来,帮你核验给结论。

本页下方有「相关阅读」和「最新资讯」,资讯中心按考试通知、政策法规、培训辅导、行业资讯、证书知识、报考解答六大分类整理,按需查看。

低压电工证仪器考试通关全解:实操怕挂科?这份上岗必备指南请收好

低压电工证仪器考试通关全解:实操怕挂科?这份上岗必备指南请收好

低压电工证仪器考试通关全解:实操怕挂科?这份上岗必备指南请收好 实操考试心里没底怕挂科,是绝大多数报考低压电工证考生的通病。很多人坐在模拟台前,看着复杂的仪表和线路,手心冒汗,生怕一步错步步错,直接导致当场挂科。别慌,这种焦虑非常正常,但盲目恐惧解决不了问题,关键在于摸清仪器考试的底层逻辑。低压电工…

2026/10/12 13:46:59相关阅读
Python数据分析与可视化:中国城市PM2.5值的数据分析及可视化实战

Python数据分析与可视化:中国城市PM2.5值的数据分析及可视化实战

简介:这份资源面向Python数据分析与可视化初学者及需要完成期末大作业、课程设计的学生,围绕中国多个城市PM2.5值展开完整的数据分析与可视化实践。项目以真实城市空气质量数据为对象,涵盖数据读取、清洗、统计分析与多维度图表展示&#xff…

2026/10/12 13:46:27相关阅读
基于k均值聚类的音乐数据可视化分析系统:Python源码实现与避坑指南

基于k均值聚类的音乐数据可视化分析系统:Python源码实现与避坑指南

简介:本资源为基于K均值聚类的音乐数据可视化分析系统Python源码包,面向计算机、数据科学与大数据、人工智能等专业的在校学生与教师,可用于课程设计、毕业设计、大作业或项目立项演示。包内共48个文件,以py源码、csv数据集、png可…

2026/10/12 13:43:27相关阅读
开源代码审查工具open-code-review:配置驱动与CI集成实践

开源代码审查工具open-code-review:配置驱动与CI集成实践

前前后后在几个技术团队里推动过代码审查,也花了不少时间研究各种开源的、商业的代码协作方案。说句实话,代码审查这件事听起来简单,真正落地时却是另一回事:有人嫌流程烦,有人不知道怎么批,还有人把审查当…

阅读全文
焦作办理电工证去哪?外省证能转吗?10年老师傅给你个良心建议

焦作办理电工证去哪?外省证能转吗?10年老师傅给你个良心建议

焦作办理电工证去哪?外省证能转吗?10年老师傅给你个良心建议 之前在外省考的电工证,现在回焦作干活,这证到底还能不能用?能不能直接转过来?很多刚回豫的朋友心里都没底,生怕白考了。 今天不绕弯子,直接给个 良心建议 :别折腾“转证”,直接看你的证有没有效。如果快到期或已过期,在 焦作办理电工证去哪…

阅读全文
电工证小程序查询步骤:外省转考避坑指南,千万别踩坑

电工证小程序查询步骤:外省转考避坑指南,千万别踩坑

电工证小程序查询步骤:外省转考避坑指南,千万别踩坑 之前考的电工证在外省能不能直接转过来?这是很多刚来周口或者准备跨省发展的电工兄弟最头疼的问题。很多人拿着老家的证,以为全国通用就直接上岗,结果被安监部门查了个正着,不仅罚了款,还停了工。这里必须给大家提个醒:操作证是“全国通用”没错,但你的信息必须…

阅读全文
消防施工需要电工证吗培训机构怎么选

消防施工需要电工证吗培训机构怎么选

消防施工要电工证吗?电子证书避坑指南,别再被中介坑了 很多在消防工程一线摸爬滚打的兄弟,拿到图纸第一反应就是:这活儿我能干吗?我手里这张电工证到底管不管用?最怕的就是找机构报名交了一堆钱,结果发下来个“山寨”证,或者考完了才发现自己的证书在系统里查不到,到时候甲方验收一查,全是麻烦。特别是现在全面推…

阅读全文
法医式思考:可解释、可泛化的深度伪造检测新范式

法医式思考:可解释、可泛化的深度伪造检测新范式

一个标题让我在原地琢磨了很久:ICLR 2026 Oral 把“让大模型学会像法医般思考”和“可解释、可泛化的深度伪造检测”放在了一起。如果你长期关注伪造检测这个方向,应该一眼就能看出这背后的野心:过去我们做检测,主要回答“这张图是…

阅读全文
深入HTTP协议:报文、状态码与高级特性全解析

深入HTTP协议:报文、状态码与高级特性全解析

简介:资源内含一份系统讲解 HTTP 协议核心原理与实战要点的图文 PDF,面向有一定网络基础的开发人员和技术爱好者,帮助读者从报文结构、请求方法、状态码等基础知识,延伸到跨域、缓存、代理、大文件传输等实际场景,再到…

阅读全文

这篇文章没解决你的问题?

直接问顾问,把你的工种、学历、年龄说清楚,几分钟给你一个靠谱的报考方案。