ClickClickClick
用可选的本地或远程模型执行 Android 与 macOS 界面操作任务。
这个 Agent 能做什么,适合哪些场景?
ClickClickClick 是一个用于自主 Android 与电脑界面操作的实验性框架。它将任务处理拆分为 Planner、Finder 和 Executor 三个组件,并可分别选择 OpenAI、Gemini 或 Ollama 作为规划与界面元素定位模型。项目提供命令行运行方式,以及用于提交任务的 `POST /execute` REST API;README 的目录也列出 Gradio Web 界面。任务结果通过 API 的 `result` 对象返回,Android 执行依赖运行代码的本机已安装 adb。作者明确说明当前代码高度实验性,建议自行承担使用风险。
用户先在 config/models.yaml 填写模型设置,并导出该文件指定的密钥;也可以运行 python main.py setup 交互选择 Planner 和 Finder。随后使用 python main.py run "<task>" 或 ./click3 run <task-prompt> 提交任务,并通过 --platform=android|osx、--planner-model=openai|gemini|ollama、--finder-model=gemini|openai|ollama 和 --image-quality 控制执行。REST 调用 POST /execute 接收 task_prompt、平台、规划模型、定位模型和图像质量,成功时返回 result 对象;无效参数返回 400,执行错误可返回 500。文档展示的任务包括创建 Gmail 草稿、在 Google Maps 查找公交站,以及在 Lichess 发起 3+2 对局。
- 需要在已配置 adb 的本地环境中,根据自然语言任务操作 Android 应用的自动化开发者。
- 希望把“打开 Google 新闻”一类浏览器操作交给 Gemini、OpenAI 或 Ollama 组合执行的原型团队。
- 需要以 HTTP 服务方式向 `POST /execute` 提交移动端或 macOS 任务的内部工具开发者。
- 想以 Ollama 本地视觉模型测试基础导航、并接受较慢响应和较弱元素定位能力的实验者。
- 需要用不同 Planner 与 Finder 模型组合评估界面自动化效果的工程人员。
这个 Agent 有哪些优点和局限?
- Planner 与 Finder 可独立选择 OpenAI、Gemini 或 Ollama,便于组合云端与本地模型。
- 同时覆盖 Android 与 `osx` 两个明确列出的执行平台。
- 除 CLI 外还记录了 `POST /execute` 服务接口,适合嵌入现有程序。
- 提供图像质量参数;降低图像质量可减小处理量,并为 Ollama 给出 `--image-quality=45` 的建议。
- 项目明确标注为高度实验性,行为和接口可能在后续提交中变化。
- Android 使用依赖本机 adb,部署环境需要具备该运行时条件。
- Ollama 的 qwen3.5:4b 被记录为规划较慢、仅适合基础导航,且不可靠于 Finder 的 UI 元素检测。
- 模型密钥和模型配置需要在 `config/models.yaml` 与环境变量中自行管理。
如何安装或部署这个 Agent?
克隆 https://github.com/instavm/clickclickclick 并进入目录。创建并激活虚拟环境:python3 -m venv venv,然后 source venv/bin/activate;Windows 使用 venv\Scripts\activate。执行 pip install -r requirements.txt。在 Android 上运行前,需在执行代码的本机安装 adb;在 config/models.yaml 配置模型设置,并导出其中指定的密钥。若要使用本地模型,还需安装并配置 Ollama。
如何使用这个 Agent?
先执行 python main.py setup,按提示选择 Planner、Finder 并提供所需 API 密钥。首次可运行:python main.py run "Open Google news" --platform=android --planner-model=openai --finder-model=gemini。本地 Ollama 示例为:python main.py run "Open Reddit" --platform=android --planner-model=ollama --finder-model=gemini --image-quality=45。启动 API 服务可使用 uvicorn api:app --reload,然后向 http://127.0.0.1:8000/execute 发送包含 task_prompt 的 JSON POST 请求。