AutoGLM 多设备管理——同时连接多台手机如何切换
场景
你同时插了两台手机(比如一台 Android 真机 + 一台 Android 模拟器),或者用无线连接了多台设备。运行 Agent 时需要明确告诉框架要操作哪一台。
adb devices 查看所有设备
adb devices
输出示例:
List of devices attached
XXXXXXXX device ← 有线 USB 连接的真机
192.168.1.100:5555 device ← WiFi 无线连接的另一台真机
emulator-5554 device ← Android 模拟器
用 --device-id 指定
# 操作有线真机
python main.py --device-id XXXXXXXX "打开美团"
# 操作无线设备
python main.py --device-id 192.168.1.100:5555 "打开微信"
# 操作模拟器
python main.py --device-id emulator-5554 "打开淘宝"
不指定 --device-id 时框架会自动选第一台设备(通常是 USB 连接的)。
Python API 中指定
from phone_agent import PhoneAgent
from phone_agent.model import ModelConfig
from phone_agent.agent import AgentConfig
agent_config = AgentConfig(
device_id="192.168.1.100:5555", # 指定设备
verbose=True,
)
agent = PhoneAgent(
model_config=model_config,
agent_config=agent_config,
)
agent.run("打开小红书搜索美食")
HDC 多设备(鸿蒙)
hdc list targets
输出多个设备 ID 后:
python main.py --device-type hdc --device-id "192.168.1.200:5037" "打开微信"
跨类型同时连接
一台 Android + 一台鸿蒙同时连是可以的,分别用 --device-type 指定类型:
# Android
python main.py --device-type adb --device-id XXXXXXXX "任务A"
# HarmonyOS
python main.py --device-type hdc --device-id "192.168.1.200:5037" "任务B"
Agent 框架每次只能操作一台设备,不存在"同时控制两台"的模式——要多设备并行需要你自己在 Python 脚本里开多进程/多线程。
并行多设备(进阶)
import concurrent.futures
from phone_agent import PhoneAgent, ModelConfig, AgentConfig
def run_on_device(device_id, task):
agent = PhoneAgent(
model_config=ModelConfig(base_url="http://localhost:8000/v1", model_name="autoglm-phone-9b"),
agent_config=AgentConfig(device_id=device_id),
)
return agent.run(task)
devices = [
("XXXXXXXX", "打开淘宝搜索无线耳机"),
("192.168.1.100:5555", "打开美团搜索附近咖啡店"),
]
with concurrent.futures.ThreadPoolExecutor() as executor:
results = list(executor.map(lambda d: run_on_device(*d), devices))