Files
workphone-sdk/sdk/agent/docs/AGENT_HAWK.md

2.0 KiB
Raw Blame History

Agent 与 Hawk 边界与协同说明

代码隔离

板块 目录 职责
Agent agent.py, skill_executor.py, skills/* 业务逻辑、技能执行、WebSocket 连接与重连策略、与服务器通信
Hawk hawk/* 仅负责网络层:检测网络、开/关 WiFi、打开系统网络设置、连接已保存网络、重试等
  • Agent 不实现 Hawk 的细节(如 svc wifi、打开设置页 UIHawk 不依赖 Agent 或技能总线。
  • 协同仅通过接口Agent 调用 hawk.try_reconnect_network(device)hawk.is_network_available(device)

协同方式

  1. 断网时自动恢复网络
    Agent 在 WebSocket 断开且准备重连前,若存在设备句柄 self.d,会调用 try_reconnect_network(self.d),由 Hawk 在设备上执行合法网络恢复(开 WiFi、打开设置、连接已保存网络等再继续指数退避重连。

  2. 自然语言触发
    用户说「连接网络」「恢复网络」「打开 WiFi」「断网了」等时Agent 通过 SkillExecutor 调用 network_reconnect 技能,该技能内部委托 Hawk 执行上述合法操作。

网络恢复行为(仅合法)

Hawk 只做以下操作,不包含且永不包含破解密码、未授权访问等任何违规行为:

  • 通过系统 shell 开启 WiFisvc wifi enable
  • 打开系统「设置」→「网络/WLAN/WiFi」页面
  • 在设置页中点击「已保存」「已知网络」等,尝试连接已保存网络
  • 若仍无网络,返回说明「请在本机选择已保存网络或手动输入密码连接」

用户若需连接新网络或输入密码,仅在系统设置界面内手动完成。

依赖关系

Agent (agent.py, skills/)
  └─ 可选依赖 Hawkfrom hawk import try_reconnect_network
Hawk (hawk/)
  └─ 仅依赖 uiautomator2 设备对象,无 Agent 依赖

Hawk 缺失时Agent 仍可运行;断网时仅跳过「尝试恢复网络」步骤,直接进入重连退避。