# 工作手机Agent v3.0 - 设备端客户端 > 运行在 Android 手机上的 AI 数字员工,通过 WebSocket 连接服务器,实现远程智能控制。 ## 架构 ``` 手机端 Agent (Python/Termux) ├── WebSocket 长连接 → 服务器 SDK (FastAPI) ├── 技能引擎 → 微信/抖音/小红书/闲鱼 自动化 ├── 语音控制 → 本地语音命令 └── AI视觉 → 截屏+AI看屏决策 ↕ uiautomator2 + ADB 手机 Android 系统 + 微信/抖音等 APP ``` ## 快速开始 ### 方式 1: Termux 一键安装(推荐) ```bash # 手机安装 Termux 后,在 Termux 中执行: curl -sL http://服务器IP:8899/install.sh | bash -s -- --server ws://服务器IP:8899/ws/device # 启动 Agent bash ~/workphone-agent/start.sh ``` ### 方式 2: 通过 ADB 推送 ```bash # 在电脑上执行 cd sdk/agent bash package.sh # 先打包 adb push dist/agent.tar.gz /data/local/tmp/ adb shell "mkdir -p /data/local/tmp/workphone-agent && \ cd /data/local/tmp/workphone-agent && \ tar xzf /data/local/tmp/agent.tar.gz" # 在手机上运行(需要 Termux 环境) cd /data/local/tmp/workphone-agent python3 agent.py -s ws://服务器IP:8899/ws/device ``` ### 方式 3: 手动安装 ```bash # 安装依赖 pip install -r requirements.txt # 编辑配置 cp config.json.example config.json vim config.json # 修改 server_url # 运行 python3 agent.py ``` ## 配置 编辑 `config.json`(`server_url` 填**基础地址**,程序会自动拼上 `/设备ID`): ```json { "device_id": "", "server_url": "ws://192.168.1.100:8899/ws/device", "heartbeat_interval": 10, "project_id": "cunkebao" } ``` ### 配置优先级 环境变量 > 命令行参数 > config.json > 默认值 | 环境变量 | 命令行 | config.json | 说明 | |---------|--------|------------|------| | `WP_DEVICE_ID` | `-d, --device-id` | `device_id` | 设备ID(留空自动检测) | | `WP_SERVER_URL` | `-s, --server` | `server_url` | WebSocket 基础地址 | | `WP_HEARTBEAT` | `--heartbeat` | `heartbeat_interval` | 心跳间隔(秒),建议 5/10/30 | | `WP_PROJECT_ID` | `-p, --project` | `project_id` | 项目ID | ## 管理命令 ```bash cd ~/workphone-agent bash start.sh # 前台启动(可看实时日志) bash start_bg.sh # 后台启动 bash stop.sh # 停止 bash status.sh # 查看状态 tail -f agent.log # 跟踪日志 ``` ## 功能 - **WebSocket 长连接** — 设备主动连接服务器,断线指数退避重连(2s → 30s) - **心跳保活** — 应用层心跳 + 连续 3 次无响应自动断开重连 - **设备注册** — 启动后自动注册,上报能力(已安装APP、支持的Skill) - **远程命令** — 接收 `execute` / `agent_execute` 命令,本地执行后返回结果 - **技能系统** — 微信/抖音/小红书/闲鱼 完整 Skill(发消息、加好友、刷视频等) - **事件上报** — 技能执行完毕、异常等事件实时回传服务器 - **AI视觉** — 截屏 + Gemini 看屏,智能决策下一步操作 - **语音控制** — 支持本地语音命令(需安装 SpeechRecognition) - **信号处理** — 优雅关闭(SIGINT / SIGTERM) ## 目录结构 ``` agent/ ├── agent.py # 主程序入口(WebSocket + 命令分发) ├── skill_executor.py # 技能执行器(命令 → Skill 路由) ├── skill_bus.py # 技能间通信总线 ├── error_handler.py # 错误处理与重试 ├── vision_helper.py # AI视觉(截屏+看屏) ├── voice_agent.py # 语音控制Agent ├── config.json # 运行配置 ├── config.json.example # 配置模板 ├── requirements.txt # Python 依赖 ├── install.sh # Termux 一键安装脚本 ├── package.sh # 打包脚本(生成 dist/agent.tar.gz) ├── README.md # 本文件 └── skills/ ├── __init__.py # 技能注册表 ├── base.py # 技能基类(UI操作、重试、安全点击) ├── voice_control.py # 语音命令解析 ├── app_manager.py # 应用管理(打开/关闭/切换) ├── search.py # 通用搜索技能 ├── wechat/skill.py # 微信技能(完整SCRM) ├── douyin/skill.py # 抖音技能 ├── xhs/skill.py # 小红书技能 └── xianyu/skill.py # 闲鱼技能 ``` ## 服务端接口 | 接口 | 说明 | |------|------| | `GET /install.sh` | 获取安装脚本 | | `GET /api/v3/agent/download` | 下载 Agent 打包文件 | | `WS /ws/device/{device_id}` | WebSocket 设备连接 | | `GET /health` | 服务器健康检查 | ## 开机自启 安装 [Termux:Boot](https://f-droid.org/packages/com.termux.boot/) 后,`install.sh` 会自动创建开机启动脚本。 ## 依赖 - Python 3.8+ - websockets >= 12.0 - uiautomator2 >= 3.0.0 - adbutils >= 2.0.0 - httpx >= 0.25.0(可选,AI视觉用)