lybic-guiagents 0.1.0__tar.gz → 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of lybic-guiagents might be problematic. Click here for more details.

Files changed (118) hide show
  1. {lybic_guiagents-0.1.0/lybic_guiagents.egg-info → lybic_guiagents-0.2.0}/PKG-INFO +69 -4
  2. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/README.md +64 -2
  3. lybic_guiagents-0.2.0/gui_agents/__init__.py +67 -0
  4. lybic_guiagents-0.2.0/gui_agents/agents/Backend/ADBBackend.py +62 -0
  5. lybic_guiagents-0.2.0/gui_agents/agents/Backend/Backend.py +28 -0
  6. lybic_guiagents-0.2.0/gui_agents/agents/Backend/LybicBackend.py +355 -0
  7. lybic_guiagents-0.2.0/gui_agents/agents/Backend/PyAutoGUIBackend.py +186 -0
  8. lybic_guiagents-0.2.0/gui_agents/agents/Backend/PyAutoGUIVMwareBackend.py +250 -0
  9. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/agents/hardware_interface.py +4 -2
  10. lybic_guiagents-0.2.0/gui_agents/lybic_client/lybic_client.py +88 -0
  11. lybic_guiagents-0.2.0/gui_agents/prompts/prompts.py +869 -0
  12. lybic_guiagents-0.2.0/gui_agents/service/__init__.py +19 -0
  13. lybic_guiagents-0.2.0/gui_agents/service/agent_service.py +527 -0
  14. lybic_guiagents-0.2.0/gui_agents/service/api_models.py +136 -0
  15. lybic_guiagents-0.2.0/gui_agents/service/config.py +241 -0
  16. lybic_guiagents-0.2.0/gui_agents/service/exceptions.py +35 -0
  17. lybic_guiagents-0.2.0/gui_agents/store/registry.py +22 -0
  18. lybic_guiagents-0.2.0/gui_agents/tools/__init__.py +0 -0
  19. lybic_guiagents-0.2.0/gui_agents/unit_test/__init__.py +0 -0
  20. lybic_guiagents-0.2.0/gui_agents/utils/__init__.py +0 -0
  21. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0/lybic_guiagents.egg-info}/PKG-INFO +69 -4
  22. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/lybic_guiagents.egg-info/SOURCES.txt +17 -0
  23. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/lybic_guiagents.egg-info/requires.txt +5 -1
  24. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/pyproject.toml +7 -2
  25. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/tests/test_hardware_interface.py +2 -2
  26. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/LICENSE +0 -0
  27. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/__init__.py +0 -0
  28. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/actions.py +0 -0
  29. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/controllers/__init__.py +0 -0
  30. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/controllers/python.py +0 -0
  31. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/controllers/setup.py +0 -0
  32. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/desktop_env.py +0 -0
  33. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/__init__.py +0 -0
  34. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/getters/__init__.py +0 -0
  35. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/getters/calc.py +0 -0
  36. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/getters/chrome.py +0 -0
  37. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/getters/file.py +0 -0
  38. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/getters/general.py +0 -0
  39. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/getters/gimp.py +0 -0
  40. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/getters/impress.py +0 -0
  41. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/getters/info.py +0 -0
  42. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/getters/misc.py +0 -0
  43. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/getters/replay.py +0 -0
  44. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/getters/vlc.py +0 -0
  45. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/getters/vscode.py +0 -0
  46. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/__init__.py +0 -0
  47. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/basic_os.py +0 -0
  48. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/chrome.py +0 -0
  49. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/docs.py +0 -0
  50. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/general.py +0 -0
  51. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/gimp.py +0 -0
  52. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/libreoffice.py +0 -0
  53. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/others.py +0 -0
  54. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/pdf.py +0 -0
  55. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/slides.py +0 -0
  56. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/table.py +0 -0
  57. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/thunderbird.py +0 -0
  58. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/utils.py +0 -0
  59. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/vlc.py +0 -0
  60. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/evaluators/metrics/vscode.py +0 -0
  61. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/__init__.py +0 -0
  62. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/aws/__init__.py +0 -0
  63. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/aws/manager.py +0 -0
  64. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/aws/provider.py +0 -0
  65. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/aws/provider_with_proxy.py +0 -0
  66. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/aws/proxy_pool.py +0 -0
  67. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/azure/__init__.py +0 -0
  68. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/azure/manager.py +0 -0
  69. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/azure/provider.py +0 -0
  70. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/base.py +0 -0
  71. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/gcp/__init__.py +0 -0
  72. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/gcp/manager.py +0 -0
  73. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/gcp/provider.py +0 -0
  74. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/virtualbox/__init__.py +0 -0
  75. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/virtualbox/manager.py +0 -0
  76. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/virtualbox/provider.py +0 -0
  77. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/vmware/__init__.py +0 -0
  78. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/vmware/manager.py +0 -0
  79. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/desktop_env/providers/vmware/provider.py +0 -0
  80. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/agents/Action.py +0 -0
  81. {lybic_guiagents-0.1.0/gui_agents → lybic_guiagents-0.2.0/gui_agents/agents/Backend}/__init__.py +0 -0
  82. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/agents/__init__.py +0 -0
  83. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/agents/agent_s.py +0 -0
  84. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/agents/global_state.py +0 -0
  85. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/agents/grounding.py +0 -0
  86. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/agents/manager.py +0 -0
  87. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/agents/translator.py +0 -0
  88. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/agents/worker.py +0 -0
  89. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/cli_app.py +0 -0
  90. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/core/__init__.py +0 -0
  91. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/core/engine.py +0 -0
  92. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/core/knowledge.py +0 -0
  93. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/core/mllm.py +0 -0
  94. {lybic_guiagents-0.1.0/gui_agents/tools → lybic_guiagents-0.2.0/gui_agents/lybic_client}/__init__.py +0 -0
  95. {lybic_guiagents-0.1.0/gui_agents/unit_test → lybic_guiagents-0.2.0/gui_agents/prompts}/__init__.py +0 -0
  96. {lybic_guiagents-0.1.0/gui_agents/utils → lybic_guiagents-0.2.0/gui_agents/store}/__init__.py +0 -0
  97. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/tools/tools.py +0 -0
  98. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/unit_test/run_tests.py +0 -0
  99. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/unit_test/test_manager.py +0 -0
  100. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/unit_test/test_worker.py +0 -0
  101. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/utils/analyze_display.py +0 -0
  102. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/utils/common_utils.py +0 -0
  103. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/utils/display_viewer.py +0 -0
  104. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/utils/embedding_manager.py +0 -0
  105. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/gui_agents/utils/image_axis_utils.py +0 -0
  106. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/lybic_guiagents.egg-info/dependency_links.txt +0 -0
  107. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/lybic_guiagents.egg-info/top_level.txt +0 -0
  108. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/setup.cfg +0 -0
  109. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/setup.py +0 -0
  110. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/tests/test_aci.py +0 -0
  111. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/tests/test_app_switching.py +0 -0
  112. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/tests/test_global_instance.py +0 -0
  113. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/tests/test_registry.py +0 -0
  114. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/tests/test_translator.py +0 -0
  115. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/tests/test_uielement_base.py +0 -0
  116. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/tests/test_uielement_linux.py +0 -0
  117. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/tests/test_uielement_macos.py +0 -0
  118. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.0}/tests/test_uielement_osworld.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lybic-guiagents
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Summary: An open-source agentic framework that enables AI to use computers like humans and can provide a multi-agent runtime environment as an infrastructure capability
5
5
  Author: Lybic Development Team
6
6
  Author-email: Lybic Development Team <lybic@tingyutech.com>
@@ -33,7 +33,7 @@ Requires-Dist: certifi
33
33
  Requires-Dist: pytesseract
34
34
  Requires-Dist: google-genai
35
35
  Requires-Dist: python-dotenv
36
- Requires-Dist: Pillow~=11.0.0
36
+ Requires-Dist: Pillow>=11.3.0
37
37
  Requires-Dist: fabric
38
38
  Requires-Dist: gymnasium~=0.28.1
39
39
  Requires-Dist: requests~=2.31.0
@@ -88,9 +88,12 @@ Requires-Dist: azure-mgmt-network
88
88
  Requires-Dist: docker
89
89
  Requires-Dist: loguru
90
90
  Requires-Dist: dotenv
91
+ Requires-Dist: lybic>=0.7.0
91
92
  Requires-Dist: pyobjc; platform_system == "Darwin"
92
93
  Requires-Dist: pywinauto; platform_system == "Windows"
93
94
  Requires-Dist: pywin32; platform_system == "Windows"
95
+ Provides-Extra: dev
96
+ Requires-Dist: pytest; extra == "dev"
94
97
  Dynamic: author
95
98
  Dynamic: license-file
96
99
  Dynamic: requires-python
@@ -109,6 +112,19 @@ Dynamic: requires-python
109
112
  Lybic GUI Agent: <small>An open-source agentic framework for Computer Use Agents</small>
110
113
  </h1>
111
114
 
115
+ <p align="center">
116
+ <small>Supported OS:</small>
117
+ <img src="https://img.shields.io/badge/OS-Windows-blue?logo=windows&logoColor=white" alt="Windows">
118
+ <img src="https://img.shields.io/badge/OS-macOS-black?logo=apple&logoColor=white" alt="macOS">
119
+ <img src="https://img.shields.io/badge/OS-Linux-yellow?logo=linux&logoColor=black" alt="Linux">
120
+ <br/>
121
+ <small>Latest Version:</small><a href="https://pypi.org/project/lybic-guiagents/"><img alt="PyPI" src="https://img.shields.io/pypi/v/lybic-guiagents"></a>
122
+ &nbsp;
123
+ <a href="https://github.com/lybic/agent/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/pypi/l/lybic-guiagents"></a>
124
+ &nbsp;
125
+ <a href="https://github.com/lybic/agent"><img alt="Stars" src="https://img.shields.io/github/stars/lybic/agent?style=social"></a>
126
+ </p>
127
+
112
128
  ## What is Lybic GUI Agent?
113
129
 
114
130
  Lybic platform placeholder - comprehensive AI platform for building and deploying intelligent agents
@@ -124,6 +140,7 @@ Lybic GUI Agent is an open-source framework that enables developers and business
124
140
  </div>
125
141
 
126
142
  ## 🥳 Updates
143
+ - [x] **2025/09/14**: The paper has been accepted by [arxiv](https://arxiv.org/abs/2509.11067)
127
144
  - [x] **2025/09/09**: We achieved the world's first place in the 50-step length of [OS-world](https://os-world.github.io/)!
128
145
  - [x] **2025/08/08**: Released v0.1.0 of [Lybic GUI Agent](https://github.com/lybic/agent) library, with support for Windows, Mac, Ubuntu and Lybic API!
129
146
 
@@ -132,6 +149,8 @@ Lybic GUI Agent is an open-source framework that enables developers and business
132
149
  1. [💡 Introduction](#-introduction)
133
150
  2. [🛠️ Installation & Setup](#%EF%B8%8F-installation--setup)
134
151
  3. [🚀 Usage](#-usage)
152
+ 4. [🔧 Troubleshooting](#-troubleshooting)
153
+ 5. [💬 Citations](#-citations)
135
154
 
136
155
  ## 💡 Introduction
137
156
 
@@ -161,7 +180,7 @@ Lybic GUI Agent is an open-source framework that enables developers and business
161
180
  <tr>
162
181
  <td>OSWorld Verified (50 step)</td>
163
182
  <td><b>57.1%</b></td>
164
- <td>53.1%</td>
183
+ <td>54.2%</td>
165
184
  </tr>
166
185
  </table>
167
186
  </div>
@@ -176,7 +195,15 @@ Lybic GUI Agent is an open-source framework that enables developers and business
176
195
  > [!WARNING]
177
196
  > To leverage the full potential of Lybic GUI Agent, we support multiple model providers including OpenAI, Anthropic, Gemini, and Doubao. For the best visual grounding performance, we recommend using UI-TARS models.
178
197
 
179
- ### Installation
198
+ ### Installation(from pip)
199
+
200
+ You can install Lybic GUI Agent by using pip:
201
+
202
+ ```bash
203
+ pip install lybic-guiagents
204
+ ```
205
+
206
+ ### Installation(from source code)
180
207
 
181
208
  You can use [UV](https://docs.astral.sh/uv/getting-started/installation/) (a modern Python package manager) version 0.8.5 for installation:
182
209
 
@@ -277,6 +304,7 @@ Run in interactive mode with the `lybic` backend:
277
304
  python gui_agents/cli_app.py --backend lybic
278
305
  ```
279
306
 
307
+
280
308
  Run a single query with the `pyautogui` backend and a maximum of 20 steps:
281
309
  ```sh
282
310
  python gui_agents/cli_app.py --backend pyautogui --query "Find the result of 8 × 7 on a calculator" --max-steps 20
@@ -308,6 +336,25 @@ LYBIC_MAX_LIFE_SECONDS=3600
308
336
  > LYBIC_PRECREATE_SID=SBX-XXXXXXXXXXXXXXX
309
337
  > ```
310
338
 
339
+ ### Use as a service
340
+
341
+ After installing lybic-guiagents, you can run it as a service.
342
+
343
+ Main Components:
344
+ - AgentService: High-level service interface (recommended for most users)
345
+ - AgentS2, AgentSFast: Core agent implementations
346
+ - HardwareInterface: Hardware abstraction layer
347
+ - ServiceConfig: Configuration management
348
+
349
+ Quick Start:
350
+
351
+ ```python
352
+ from gui_agents import AgentService
353
+ service = AgentService()
354
+ result = service.execute_task("Take a screenshot")
355
+ print(f"Task completed: {result.status}")
356
+ ```
357
+
311
358
  ### VMware Configuration
312
359
 
313
360
  To use PyAutoGUI with VMware, you need to install [VMware Workstation Pro](https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion) (on Windows) and create a virtual machine.
@@ -358,6 +405,7 @@ USE_PRECREATE_VM=Ubuntu
358
405
  ```bash
359
406
  uv sync
360
407
  uv pip install -e .
408
+ # uv pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
361
409
  ```
362
410
 
363
411
  #### 3. Lybic Sandbox Connection Issues
@@ -406,6 +454,23 @@ If you encounter issues not covered here:
406
454
  - Complete error messages
407
455
  - Steps to reproduce the issue
408
456
 
457
+ ## 💬 Citations
458
+
459
+ If you find this codebase useful, please cite:
460
+
461
+ ```bibtex
462
+ @misc{guo2025agenticlybicmultiagentexecution,
463
+ title={Agentic Lybic: Multi-Agent Execution System with Tiered Reasoning and Orchestration},
464
+ author={Liangxuan Guo and Bin Zhu and Qingqian Tao and Kangning Liu and Xun Zhao and Xianzhe Qin and Jin Gao and Guangfu Hao},
465
+ year={2025},
466
+ eprint={2509.11067},
467
+ archivePrefix={arXiv},
468
+ primaryClass={cs.AI},
469
+ url={https://arxiv.org/abs/2509.11067},
470
+ }
471
+ ```
472
+
473
+
409
474
  ## Stargazers over time
410
475
 
411
476
  [![Stargazers over time](https://starchart.cc/lybic/agent.svg)](https://starchart.cc/lybic/agent)
@@ -12,6 +12,19 @@
12
12
  Lybic GUI Agent: <small>An open-source agentic framework for Computer Use Agents</small>
13
13
  </h1>
14
14
 
15
+ <p align="center">
16
+ <small>Supported OS:</small>
17
+ <img src="https://img.shields.io/badge/OS-Windows-blue?logo=windows&logoColor=white" alt="Windows">
18
+ <img src="https://img.shields.io/badge/OS-macOS-black?logo=apple&logoColor=white" alt="macOS">
19
+ <img src="https://img.shields.io/badge/OS-Linux-yellow?logo=linux&logoColor=black" alt="Linux">
20
+ <br/>
21
+ <small>Latest Version:</small><a href="https://pypi.org/project/lybic-guiagents/"><img alt="PyPI" src="https://img.shields.io/pypi/v/lybic-guiagents"></a>
22
+ &nbsp;
23
+ <a href="https://github.com/lybic/agent/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/pypi/l/lybic-guiagents"></a>
24
+ &nbsp;
25
+ <a href="https://github.com/lybic/agent"><img alt="Stars" src="https://img.shields.io/github/stars/lybic/agent?style=social"></a>
26
+ </p>
27
+
15
28
  ## What is Lybic GUI Agent?
16
29
 
17
30
  Lybic platform placeholder - comprehensive AI platform for building and deploying intelligent agents
@@ -27,6 +40,7 @@ Lybic GUI Agent is an open-source framework that enables developers and business
27
40
  </div>
28
41
 
29
42
  ## 🥳 Updates
43
+ - [x] **2025/09/14**: The paper has been accepted by [arxiv](https://arxiv.org/abs/2509.11067)
30
44
  - [x] **2025/09/09**: We achieved the world's first place in the 50-step length of [OS-world](https://os-world.github.io/)!
31
45
  - [x] **2025/08/08**: Released v0.1.0 of [Lybic GUI Agent](https://github.com/lybic/agent) library, with support for Windows, Mac, Ubuntu and Lybic API!
32
46
 
@@ -35,6 +49,8 @@ Lybic GUI Agent is an open-source framework that enables developers and business
35
49
  1. [💡 Introduction](#-introduction)
36
50
  2. [🛠️ Installation & Setup](#%EF%B8%8F-installation--setup)
37
51
  3. [🚀 Usage](#-usage)
52
+ 4. [🔧 Troubleshooting](#-troubleshooting)
53
+ 5. [💬 Citations](#-citations)
38
54
 
39
55
  ## 💡 Introduction
40
56
 
@@ -64,7 +80,7 @@ Lybic GUI Agent is an open-source framework that enables developers and business
64
80
  <tr>
65
81
  <td>OSWorld Verified (50 step)</td>
66
82
  <td><b>57.1%</b></td>
67
- <td>53.1%</td>
83
+ <td>54.2%</td>
68
84
  </tr>
69
85
  </table>
70
86
  </div>
@@ -79,7 +95,15 @@ Lybic GUI Agent is an open-source framework that enables developers and business
79
95
  > [!WARNING]
80
96
  > To leverage the full potential of Lybic GUI Agent, we support multiple model providers including OpenAI, Anthropic, Gemini, and Doubao. For the best visual grounding performance, we recommend using UI-TARS models.
81
97
 
82
- ### Installation
98
+ ### Installation(from pip)
99
+
100
+ You can install Lybic GUI Agent by using pip:
101
+
102
+ ```bash
103
+ pip install lybic-guiagents
104
+ ```
105
+
106
+ ### Installation(from source code)
83
107
 
84
108
  You can use [UV](https://docs.astral.sh/uv/getting-started/installation/) (a modern Python package manager) version 0.8.5 for installation:
85
109
 
@@ -180,6 +204,7 @@ Run in interactive mode with the `lybic` backend:
180
204
  python gui_agents/cli_app.py --backend lybic
181
205
  ```
182
206
 
207
+
183
208
  Run a single query with the `pyautogui` backend and a maximum of 20 steps:
184
209
  ```sh
185
210
  python gui_agents/cli_app.py --backend pyautogui --query "Find the result of 8 × 7 on a calculator" --max-steps 20
@@ -211,6 +236,25 @@ LYBIC_MAX_LIFE_SECONDS=3600
211
236
  > LYBIC_PRECREATE_SID=SBX-XXXXXXXXXXXXXXX
212
237
  > ```
213
238
 
239
+ ### Use as a service
240
+
241
+ After installing lybic-guiagents, you can run it as a service.
242
+
243
+ Main Components:
244
+ - AgentService: High-level service interface (recommended for most users)
245
+ - AgentS2, AgentSFast: Core agent implementations
246
+ - HardwareInterface: Hardware abstraction layer
247
+ - ServiceConfig: Configuration management
248
+
249
+ Quick Start:
250
+
251
+ ```python
252
+ from gui_agents import AgentService
253
+ service = AgentService()
254
+ result = service.execute_task("Take a screenshot")
255
+ print(f"Task completed: {result.status}")
256
+ ```
257
+
214
258
  ### VMware Configuration
215
259
 
216
260
  To use PyAutoGUI with VMware, you need to install [VMware Workstation Pro](https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion) (on Windows) and create a virtual machine.
@@ -261,6 +305,7 @@ USE_PRECREATE_VM=Ubuntu
261
305
  ```bash
262
306
  uv sync
263
307
  uv pip install -e .
308
+ # uv pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
264
309
  ```
265
310
 
266
311
  #### 3. Lybic Sandbox Connection Issues
@@ -309,6 +354,23 @@ If you encounter issues not covered here:
309
354
  - Complete error messages
310
355
  - Steps to reproduce the issue
311
356
 
357
+ ## 💬 Citations
358
+
359
+ If you find this codebase useful, please cite:
360
+
361
+ ```bibtex
362
+ @misc{guo2025agenticlybicmultiagentexecution,
363
+ title={Agentic Lybic: Multi-Agent Execution System with Tiered Reasoning and Orchestration},
364
+ author={Liangxuan Guo and Bin Zhu and Qingqian Tao and Kangning Liu and Xun Zhao and Xianzhe Qin and Jin Gao and Guangfu Hao},
365
+ year={2025},
366
+ eprint={2509.11067},
367
+ archivePrefix={arXiv},
368
+ primaryClass={cs.AI},
369
+ url={https://arxiv.org/abs/2509.11067},
370
+ }
371
+ ```
372
+
373
+
312
374
  ## Stargazers over time
313
375
 
314
376
  [![Stargazers over time](https://starchart.cc/lybic/agent.svg)](https://starchart.cc/lybic/agent)
@@ -0,0 +1,67 @@
1
+ """
2
+ GUI Agents - A comprehensive GUI automation framework
3
+
4
+ This package provides both low-level agent components and a high-level service interface
5
+ for GUI automation tasks across different platforms and backends.
6
+
7
+ Main Components:
8
+ - AgentService: High-level service interface (recommended for most users)
9
+ - AgentS2, AgentSFast: Core agent implementations
10
+ - HardwareInterface: Hardware abstraction layer
11
+ - ServiceConfig: Configuration management
12
+
13
+ Quick Start:
14
+ from gui_agents import AgentService
15
+
16
+ service = AgentService()
17
+ result = service.execute_task("Take a screenshot")
18
+ print(f"Task completed: {result.status}")
19
+ """
20
+
21
+ # High-level service interface (recommended)
22
+ from .service import (
23
+ AgentService,
24
+ ServiceConfig,
25
+ TaskRequest,
26
+ TaskResult,
27
+ TaskStatus,
28
+ ExecutionStats,
29
+ AgentServiceError,
30
+ ConfigurationError,
31
+ TaskExecutionError
32
+ )
33
+
34
+ # Core agent classes (for advanced users)
35
+ from .agents.agent_s import AgentS2, AgentSFast
36
+ from .agents.hardware_interface import HardwareInterface
37
+ from .store.registry import Registry
38
+ from .agents.global_state import GlobalState
39
+
40
+ try:
41
+ from importlib.metadata import version
42
+ __version__ = version("lybic-guiagents")
43
+ except Exception: # during editable installs or missing meta
44
+ __version__ = "0.0.0+dev"
45
+
46
+ # Primary exports (what users should typically use)
47
+ __all__ = [
48
+ # High-level service interface
49
+ "AgentService",
50
+ "ServiceConfig",
51
+ "TaskRequest",
52
+ "TaskResult",
53
+ "TaskStatus",
54
+ "ExecutionStats",
55
+
56
+ # Exceptions
57
+ "AgentServiceError",
58
+ "ConfigurationError",
59
+ "TaskExecutionError",
60
+
61
+ # Core classes (for advanced usage)
62
+ "AgentS2",
63
+ "AgentSFast",
64
+ "HardwareInterface",
65
+ "Registry",
66
+ "GlobalState",
67
+ ]
@@ -0,0 +1,62 @@
1
+ # ---------------------------------------------------------------------------
2
+ # 2) Android device backend (ADB)
3
+ # ---------------------------------------------------------------------------
4
+ from gui_agents.agents.Action import (
5
+ Action,
6
+ Click,
7
+ Drag,
8
+ TypeText,
9
+ Scroll,
10
+ Hotkey,
11
+ Wait,
12
+ )
13
+
14
+ from gui_agents.agents.Backend.Backend import Backend
15
+ import time
16
+ import subprocess
17
+
18
+ class ADBBackend(Backend):
19
+ """Very light‑weight ADB backend (tap / swipe / text / keyevent)."""
20
+
21
+ _supported = {Click, Drag, TypeText, Hotkey, Wait}
22
+
23
+ def __init__(self, serial: str | None = None):
24
+ self.serial = serial # specify target device; None = default
25
+
26
+ # ------------------------------------------------------------------
27
+ def execute(self, action: Action) -> None:
28
+ if not self.supports(type(action)):
29
+ raise NotImplementedError
30
+
31
+ prefix = ["adb"]
32
+ if self.serial:
33
+ prefix += ["-s", self.serial]
34
+ prefix.append("shell")
35
+
36
+ if isinstance(action, Click):
37
+ cmd = prefix
38
+ # cmd = prefix + ["input", "tap", str(action.xy[0]), str(action.xy[1])]
39
+ elif isinstance(action, Drag):
40
+ cmd = prefix + [
41
+ "input", "swipe",
42
+ # str(action.start[0]), str(action.start[1]),
43
+ # str(action.end[0]), str(action.end[1]),
44
+ # str(int(action.duration * 1000)), # type: ignore
45
+ ]
46
+ elif isinstance(action, TypeText):
47
+ text = action.text.replace(" ", "%s") # escape spaces
48
+ cmd = prefix + ["input", "text", text]
49
+ # if action.press_enter:
50
+ # subprocess.run(prefix + ["input", "keyevent", "ENTER"], check=True)
51
+ # return
52
+ elif isinstance(action, Hotkey):
53
+ # Map first key for demo purposes
54
+ key = action.keys[0].upper()
55
+ cmd = prefix + ["input", "keyevent", key]
56
+ elif isinstance(action, Wait):
57
+ time.sleep(action.seconds) # type: ignore
58
+ return
59
+ else:
60
+ raise NotImplementedError
61
+
62
+ subprocess.run(cmd, check=True)
@@ -0,0 +1,28 @@
1
+ # Abstract backend base‑class
2
+ # ---------------------------------------------------------------------------
3
+ from abc import ABC, abstractmethod
4
+ from typing import Any, List, Type, Dict, Set
5
+ from gui_agents.agents.Action import (
6
+ Action
7
+ )
8
+
9
+
10
+ class Backend(ABC):
11
+ """Abstract base for platform back‑ends."""
12
+
13
+ #: Each backend advertises which Action subclasses it supports.
14
+ _supported: Set[Type[Action]] = set()
15
+
16
+ # ---------------------------------------------------------------------
17
+ def supports(self, action_type: Type[Action]) -> bool:
18
+ return action_type in self._supported
19
+
20
+ # ---------------------------------------------------------------------
21
+ @abstractmethod
22
+ def execute(self, action: Action) -> Any:
23
+ """Translate an *Action* into concrete commands.
24
+
25
+ Should raise **NotImplementedError** if the *action* type is not in
26
+ `self._supported`, so upper layers can decide how to degrade / retry.
27
+ """
28
+