Files
Open-AutoGLM/examples/basic_usage.py
zRzRzRzRzRzRzR 7e1785e08e draft init
2025-12-08 23:54:29 +08:00

160 lines
3.9 KiB
Python

#!/usr/bin/env python3
"""
Phone Agent 使用示例
演示如何通过 Python API 使用 Phone Agent 进行手机自动化任务。
"""
from phone_agent import PhoneAgent
from phone_agent.agent import AgentConfig
from phone_agent.model import ModelConfig
def example_basic_task():
"""基础任务示例"""
# 配置模型端点
model_config = ModelConfig(
base_url="http://localhost:8000/v1",
model_name="autoglm-phone-9b",
temperature=0.1,
)
# 配置 Agent 行为
agent_config = AgentConfig(
max_steps=50,
verbose=True,
)
# 创建 Agent
agent = PhoneAgent(
model_config=model_config,
agent_config=agent_config,
)
# 执行任务
result = agent.run("打开小红书搜索美食攻略")
print(f"任务结果: {result}")
def example_with_callbacks():
"""带回调的任务示例"""
def my_confirmation(message: str) -> bool:
"""敏感操作确认回调"""
print(f"\n[需要确认] {message}")
response = input("是否继续?(y/n): ")
return response.lower() in ("yes", "y", "")
def my_takeover(message: str) -> None:
"""人工接管回调"""
print(f"\n[需要人工操作] {message}")
print("请手动完成操作...")
input("完成后按回车继续: ")
# 创建带自定义回调的 Agent
agent = PhoneAgent(
confirmation_callback=my_confirmation,
takeover_callback=my_takeover,
)
# 执行可能需要确认的任务
result = agent.run("打开淘宝搜索无线耳机并加入购物车")
print(f"任务结果: {result}")
def example_step_by_step():
"""单步执行示例(用于调试)"""
agent = PhoneAgent()
# 初始化任务
result = agent.step("打开美团搜索附近的火锅店")
print(f"步骤 1: {result.action}")
# 如果未完成,继续执行
while not result.finished and agent.step_count < 10:
result = agent.step()
print(f"步骤 {agent.step_count}: {result.action}")
print(f" 思考过程: {result.thinking[:100]}...")
print(f"\n最终结果: {result.message}")
def example_multiple_tasks():
"""批量任务示例"""
agent = PhoneAgent()
tasks = [
"打开高德地图查看实时路况",
"打开大众点评搜索附近的咖啡店",
"打开bilibili搜索Python教程",
]
for task in tasks:
print(f"\n{'='*50}")
print(f"任务: {task}")
print('='*50)
result = agent.run(task)
print(f"结果: {result}")
# 重置 Agent 状态
agent.reset()
def example_remote_device():
"""远程设备示例"""
from phone_agent.adb import ADBConnection
# 创建连接管理器
conn = ADBConnection()
# 连接远程设备
success, message = conn.connect("192.168.1.100:5555")
if not success:
print(f"连接失败: {message}")
return
print(f"连接成功: {message}")
# 创建 Agent 并指定设备
agent_config = AgentConfig(
device_id="192.168.1.100:5555",
verbose=True,
)
agent = PhoneAgent(agent_config=agent_config)
# 执行任务
result = agent.run("打开微信查看消息")
print(f"任务结果: {result}")
# 断开连接
conn.disconnect("192.168.1.100:5555")
if __name__ == "__main__":
print("Phone Agent 使用示例")
print("=" * 50)
# 运行基础示例
print("\n1. 基础任务示例")
print("-" * 30)
example_basic_task()
# 其他示例可以取消注释运行
# print("\n2. 带回调的任务示例")
# print("-" * 30)
# example_with_callbacks()
# print("\n3. 单步执行示例")
# print("-" * 30)
# example_step_by_step()
# print("\n4. 批量任务示例")
# print("-" * 30)
# example_multiple_tasks()
# print("\n5. 远程设备示例")
# print("-" * 30)
# example_remote_device()