AutoGLM 中文文档 下载 App

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))

相关阅读