autoglm-gui 1.3.1__py3-none-any.whl → 1.4.0__py3-none-any.whl
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.
- AutoGLM_GUI/api/__init__.py +2 -0
- AutoGLM_GUI/api/agents.py +0 -2
- AutoGLM_GUI/api/dual_model.py +9 -8
- AutoGLM_GUI/api/layered_agent.py +586 -0
- AutoGLM_GUI/config_manager.py +2 -24
- AutoGLM_GUI/dual_model/protocols.py +3 -3
- AutoGLM_GUI/mai_ui_adapter/agent_wrapper.py +291 -0
- AutoGLM_GUI/prompts.py +6 -1
- AutoGLM_GUI/schemas.py +0 -16
- AutoGLM_GUI/static/assets/{about-Cj6QXqMf.js → about-DeclntHg.js} +1 -1
- AutoGLM_GUI/static/assets/chat-Iut2yhSw.js +125 -0
- AutoGLM_GUI/static/assets/{dialog-CxJlnjzH.js → dialog-BfdcBs1x.js} +1 -1
- AutoGLM_GUI/static/assets/index-5hCCwHA7.css +1 -0
- AutoGLM_GUI/static/assets/{index-CxJQuE4y.js → index-DHF1NZh0.js} +2 -2
- AutoGLM_GUI/static/assets/{index-C_B-Arvf.js → index-zQ4KKDHt.js} +1 -1
- AutoGLM_GUI/static/assets/{workflows-BTiGCNI0.js → workflows-xiplap-r.js} +1 -1
- AutoGLM_GUI/static/index.html +2 -2
- {autoglm_gui-1.3.1.dist-info → autoglm_gui-1.4.0.dist-info}/METADATA +81 -78
- {autoglm_gui-1.3.1.dist-info → autoglm_gui-1.4.0.dist-info}/RECORD +24 -22
- phone_agent/config/prompts.py +6 -1
- phone_agent/config/prompts_zh.py +6 -1
- AutoGLM_GUI/static/assets/chat-BJeomZgh.js +0 -124
- AutoGLM_GUI/static/assets/index-Z0uYCPOO.css +0 -1
- {autoglm_gui-1.3.1.dist-info → autoglm_gui-1.4.0.dist-info}/WHEEL +0 -0
- {autoglm_gui-1.3.1.dist-info → autoglm_gui-1.4.0.dist-info}/entry_points.txt +0 -0
- {autoglm_gui-1.3.1.dist-info → autoglm_gui-1.4.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a3 as o,r as s,j as t}from"./index-DHF1NZh0.js";function n(){const e=o();return s.useEffect(()=>{e({to:"/chat"})},[e]),t.jsx("div",{className:"p-2",children:t.jsx("h3",{children:"Welcome Home!"})})}export{n as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as D,u as S,r as t,l as b,j as e,B as r,d as W,a as F,b as T}from"./index-
|
|
1
|
+
import{c as D,u as S,r as t,l as b,j as e,B as r,d as W,a as F,b as T}from"./index-DHF1NZh0.js";import{P as E,L as f,C as L,a as P,b as z,c as H,T as I,D as q,d as B,e as M,f as _,g as j,I as O,h as R,i as A}from"./dialog-BfdcBs1x.js";const G=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],J=D("square-pen",G);function U(){const s=S(),[m,g]=t.useState([]),[p,x]=t.useState(!0),[k,o]=t.useState(!1),[c,h]=t.useState(null),[l,i]=t.useState({name:"",text:""}),[w,u]=t.useState(!1);t.useEffect(()=>{d()},[]);const d=async()=>{try{x(!0);const a=await b();g(a.workflows)}catch(a){console.error("Failed to load workflows:",a)}finally{x(!1)}},v=()=>{h(null),i({name:"",text:""}),o(!0)},N=a=>{h(a),i({name:a.name,text:a.text}),o(!0)},C=async()=>{try{u(!0),c?await F(c.uuid,l):await T(l),o(!1),d()}catch(a){console.error("Failed to save workflow:",a)}finally{u(!1)}},y=async a=>{if(window.confirm(s.workflows.deleteConfirm))try{await W(a),d()}catch(n){console.error("Failed to delete workflow:",n)}};return e.jsxs("div",{className:"container mx-auto p-6 max-w-7xl",children:[e.jsxs("div",{className:"flex justify-between items-center mb-6",children:[e.jsx("h1",{className:"text-3xl font-bold",children:s.workflows.title}),e.jsxs(r,{onClick:v,children:[e.jsx(E,{className:"w-4 h-4 mr-2"}),s.workflows.createNew]})]}),p?e.jsx("div",{className:"flex justify-center items-center h-64",children:e.jsx(f,{className:"w-8 h-8 animate-spin text-slate-400"})}):m.length===0?e.jsx("div",{className:"text-center py-12",children:e.jsx("p",{className:"text-slate-500 dark:text-slate-400",children:s.workflows.empty})}):e.jsx("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:m.map(a=>e.jsxs(L,{className:"hover:shadow-md transition-shadow",children:[e.jsx(P,{children:e.jsx(z,{className:"text-lg",children:a.name})}),e.jsxs(H,{children:[e.jsx("p",{className:"text-sm text-slate-600 dark:text-slate-400 mb-4 line-clamp-3",children:a.text}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(r,{variant:"outline",size:"sm",onClick:()=>N(a),children:[e.jsx(J,{className:"w-3 h-3 mr-1"}),s.common.edit]}),e.jsxs(r,{variant:"destructive",size:"sm",onClick:()=>y(a.uuid),children:[e.jsx(I,{className:"w-3 h-3 mr-1"}),s.common.delete]})]})]})]},a.uuid))}),e.jsx(q,{open:k,onOpenChange:o,children:e.jsxs(B,{className:"sm:max-w-[600px]",children:[e.jsx(M,{children:e.jsx(_,{children:c?s.workflows.edit:s.workflows.create})}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(j,{htmlFor:"name",children:s.workflows.name}),e.jsx(O,{id:"name",value:l.name,onChange:a=>i(n=>({...n,name:a.target.value})),placeholder:s.workflows.namePlaceholder})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(j,{htmlFor:"text",children:s.workflows.text}),e.jsx(R,{id:"text",value:l.text,onChange:a=>i(n=>({...n,text:a.target.value})),placeholder:s.workflows.textPlaceholder,rows:6,className:"resize-none !rounded-lg"})]})]}),e.jsxs(A,{children:[e.jsx(r,{variant:"outline",onClick:()=>o(!1),children:s.common.cancel}),e.jsx(r,{onClick:C,disabled:!l.name.trim()||!l.text.trim()||w,children:w?e.jsxs(e.Fragment,{children:[e.jsx(f,{className:"w-4 h-4 mr-2 animate-spin"}),s.common.loading]}):s.common.save})]})]})})]})}export{U as component};
|
AutoGLM_GUI/static/index.html
CHANGED
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
<link rel="icon" type="image/png" sizes="192x192" href="/logo-192.png" />
|
|
12
12
|
<link rel="icon" type="image/png" sizes="512x512" href="/logo-512.png" />
|
|
13
13
|
<meta name="theme-color" content="#f5f1e8" />
|
|
14
|
-
<script type="module" crossorigin src="/assets/index-
|
|
15
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
14
|
+
<script type="module" crossorigin src="/assets/index-DHF1NZh0.js"></script>
|
|
15
|
+
<link rel="stylesheet" crossorigin href="/assets/index-5hCCwHA7.css">
|
|
16
16
|
</head>
|
|
17
17
|
<body>
|
|
18
18
|
<div id="app"></div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: autoglm-gui
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.4.0
|
|
4
4
|
Summary: Web GUI for AutoGLM Phone Agent - AI-powered Android automation
|
|
5
5
|
Project-URL: Homepage, https://github.com/suyiiyii/AutoGLM-GUI
|
|
6
6
|
Project-URL: Repository, https://github.com/suyiiyii/AutoGLM-GUI
|
|
@@ -24,6 +24,7 @@ Requires-Dist: fastapi>=0.124.0
|
|
|
24
24
|
Requires-Dist: fastmcp>=2.0.0
|
|
25
25
|
Requires-Dist: httpx[socks]>=0.28.1
|
|
26
26
|
Requires-Dist: loguru>=0.7.3
|
|
27
|
+
Requires-Dist: openai-agents>=0.6.4
|
|
27
28
|
Requires-Dist: openai>=2.9.0
|
|
28
29
|
Requires-Dist: pillow>=11.3.0
|
|
29
30
|
Requires-Dist: prometheus-client>=0.21.0
|
|
@@ -75,9 +76,9 @@ AutoGLM 手机助手的现代化 Web 图形界面 - 让 AI 自动化操作 Andro
|
|
|
75
76
|
|
|
76
77
|
| 操作系统 | 下载链接 | 说明 |
|
|
77
78
|
|---------|---------|------|
|
|
78
|
-
| 🪟 **Windows** (x64) | [📦 下载便携版 EXE](https://github.com/suyiiyii/AutoGLM-GUI/releases/download/v1.
|
|
79
|
-
| 🍎 **macOS** (Apple Silicon) | [📦 下载 DMG](https://github.com/suyiiyii/AutoGLM-GUI/releases/download/v1.
|
|
80
|
-
| 🐧 **Linux** (x64) | [📦 下载 AppImage](https://github.com/suyiiyii/AutoGLM-GUI/releases/download/v1.
|
|
79
|
+
| 🪟 **Windows** (x64) | [📦 下载便携版 EXE](https://github.com/suyiiyii/AutoGLM-GUI/releases/download/v1.4.0/AutoGLM.GUI.1.4.0.exe) | 适用于 Windows 10/11,免安装 |
|
|
80
|
+
| 🍎 **macOS** (Apple Silicon) | [📦 下载 DMG](https://github.com/suyiiyii/AutoGLM-GUI/releases/download/v1.4.0/AutoGLM.GUI-1.4.0-arm64.dmg) | 适用于 M 芯片 Mac |
|
|
81
|
+
| 🐧 **Linux** (x64) | [📦 下载 AppImage](https://github.com/suyiiyii/AutoGLM-GUI/releases/download/v1.4.0/AutoGLM.GUI-1.4.0.AppImage) \| [deb](https://github.com/suyiiyii/AutoGLM-GUI/releases/download/v1.4.0/autoglm-gui_1.4.0_amd64.deb) \| [tar.gz](https://github.com/suyiiyii/AutoGLM-GUI/releases/download/v1.4.0/autoglm-gui-1.4.0.tar.gz) | 通用格式,支持主流发行版 |
|
|
81
82
|
|
|
82
83
|
</div>
|
|
83
84
|
|
|
@@ -105,27 +106,27 @@ uvx autoglm-gui
|
|
|
105
106
|
|
|
106
107
|
## 📸 界面预览
|
|
107
108
|
|
|
109
|
+
快速跳转: [普通模式](#mode-classic) · [双模型协作(增强)](#mode-dual) · [分层代理(增强)](#mode-layered)
|
|
110
|
+
|
|
108
111
|
### 双模型协作架构
|
|
109
112
|
|
|
110
|
-
|
|
113
|
+
**决策大模型(如 GLM-4.7)+ 视觉小模型(AutoGLM-Phone)**:大模型负责规划与纠错,小模型负责观察与执行,适合更复杂、更长流程的任务。
|
|
111
114
|
|
|
112
|
-
|
|
113
|
-
-
|
|
114
|
-
-
|
|
115
|
-
- 🔄 **智能协作**:大模型规划任务,小模型批量执行,异常时自动重新规划
|
|
116
|
-
- ⚡ **三种模式**:
|
|
117
|
-
- **DEEP**:深度思考模式,适合复杂任务,每步都详细分析
|
|
118
|
-
- **FAST**:快速响应模式,适合简单任务,简洁高效
|
|
119
|
-
- **TURBO**:极速模式,一次性生成操作序列,性能最优
|
|
115
|
+
- 🧠 **决策层**:任务理解 / 步骤规划 / 异常纠错
|
|
116
|
+
- 👁️ **执行层**:识别界面元素并点击/滑动/输入完成操作
|
|
117
|
+
- 🔄 **运行方式**:规划 → 执行 → 反馈;必要时自动重规划
|
|
120
118
|
|
|
121
|
-
|
|
122
|
-
- 📈 更强智能:大模型提供更深入的任务理解和规划能力
|
|
123
|
-
- 🛡️ 异常恢复:自动检测屏幕卡死、操作失败等异常,智能重试和重新规划
|
|
124
|
-
- 💰 成本优化:TURBO 模式大幅减少大模型调用次数,降低 API 成本
|
|
125
|
-
- 📊 实时可见:流式展示思考过程,透明化决策逻辑
|
|
119
|
+
**模式选择(Thinking Mode)**:TURBO(更省更快,推荐常规流程)/ DEEP(更稳,适合复杂任务)/ FAST(更快,适合轻量任务)。
|
|
126
120
|
|
|
127
121
|
<img width="879" height="849" alt="双模型协作界面" src="https://github.com/user-attachments/assets/15e5cf51-5a19-403d-9af3-46f77c2068f5" />
|
|
128
122
|
|
|
123
|
+
### 分层代理
|
|
124
|
+
|
|
125
|
+
**分层代理(Layered Agent)** 是更“严格”的两层结构:**规划层**专注任务拆解与多轮推理,**执行层**专注观察与操作。规划层会通过工具调用(可在界面中看到每次调用与结果)来驱动执行层完成一个个原子子任务,便于边执行边调整策略,适合需要多轮交互/推理的高级任务。
|
|
126
|
+
|
|
127
|
+
<img width="939" height="851" alt="图片" src="https://github.com/user-attachments/assets/c054d998-726d-48ed-99e7-bb33581b3745" />
|
|
128
|
+
|
|
129
|
+
|
|
129
130
|
### 任务开始
|
|
130
131
|

|
|
131
132
|
|
|
@@ -281,66 +282,68 @@ AutoGLM-GUI 支持同时控制多个 Android 设备:
|
|
|
281
282
|
4. **对话** - 描述你想要做什么(例如:"去美团点一杯霸王茶姬的伯牙绝弦")
|
|
282
283
|
5. **观察** - Agent 会逐步执行操作,每一步的思考过程和动作都会实时显示
|
|
283
284
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
-
|
|
316
|
-
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
-
|
|
329
|
-
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
285
|
+
<a id="mode-classic"></a>
|
|
286
|
+
### 🌿 普通模式(单模型 / Open AutoGLM)
|
|
287
|
+
|
|
288
|
+
这是**开源 AutoGLM-Phone 的“原生形态”**:由一个视觉模型直接完成「理解任务 → 规划步骤 → 观察屏幕 → 执行动作」的完整闭环。
|
|
289
|
+
|
|
290
|
+
- **优点**:配置最简单,上手最快
|
|
291
|
+
- **适用场景**:目标明确、步骤较少的任务(例如打开应用、简单导航)
|
|
292
|
+
|
|
293
|
+
<a id="mode-dual"></a>
|
|
294
|
+
### 🧠 双模型协作模式(增强)
|
|
295
|
+
|
|
296
|
+
双模型模式通过**决策大模型(负责规划/纠错)** + **视觉小模型(负责观察/操作)**协作,提升复杂任务的稳定性与可控性。
|
|
297
|
+
|
|
298
|
+
#### 工作模式(Thinking Mode)
|
|
299
|
+
|
|
300
|
+
- **🚀 TURBO(推荐)**:大模型先生成“操作序列”,视觉模型批量执行;仅在异常时触发重规划(通常 1-2 次大模型调用)
|
|
301
|
+
- **🎯 DEEP**:每一步都调用大模型做决策与分析,最稳但成本/耗时更高
|
|
302
|
+
- **⚡ FAST**:同样逐步决策,但提示词更短、响应更快,适合轻量任务
|
|
303
|
+
|
|
304
|
+
#### 配置要点
|
|
305
|
+
|
|
306
|
+
- **决策大模型**:建议使用推理/规划能力较强的模型(如 GLM-4.7、GPT-4、Claude 等)
|
|
307
|
+
- **视觉小模型**:建议使用具备 GUI 观察与操作能力的模型(如 AutoGLM-Phone-9B / `autoglm-phone`)
|
|
308
|
+
|
|
309
|
+
<a id="mode-layered"></a>
|
|
310
|
+
### 🧩 分层代理模式(Layered Agent,增强 / 实验性)
|
|
311
|
+
|
|
312
|
+
分层代理模式是更“严格”的两层结构:**规划层**专注拆解与推理,**执行层**专注观察与操作,二者通过工具调用协作完成任务。
|
|
313
|
+
|
|
314
|
+
- **工作方式**:规划层(决策模型)会调用工具(如 `list_devices()` / `chat(device_id, message)`)去驱动执行层;你能在界面里看到每次工具调用与返回结果
|
|
315
|
+
- **执行粒度**:执行层每次只做一个“原子子任务”,并有步数上限(例如每次最多 5 步),便于规划层按反馈动态调整策略
|
|
316
|
+
- **适用场景**:需要多轮推理、需要“边看边问边改计划”的复杂任务(例如浏览/筛选/对比、多轮表单填写等)
|
|
317
|
+
- **重要限制**:执行层不负责“记笔记/保存中间信息/直接提取文本变量”;规划层需要信息时必须通过提问让执行层把屏幕内容“念出来”
|
|
318
|
+
|
|
319
|
+
### 🎭 三种工作模式对比
|
|
320
|
+
|
|
321
|
+
AutoGLM-GUI 提供了三种不同的代理工作模式,适用于不同的使用场景:
|
|
322
|
+
|
|
323
|
+
#### 1️⃣ 经典模式(Classic Mode)
|
|
324
|
+
- **架构**:单一 `autoglm-phone` 视觉模型直接处理(即普通 Open AutoGLM 的体验)
|
|
325
|
+
- **适用场景**:简单、明确的任务
|
|
326
|
+
- **特点**:配置简单,适合快速上手
|
|
327
|
+
|
|
328
|
+
#### 2️⃣ 双模型协作(Dual Model)
|
|
329
|
+
- **架构**:决策大模型(GLM-4.7/GPT-4)+ 视觉小模型(autoglm-phone)
|
|
330
|
+
- **适用场景**:需要智能规划的中高复杂度任务
|
|
331
|
+
- **特点**:支持 TURBO/DEEP/FAST 三种思考模式,在成本、速度与稳定性之间做权衡
|
|
332
|
+
|
|
333
|
+
#### 3️⃣ 分层代理(Layered Agent)🆕 实验性功能
|
|
334
|
+
- **架构**:基于 Agent SDK 的分层任务执行系统
|
|
335
|
+
- **规划层**:决策模型作为高级智能中枢,负责任务拆解和多轮推理
|
|
336
|
+
- **执行层**:autoglm-phone 作为执行者,只负责观察和操作
|
|
337
|
+
- **适用场景**:需要多轮交互和复杂推理的高级任务
|
|
338
|
+
- **特点**:规划层通过工具调用驱动执行层,过程更透明、更便于调试与迭代策略
|
|
339
|
+
|
|
340
|
+
**选择建议**:
|
|
341
|
+
- 🚀 **常规任务(订外卖、打车)**:双模型 TURBO 模式
|
|
342
|
+
- 🎯 **复杂任务(浏览并评论帖子)**:双模型 DEEP 模式
|
|
343
|
+
- 🏗️ **需要多轮推理的任务**:分层代理模式
|
|
344
|
+
|
|
345
|
+
> 💬 **我们需要你的反馈!**
|
|
346
|
+
> 不同的任务场景适合不同的模式,我们正在持续优化这些模式的性能和易用性。如果你在使用过程中有任何建议、遇到问题或发现某个模式特别好用/不好用,欢迎通过 [GitHub Issues](https://github.com/suyiiyii/AutoGLM-GUI/issues) 或 [QQ 交流群](https://qm.qq.com/q/J5eAs9tn0W) 告诉我们。你的反馈将帮助我们改进产品!
|
|
344
347
|
|
|
345
348
|
### 手动控制模式
|
|
346
349
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
AutoGLM_GUI/__init__.py,sha256=ic002QIj6sw9cyhh7e_60DFIb7omtPcF01-L6M4lllM,2176
|
|
2
2
|
AutoGLM_GUI/__main__.py,sha256=ogFi2KO9kCn47ZvT5jqBzoBTnqG191TFKfEM9lcal1w,6390
|
|
3
3
|
AutoGLM_GUI/config.py,sha256=SRBPcIKqR5HxrxiiwpOUAPxHvp-36igtFhDEptG_Zz4,619
|
|
4
|
-
AutoGLM_GUI/config_manager.py,sha256
|
|
4
|
+
AutoGLM_GUI/config_manager.py,sha256=-y8ld-b9FVaFdsPQlw_1sxReM_Xs_IR6dZHCUbfW1J0,21143
|
|
5
5
|
AutoGLM_GUI/device_manager.py,sha256=dAHP29a63H6GY43f715dOlJdwOz1eWa2XnPf2_SbIiY,26923
|
|
6
6
|
AutoGLM_GUI/exceptions.py,sha256=dPKKuRPbsGMgUtPVZuxny8MNHswS78WzUepYtuZGZQc,3457
|
|
7
7
|
AutoGLM_GUI/logger.py,sha256=wLzjbRqsHAsOtI9yB0bcUZFVzgGK6qM8330std6FjVw,2553
|
|
@@ -9,8 +9,8 @@ AutoGLM_GUI/metrics.py,sha256=l8KIGfiDlAccLOmk7nneacJMs3tlIdCFyXe3szodUE0,9442
|
|
|
9
9
|
AutoGLM_GUI/phone_agent_manager.py,sha256=2ofFw9wdE1cs8SMo8OGbcs-J54ZGxDIOgVBYm-mT3oM,27532
|
|
10
10
|
AutoGLM_GUI/phone_agent_patches.py,sha256=-RfpL9RHxOI2GyC2v8L49S0gXiK8l1cldEX3Ysrpl5c,4887
|
|
11
11
|
AutoGLM_GUI/platform_utils.py,sha256=bYlQGAYYpU1ZqOUD-F-fIzpEA5z53dMFfaErsFhAvYk,2357
|
|
12
|
-
AutoGLM_GUI/prompts.py,sha256=
|
|
13
|
-
AutoGLM_GUI/schemas.py,sha256=
|
|
12
|
+
AutoGLM_GUI/prompts.py,sha256=lC5UktW0KRpWKij6T0GG1OrNKV9gAfM6dUcp_tjX7mo,4814
|
|
13
|
+
AutoGLM_GUI/schemas.py,sha256=n_9bCYh4U5aZXYrsgNlv85ca06wCbixxE-U6Eubq3u4,15943
|
|
14
14
|
AutoGLM_GUI/scrcpy_protocol.py,sha256=h6AtAGq3zMM30FWM7EYiYKJz7BDikpNCOjcKtFcRx3s,997
|
|
15
15
|
AutoGLM_GUI/scrcpy_stream.py,sha256=-tGyDNaML1TnZLzTNiVUgxMTv_7TQS0CKZ35G2RuPfg,16595
|
|
16
16
|
AutoGLM_GUI/server.py,sha256=GGGz7llG5rflIpO61nil8Zde12PLkv6OIzghuxwSkoI,249
|
|
@@ -29,11 +29,12 @@ AutoGLM_GUI/adb_plus/screenshot.py,sha256=pr7BpmUcGZO9rthpDeMRn4D1oAGX9aEEVL3ZnT
|
|
|
29
29
|
AutoGLM_GUI/adb_plus/serial.py,sha256=lDbBXTIoOJ5lbFj50K5X7PZnfpKt1vRpFiWVjolfEhQ,3142
|
|
30
30
|
AutoGLM_GUI/adb_plus/touch.py,sha256=7cyMon9nOd6zQvZdHK7BHWoRLLWkdK-qWfTuSFfFzJA,2301
|
|
31
31
|
AutoGLM_GUI/adb_plus/version.py,sha256=u5u1N40izJceeORN9kFhyz0wq_hZtlwBXaiytfA3px8,2428
|
|
32
|
-
AutoGLM_GUI/api/__init__.py,sha256=
|
|
33
|
-
AutoGLM_GUI/api/agents.py,sha256=
|
|
32
|
+
AutoGLM_GUI/api/__init__.py,sha256=YuWTvgPs9SSkH_YKGtdx2wbfcfvJtUU0sbTU-OalGMw,3923
|
|
33
|
+
AutoGLM_GUI/api/agents.py,sha256=JnwaBXTWj8j0P__GOLcIMJsCQ2MHXROSAg1oJUTLY34,18978
|
|
34
34
|
AutoGLM_GUI/api/control.py,sha256=G-7hfdqTl5fq-UXOwE2CI_HMbfmRH1Vd589t2FTNZyY,3155
|
|
35
35
|
AutoGLM_GUI/api/devices.py,sha256=AzHUwFGjaj5xaHMmDylyNy0CUGZQHwlCdE3t41azqQk,11186
|
|
36
|
-
AutoGLM_GUI/api/dual_model.py,sha256=
|
|
36
|
+
AutoGLM_GUI/api/dual_model.py,sha256=4MERvARZX2XX46vcoMnpFcs2UKRvpZX-YLm038jtg8U,10370
|
|
37
|
+
AutoGLM_GUI/api/layered_agent.py,sha256=qAMkdul_XnVauBlVqq8k6tAmy3VkmgLweDH1WQODdhw,23347
|
|
37
38
|
AutoGLM_GUI/api/mcp.py,sha256=5zuG81kTGcU3niD6mmsQOjxVNN15ilsmxYpEHxyTv7M,4683
|
|
38
39
|
AutoGLM_GUI/api/media.py,sha256=Ioncwd68CNkYvqmeTJJ3P5I1rjWfw6PM4WPz5Ixx8vI,1631
|
|
39
40
|
AutoGLM_GUI/api/metrics.py,sha256=2h5MnUiMTRAshD6nvcarLVoSlOjtlyVAGg-LRXq03vQ,941
|
|
@@ -42,21 +43,22 @@ AutoGLM_GUI/api/workflows.py,sha256=dis4k8b-xTYL99qlSYev-Qo5a7z9XdwA1xyC8fRJGLE,
|
|
|
42
43
|
AutoGLM_GUI/dual_model/__init__.py,sha256=EQSMFAZ4NvZZywfnEJtDT9JrBJ4KuKWtGUHX4KcJIyY,1179
|
|
43
44
|
AutoGLM_GUI/dual_model/decision_model.py,sha256=05_x2pTFdvlPU6s5RRyU44cvJFi58qtyrk6Bz-zIBto,21833
|
|
44
45
|
AutoGLM_GUI/dual_model/dual_agent.py,sha256=HIw6Z5Ae9UH5-JEk9IPI2ry4uodvN-qdUQSIYrU0ecc,31574
|
|
45
|
-
AutoGLM_GUI/dual_model/protocols.py,sha256=
|
|
46
|
+
AutoGLM_GUI/dual_model/protocols.py,sha256=CZEqXUgsCoBeq7u1Ne43R031BjojGHvsZgvZqVn7Dh0,10534
|
|
46
47
|
AutoGLM_GUI/dual_model/vision_model.py,sha256=Vaj-BVWVZpedUbAVr-dl-eXUQ2IHaQpo0P1AIBuTvdg,14440
|
|
48
|
+
AutoGLM_GUI/mai_ui_adapter/agent_wrapper.py,sha256=82rnTo0iYcv60nHdREoPc4-xn79I0HCIfHcNO3FWHjw,9254
|
|
47
49
|
AutoGLM_GUI/static/favicon.ico,sha256=uB4wrcENiFaF-K4V-FzNp51XLW8GC4-ujpBDHgISfGM,781
|
|
48
|
-
AutoGLM_GUI/static/index.html,sha256=
|
|
50
|
+
AutoGLM_GUI/static/index.html,sha256=Up24pO96Iiv1riuUBhYTgVL_zk49em5DdqH3FW0hPvw,761
|
|
49
51
|
AutoGLM_GUI/static/logo-192.png,sha256=FOXgZxFrN0ZleO0VjlCnvD5cDkd1okJPkwPDZqsflNs,35243
|
|
50
52
|
AutoGLM_GUI/static/logo-512.png,sha256=HlwSg09dQ3_Jtb09Ght4l2VK3YNLZlP_941LCdpDkWk,251598
|
|
51
|
-
AutoGLM_GUI/static/assets/about-
|
|
52
|
-
AutoGLM_GUI/static/assets/chat-
|
|
53
|
-
AutoGLM_GUI/static/assets/dialog-
|
|
54
|
-
AutoGLM_GUI/static/assets/index-
|
|
55
|
-
AutoGLM_GUI/static/assets/index-
|
|
56
|
-
AutoGLM_GUI/static/assets/index-
|
|
53
|
+
AutoGLM_GUI/static/assets/about-DeclntHg.js,sha256=QecpNFR4smtHsdMcFTKuMtw_dqJodEnHPNNOk2WK--Q,155
|
|
54
|
+
AutoGLM_GUI/static/assets/chat-Iut2yhSw.js,sha256=YmIodM0eFchn_p43yBGS5h8Y9ArqGgC1hj1zNbFnE7E,316649
|
|
55
|
+
AutoGLM_GUI/static/assets/dialog-BfdcBs1x.js,sha256=ALMSKReQ0IPZVzIP4hLqo8Ikkd93Vnq8KklEcKRt7A4,27378
|
|
56
|
+
AutoGLM_GUI/static/assets/index-5hCCwHA7.css,sha256=lrUhICgckXE0lbz732Xm8oAw37J9U0fbzUsj3kKJ8O4,79591
|
|
57
|
+
AutoGLM_GUI/static/assets/index-DHF1NZh0.js,sha256=BBguL9SX_Kelo-GWPm7xhp5bxhr4q2HAxQ9JTRRDl8I,387094
|
|
58
|
+
AutoGLM_GUI/static/assets/index-zQ4KKDHt.js,sha256=0ke1LC-kHtUh4fwdtI9hoV9Q3D5Qaj_XnIGgDl7ooI0,229
|
|
57
59
|
AutoGLM_GUI/static/assets/logo-Cyfm06Ym.png,sha256=6GRUFH2KNmB4ZmnrmJ1wxpoIYEmOW-__XlmKImyAMKM,4955675
|
|
58
60
|
AutoGLM_GUI/static/assets/worker-D6BRitjy.js,sha256=RL1NIRIks9dXdDhXOHK1cCg-OELT0uv9a6u_UEHfQ0Q,173494
|
|
59
|
-
AutoGLM_GUI/static/assets/workflows-
|
|
61
|
+
AutoGLM_GUI/static/assets/workflows-xiplap-r.js,sha256=2h9sp1HE0SoXjcEwdJPYXcHKua_DHgzHGRGXkJRdhO8,3459
|
|
60
62
|
phone_agent/__init__.py,sha256=7sCmGiY-ePdb6L08MGG6DkOiu8goop6wq-v2SiM62tE,360
|
|
61
63
|
phone_agent/agent.py,sha256=1SgHpv70_XbujG1ElYRZbvRO5-d4l7gBgiFRBz_FIH8,8157
|
|
62
64
|
phone_agent/agent_ios.py,sha256=R7EBsoHVghEUBtI5TB7M0_btpFcb4NHquMNxktrqrJE,9338
|
|
@@ -74,9 +76,9 @@ phone_agent/config/apps.py,sha256=D9HcsGzqwJL3g1ZRS4_Iq4WjviijDDEtkBJlV4-TSjE,87
|
|
|
74
76
|
phone_agent/config/apps_harmonyos.py,sha256=z2QN6O7NPe87ta4EAPs6s4PAC74SPPXlXXz6fTkAXhY,10606
|
|
75
77
|
phone_agent/config/apps_ios.py,sha256=CrOEDnPyG7T2qF_lS3SDlXjhbJPwDKI61_yOrggernc,11481
|
|
76
78
|
phone_agent/config/i18n.py,sha256=-x8yD5ywyK7xwjoI-pOYqPlSeId_W9KkVjmKayr36m0,2501
|
|
77
|
-
phone_agent/config/prompts.py,sha256=
|
|
79
|
+
phone_agent/config/prompts.py,sha256=0XKS_LrXthPB_bAXUT3ezsyr7UlwJNR2i4FLdEuticQ,8444
|
|
78
80
|
phone_agent/config/prompts_en.py,sha256=t8C9YLailtg8kVlFtYvq3t9EdtMGE8HastTfDh5BAUM,2630
|
|
79
|
-
phone_agent/config/prompts_zh.py,sha256=
|
|
81
|
+
phone_agent/config/prompts_zh.py,sha256=oOd5wJz-_P9ZF3F8hIPPrwjXdgv0sIgH7aop94eOTKM,8603
|
|
80
82
|
phone_agent/config/timing.py,sha256=bT-5HKGovzY_95wxRGIhmHyrIIPqhWivsXg-0LWc2pM,5793
|
|
81
83
|
phone_agent/hdc/__init__.py,sha256=6Olk6ujXQovtzmRLXk5MIqbwffxleSQnoHYvCO4G1Ww,996
|
|
82
84
|
phone_agent/hdc/connection.py,sha256=TweQ417wU2M35mgddK_Xt92zn5tZ0K7vtsaQjLn_e1o,11326
|
|
@@ -91,8 +93,8 @@ phone_agent/xctest/device.py,sha256=sOAPMoliMIabcrtsmzuGDKnZXtitqlc0lo8RSjQta7A,
|
|
|
91
93
|
phone_agent/xctest/input.py,sha256=aMp1YCRGBtGsRMKhA9rrjxuLkri0_k3n6hisi0EBJ2o,8164
|
|
92
94
|
phone_agent/xctest/screenshot.py,sha256=H6dsQGgf38h8dvuSeigiR2Qr8NucPanIgTK8kjlV9hA,6027
|
|
93
95
|
scrcpy-server-v3.3.3,sha256=fnAyO6fyWWSd1KzOl6xP77roECssbZHi575hP9U1S-A,90164
|
|
94
|
-
autoglm_gui-1.
|
|
95
|
-
autoglm_gui-1.
|
|
96
|
-
autoglm_gui-1.
|
|
97
|
-
autoglm_gui-1.
|
|
98
|
-
autoglm_gui-1.
|
|
96
|
+
autoglm_gui-1.4.0.dist-info/METADATA,sha256=jbe8WQ1AAvaRtywV6FuuJi7NSnag8_5amjJmdEs1Zaw,18248
|
|
97
|
+
autoglm_gui-1.4.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
98
|
+
autoglm_gui-1.4.0.dist-info/entry_points.txt,sha256=sz4rBO_kgrYmOiT0QnhCCv0b9QqBdWyCjugJgY8AEOI,58
|
|
99
|
+
autoglm_gui-1.4.0.dist-info/licenses/LICENSE,sha256=0IkSHDewdtmXnmYzTNq4U47EJYjTuhjQNpT0bZKuqWc,11342
|
|
100
|
+
autoglm_gui-1.4.0.dist-info/RECORD,,
|
phone_agent/config/prompts.py
CHANGED
|
@@ -3,7 +3,12 @@
|
|
|
3
3
|
from datetime import datetime
|
|
4
4
|
|
|
5
5
|
today = datetime.today()
|
|
6
|
-
|
|
6
|
+
# NOTE: Do NOT use strftime with Chinese characters in format string!
|
|
7
|
+
# On some Windows systems with non-UTF-8 locale (e.g., GBK/CP936),
|
|
8
|
+
# strftime("%Y年%m月%d日") raises UnicodeEncodeError because the C library's
|
|
9
|
+
# strftime uses locale encoding, not Python's UTF-8 mode.
|
|
10
|
+
# Use f-string instead to avoid this issue completely.
|
|
11
|
+
formatted_date = f"{today.year}年{today.month:02d}月{today.day:02d}日"
|
|
7
12
|
|
|
8
13
|
SYSTEM_PROMPT = (
|
|
9
14
|
"今天的日期是: "
|
phone_agent/config/prompts_zh.py
CHANGED
|
@@ -5,7 +5,12 @@ from datetime import datetime
|
|
|
5
5
|
today = datetime.today()
|
|
6
6
|
weekday_names = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
|
|
7
7
|
weekday = weekday_names[today.weekday()]
|
|
8
|
-
|
|
8
|
+
# NOTE: Do NOT use strftime with Chinese characters in format string!
|
|
9
|
+
# On some Windows systems with non-UTF-8 locale (e.g., GBK/CP936),
|
|
10
|
+
# strftime("%Y年%m月%d日") raises UnicodeEncodeError because the C library's
|
|
11
|
+
# strftime uses locale encoding, not Python's UTF-8 mode.
|
|
12
|
+
# Use f-string instead to avoid this issue completely.
|
|
13
|
+
formatted_date = f"{today.year}年{today.month:02d}月{today.day:02d}日 {weekday}"
|
|
9
14
|
|
|
10
15
|
SYSTEM_PROMPT = (
|
|
11
16
|
"今天的日期是: "
|