| |
| """ |
| Phone Agent Usage Examples / Phone Agent 使用示例 |
| |
| Demonstrates how to use Phone Agent for phone automation tasks via Python API. |
| 演示如何通过 Python API 使用 Phone Agent 进行手机自动化任务。 |
| """ |
|
|
| from phone_agent import PhoneAgent |
| from phone_agent.agent import AgentConfig |
| from phone_agent.config import get_messages |
| from phone_agent.model import ModelConfig |
|
|
|
|
| def example_basic_task(lang: str = "cn"): |
| """Basic task example / 基础任务示例""" |
| msgs = get_messages(lang) |
|
|
| |
| model_config = ModelConfig( |
| base_url="http://localhost:8000/v1", |
| model_name="autoglm-phone-9b", |
| temperature=0.1, |
| ) |
|
|
| |
| agent_config = AgentConfig( |
| max_steps=50, |
| verbose=True, |
| lang=lang, |
| ) |
|
|
| |
| agent = PhoneAgent( |
| model_config=model_config, |
| agent_config=agent_config, |
| ) |
|
|
| |
| result = agent.run("打开小红书搜索美食攻略") |
| print(f"{msgs['task_result']}: {result}") |
|
|
|
|
| def example_with_callbacks(lang: str = "cn"): |
| """Task example with callbacks / 带回调的任务示例""" |
| msgs = get_messages(lang) |
|
|
| def my_confirmation(message: str) -> bool: |
| """Sensitive operation confirmation callback / 敏感操作确认回调""" |
| print(f"\n[{msgs['confirmation_required']}] {message}") |
| response = input(f"{msgs['continue_prompt']}: ") |
| return response.lower() in ("yes", "y", "是") |
|
|
| def my_takeover(message: str) -> None: |
| """Manual takeover callback / 人工接管回调""" |
| print(f"\n[{msgs['manual_operation_required']}] {message}") |
| print(msgs["manual_operation_hint"]) |
| input(f"{msgs['press_enter_when_done']}: ") |
|
|
| |
| agent_config = AgentConfig(lang=lang) |
| agent = PhoneAgent( |
| agent_config=agent_config, |
| confirmation_callback=my_confirmation, |
| takeover_callback=my_takeover, |
| ) |
|
|
| |
| result = agent.run("打开淘宝搜索无线耳机并加入购物车") |
| print(f"{msgs['task_result']}: {result}") |
|
|
|
|
| def example_step_by_step(lang: str = "cn"): |
| """Step-by-step execution example (for debugging) / 单步执行示例(用于调试)""" |
| msgs = get_messages(lang) |
|
|
| agent_config = AgentConfig(lang=lang) |
| agent = PhoneAgent(agent_config=agent_config) |
|
|
| |
| result = agent.step("打开美团搜索附近的火锅店") |
| print(f"{msgs['step']} 1: {result.action}") |
|
|
| |
| while not result.finished and agent.step_count < 10: |
| result = agent.step() |
| print(f"{msgs['step']} {agent.step_count}: {result.action}") |
| print(f" {msgs['thinking']}: {result.thinking[:100]}...") |
|
|
| print(f"\n{msgs['final_result']}: {result.message}") |
|
|
|
|
| def example_multiple_tasks(lang: str = "cn"): |
| """Batch task example / 批量任务示例""" |
| msgs = get_messages(lang) |
|
|
| agent_config = AgentConfig(lang=lang) |
| agent = PhoneAgent(agent_config=agent_config) |
|
|
| tasks = [ |
| "打开高德地图查看实时路况", |
| "打开大众点评搜索附近的咖啡店", |
| "打开bilibili搜索Python教程", |
| ] |
|
|
| for task in tasks: |
| print(f"\n{'=' * 50}") |
| print(f"{msgs['task']}: {task}") |
| print("=" * 50) |
|
|
| result = agent.run(task) |
| print(f"{msgs['result']}: {result}") |
|
|
| |
| agent.reset() |
|
|
|
|
| def example_remote_device(lang: str = "cn"): |
| """Remote device example / 远程设备示例""" |
| from phone_agent.adb import ADBConnection |
|
|
| msgs = get_messages(lang) |
|
|
| |
| conn = ADBConnection() |
|
|
| |
| success, message = conn.connect("192.168.1.100:5555") |
| if not success: |
| print(f"{msgs['connection_failed']}: {message}") |
| return |
|
|
| print(f"{msgs['connection_successful']}: {message}") |
|
|
| |
| agent_config = AgentConfig( |
| device_id="192.168.1.100:5555", |
| verbose=True, |
| lang=lang, |
| ) |
|
|
| agent = PhoneAgent(agent_config=agent_config) |
|
|
| |
| result = agent.run("打开微信查看消息") |
| print(f"{msgs['task_result']}: {result}") |
|
|
| |
| conn.disconnect("192.168.1.100:5555") |
|
|
|
|
| if __name__ == "__main__": |
| import argparse |
|
|
| parser = argparse.ArgumentParser(description="Phone Agent Usage Examples") |
| parser.add_argument( |
| "--lang", |
| type=str, |
| default="cn", |
| choices=["cn", "en"], |
| help="Language for UI messages (cn=Chinese, en=English)", |
| ) |
| args = parser.parse_args() |
|
|
| msgs = get_messages(args.lang) |
|
|
| print("Phone Agent Usage Examples") |
| print("=" * 50) |
|
|
| |
| print(f"\n1. Basic Task Example") |
| print("-" * 30) |
| example_basic_task(args.lang) |
|
|
| |
| |
| |
| |
|
|
| |
| |
| |
|
|
| |
| |
| |
|
|
| |
| |
| |
|
|