deconwork 0.0.1__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.
- deconwork-0.0.1/PKG-INFO +210 -0
- deconwork-0.0.1/README.md +200 -0
- deconwork-0.0.1/deconwork/__init__.py +13 -0
- deconwork-0.0.1/deconwork/agent_main.py +658 -0
- deconwork-0.0.1/deconwork/config_manager.py +787 -0
- deconwork-0.0.1/deconwork/context_compressor.py +251 -0
- deconwork-0.0.1/deconwork/conversation_store.py +226 -0
- deconwork-0.0.1/deconwork/heartbeat_mode.py +77 -0
- deconwork-0.0.1/deconwork/runtime.py +113 -0
- deconwork-0.0.1/deconwork/runtime_state.py +35 -0
- deconwork-0.0.1/deconwork.egg-info/PKG-INFO +210 -0
- deconwork-0.0.1/deconwork.egg-info/SOURCES.txt +16 -0
- deconwork-0.0.1/deconwork.egg-info/dependency_links.txt +1 -0
- deconwork-0.0.1/deconwork.egg-info/entry_points.txt +2 -0
- deconwork-0.0.1/deconwork.egg-info/requires.txt +2 -0
- deconwork-0.0.1/deconwork.egg-info/top_level.txt +1 -0
- deconwork-0.0.1/pyproject.toml +30 -0
- deconwork-0.0.1/setup.cfg +4 -0
deconwork-0.0.1/PKG-INFO
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: deconwork
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: DeconWork standalone desktop agent runtime powered by klynx.
|
|
5
|
+
Author: QZX
|
|
6
|
+
Requires-Python: >=3.9
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
Requires-Dist: klynx>=0.0.17
|
|
9
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
10
|
+
|
|
11
|
+
# DeconWork 使用教程(中文版)
|
|
12
|
+
|
|
13
|
+
DeconWork 是独立程序,`klynx` 仅作为底层依赖库使用。
|
|
14
|
+
|
|
15
|
+
运行形态分为两个独立进程:
|
|
16
|
+
|
|
17
|
+
1. 主进程:终端对话(ReAct)。
|
|
18
|
+
2. 心跳进程:定时读取 `heartbeat.md` 并触发自动化任务。
|
|
19
|
+
|
|
20
|
+
## 1. 安装
|
|
21
|
+
|
|
22
|
+
发布安装:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pip install -U deconwork
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
本地可编辑安装(开发模式):
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
pip install -e DeconBear/DeconWork
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
安装后可直接执行:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
DeconWork
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
首次执行任意 `DeconWork` 命令时,会自动初始化安装目录下的 `deconwork.env` 与 `deconwork_runtime/`。
|
|
41
|
+
|
|
42
|
+
## 2. 快速开始
|
|
43
|
+
|
|
44
|
+
1. 初始化配置与运行时文件:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
DeconWork config init
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
2. 选择模型并配置 API Key:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
DeconWork config model
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
3. 启动主进程(对话):
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
DeconWork
|
|
60
|
+
# 或 DeconWork run
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
如果当前未完成模型配置(例如缺少 API key),会自动进入 `DeconWork config model` 向导。
|
|
64
|
+
|
|
65
|
+
4. (可选)在另一个终端启动心跳进程:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
DeconWork heartbeat
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## 3. 主进程对话命令
|
|
72
|
+
|
|
73
|
+
启动 `DeconWork` 后支持以下命令:
|
|
74
|
+
|
|
75
|
+
1. `/new`:新建会话(生成新会话 ID)。
|
|
76
|
+
2. `/sessions`:查看最近保存的会话 ID。
|
|
77
|
+
3. `/resume <session_id>`:恢复历史会话。
|
|
78
|
+
4. `/status`:查看当前状态(含权限模式/命令执行开关)。
|
|
79
|
+
5. `/clear`:等价于 `/new`。
|
|
80
|
+
6. `/quit`:退出主进程。
|
|
81
|
+
|
|
82
|
+
说明:每轮对话后会自动将会话按 ID 持久化。
|
|
83
|
+
|
|
84
|
+
## 4. 心跳进程命令
|
|
85
|
+
|
|
86
|
+
持续运行心跳:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
DeconWork heartbeat
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
只触发一次心跳后退出:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
DeconWork heartbeat --once
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## 5. 配置命令
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
DeconWork config show
|
|
102
|
+
DeconWork config init
|
|
103
|
+
DeconWork config set <KEY> <VALUE>
|
|
104
|
+
DeconWork config model --list
|
|
105
|
+
DeconWork config model
|
|
106
|
+
DeconWork config model --select kimi-k2.5
|
|
107
|
+
DeconWork config env path
|
|
108
|
+
DeconWork config env show
|
|
109
|
+
DeconWork config env show --raw
|
|
110
|
+
DeconWork config env set <KEY> <VALUE>
|
|
111
|
+
DeconWork config env unset <KEY>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
配置工作目录(可选,不配置则默认安装目录):
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
DeconWork config set DECONWORK_WORKING_DIR <你的项目目录>
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## 6. 权限与沙箱配置
|
|
121
|
+
|
|
122
|
+
DeconWork 支持两种权限模式:
|
|
123
|
+
|
|
124
|
+
1. `workspace`:工作目录沙箱。
|
|
125
|
+
2. `global`:全局权限(默认,可访问工作目录外路径)。
|
|
126
|
+
|
|
127
|
+
当前权限实现方式:属于 Agent 工具层约束。`workspace` 模式通过工具路径校验(virtual_root)限制文件操作范围,并通过 `allow-shell` 控制命令执行开关。
|
|
128
|
+
注意:这不是 OS 级强隔离沙箱;如果需要系统级隔离,请自行配置容器或操作系统沙箱(如 Windows Sandbox / 容器 / 虚拟机)。
|
|
129
|
+
|
|
130
|
+
查看当前权限配置:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
DeconWork config permission
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
切换权限模式:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
DeconWork config permission --mode workspace
|
|
140
|
+
DeconWork config permission --mode global
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
用沙箱语义切换(等价模式切换):
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
DeconWork config permission --sandbox on # 等价 workspace
|
|
147
|
+
DeconWork config permission --sandbox off # 等价 global
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
控制是否允许 `execute_command`:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
DeconWork config permission --allow-shell true
|
|
154
|
+
DeconWork config permission --allow-shell false
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
分别控制关键文件是否允许写入(默认都为 `true`):
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
DeconWork config permission --write-rules false
|
|
161
|
+
DeconWork config permission --write-memory false
|
|
162
|
+
DeconWork config permission --write-heartbeat false
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## 7. 常用环境变量
|
|
166
|
+
|
|
167
|
+
1. `DECONWORK_MODEL_PROVIDER`
|
|
168
|
+
2. `DECONWORK_MODEL_NAME`
|
|
169
|
+
3. `DECONWORK_API_BASE`
|
|
170
|
+
4. `DECONWORK_HEARTBEAT_ENABLED`
|
|
171
|
+
5. `DECONWORK_HEARTBEAT_INTERVAL`
|
|
172
|
+
6. `DECONWORK_HEARTBEAT_LOCK_POLICY`(`skip_if_busy` / `wait`)
|
|
173
|
+
7. `DECONWORK_WORKING_DIR`(Agent 工作目录,默认安装目录)
|
|
174
|
+
8. `DECONWORK_MAX_ITERATIONS`(单轮最大循环次数,默认 `200`)
|
|
175
|
+
9. `DECONWORK_APPEND_MAX_TOKENS`
|
|
176
|
+
10. `DECONWORK_PERMISSION_MODE`(`workspace` / `global`,默认 `global`)
|
|
177
|
+
11. `DECONWORK_ALLOW_SHELL_COMMANDS`(`true` / `false`)
|
|
178
|
+
12. `DECONWORK_ALLOW_WRITE_RULES_FILE`(`true` / `false`)
|
|
179
|
+
13. `DECONWORK_ALLOW_WRITE_MEMORY_FILE`(`true` / `false`)
|
|
180
|
+
14. `DECONWORK_ALLOW_WRITE_HEARTBEAT_FILE`(`true` / `false`)
|
|
181
|
+
|
|
182
|
+
## 8. 安装目录中的文件布局
|
|
183
|
+
|
|
184
|
+
DeconWork 会把配置和运行时文件固定到安装目录下:
|
|
185
|
+
|
|
186
|
+
```text
|
|
187
|
+
<install_dir>/
|
|
188
|
+
deconwork.env
|
|
189
|
+
deconwork_runtime/
|
|
190
|
+
rules.md
|
|
191
|
+
memory.md
|
|
192
|
+
heartbeat.md
|
|
193
|
+
conversations/
|
|
194
|
+
index.json
|
|
195
|
+
<session_id>.json
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
其中 `rules.md`、`memory.md`、`heartbeat.md` 会作为运行时附加上下文输入。
|
|
199
|
+
|
|
200
|
+
说明:以上是配置与运行时文件位置;Agent 实际执行的工作目录由 `DECONWORK_WORKING_DIR` 决定。
|
|
201
|
+
|
|
202
|
+
## 9. 本地源码运行
|
|
203
|
+
|
|
204
|
+
仓库内也可直接运行包装入口:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
python DeconBear/DeconWork/DeconWork_agent.py
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
它与 `DeconWork` CLI 复用同一套实现。
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# DeconWork 使用教程(中文版)
|
|
2
|
+
|
|
3
|
+
DeconWork 是独立程序,`klynx` 仅作为底层依赖库使用。
|
|
4
|
+
|
|
5
|
+
运行形态分为两个独立进程:
|
|
6
|
+
|
|
7
|
+
1. 主进程:终端对话(ReAct)。
|
|
8
|
+
2. 心跳进程:定时读取 `heartbeat.md` 并触发自动化任务。
|
|
9
|
+
|
|
10
|
+
## 1. 安装
|
|
11
|
+
|
|
12
|
+
发布安装:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
pip install -U deconwork
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
本地可编辑安装(开发模式):
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
pip install -e DeconBear/DeconWork
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
安装后可直接执行:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
DeconWork
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
首次执行任意 `DeconWork` 命令时,会自动初始化安装目录下的 `deconwork.env` 与 `deconwork_runtime/`。
|
|
31
|
+
|
|
32
|
+
## 2. 快速开始
|
|
33
|
+
|
|
34
|
+
1. 初始化配置与运行时文件:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
DeconWork config init
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
2. 选择模型并配置 API Key:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
DeconWork config model
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
3. 启动主进程(对话):
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
DeconWork
|
|
50
|
+
# 或 DeconWork run
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
如果当前未完成模型配置(例如缺少 API key),会自动进入 `DeconWork config model` 向导。
|
|
54
|
+
|
|
55
|
+
4. (可选)在另一个终端启动心跳进程:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
DeconWork heartbeat
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 3. 主进程对话命令
|
|
62
|
+
|
|
63
|
+
启动 `DeconWork` 后支持以下命令:
|
|
64
|
+
|
|
65
|
+
1. `/new`:新建会话(生成新会话 ID)。
|
|
66
|
+
2. `/sessions`:查看最近保存的会话 ID。
|
|
67
|
+
3. `/resume <session_id>`:恢复历史会话。
|
|
68
|
+
4. `/status`:查看当前状态(含权限模式/命令执行开关)。
|
|
69
|
+
5. `/clear`:等价于 `/new`。
|
|
70
|
+
6. `/quit`:退出主进程。
|
|
71
|
+
|
|
72
|
+
说明:每轮对话后会自动将会话按 ID 持久化。
|
|
73
|
+
|
|
74
|
+
## 4. 心跳进程命令
|
|
75
|
+
|
|
76
|
+
持续运行心跳:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
DeconWork heartbeat
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
只触发一次心跳后退出:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
DeconWork heartbeat --once
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## 5. 配置命令
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
DeconWork config show
|
|
92
|
+
DeconWork config init
|
|
93
|
+
DeconWork config set <KEY> <VALUE>
|
|
94
|
+
DeconWork config model --list
|
|
95
|
+
DeconWork config model
|
|
96
|
+
DeconWork config model --select kimi-k2.5
|
|
97
|
+
DeconWork config env path
|
|
98
|
+
DeconWork config env show
|
|
99
|
+
DeconWork config env show --raw
|
|
100
|
+
DeconWork config env set <KEY> <VALUE>
|
|
101
|
+
DeconWork config env unset <KEY>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
配置工作目录(可选,不配置则默认安装目录):
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
DeconWork config set DECONWORK_WORKING_DIR <你的项目目录>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## 6. 权限与沙箱配置
|
|
111
|
+
|
|
112
|
+
DeconWork 支持两种权限模式:
|
|
113
|
+
|
|
114
|
+
1. `workspace`:工作目录沙箱。
|
|
115
|
+
2. `global`:全局权限(默认,可访问工作目录外路径)。
|
|
116
|
+
|
|
117
|
+
当前权限实现方式:属于 Agent 工具层约束。`workspace` 模式通过工具路径校验(virtual_root)限制文件操作范围,并通过 `allow-shell` 控制命令执行开关。
|
|
118
|
+
注意:这不是 OS 级强隔离沙箱;如果需要系统级隔离,请自行配置容器或操作系统沙箱(如 Windows Sandbox / 容器 / 虚拟机)。
|
|
119
|
+
|
|
120
|
+
查看当前权限配置:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
DeconWork config permission
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
切换权限模式:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
DeconWork config permission --mode workspace
|
|
130
|
+
DeconWork config permission --mode global
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
用沙箱语义切换(等价模式切换):
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
DeconWork config permission --sandbox on # 等价 workspace
|
|
137
|
+
DeconWork config permission --sandbox off # 等价 global
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
控制是否允许 `execute_command`:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
DeconWork config permission --allow-shell true
|
|
144
|
+
DeconWork config permission --allow-shell false
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
分别控制关键文件是否允许写入(默认都为 `true`):
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
DeconWork config permission --write-rules false
|
|
151
|
+
DeconWork config permission --write-memory false
|
|
152
|
+
DeconWork config permission --write-heartbeat false
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## 7. 常用环境变量
|
|
156
|
+
|
|
157
|
+
1. `DECONWORK_MODEL_PROVIDER`
|
|
158
|
+
2. `DECONWORK_MODEL_NAME`
|
|
159
|
+
3. `DECONWORK_API_BASE`
|
|
160
|
+
4. `DECONWORK_HEARTBEAT_ENABLED`
|
|
161
|
+
5. `DECONWORK_HEARTBEAT_INTERVAL`
|
|
162
|
+
6. `DECONWORK_HEARTBEAT_LOCK_POLICY`(`skip_if_busy` / `wait`)
|
|
163
|
+
7. `DECONWORK_WORKING_DIR`(Agent 工作目录,默认安装目录)
|
|
164
|
+
8. `DECONWORK_MAX_ITERATIONS`(单轮最大循环次数,默认 `200`)
|
|
165
|
+
9. `DECONWORK_APPEND_MAX_TOKENS`
|
|
166
|
+
10. `DECONWORK_PERMISSION_MODE`(`workspace` / `global`,默认 `global`)
|
|
167
|
+
11. `DECONWORK_ALLOW_SHELL_COMMANDS`(`true` / `false`)
|
|
168
|
+
12. `DECONWORK_ALLOW_WRITE_RULES_FILE`(`true` / `false`)
|
|
169
|
+
13. `DECONWORK_ALLOW_WRITE_MEMORY_FILE`(`true` / `false`)
|
|
170
|
+
14. `DECONWORK_ALLOW_WRITE_HEARTBEAT_FILE`(`true` / `false`)
|
|
171
|
+
|
|
172
|
+
## 8. 安装目录中的文件布局
|
|
173
|
+
|
|
174
|
+
DeconWork 会把配置和运行时文件固定到安装目录下:
|
|
175
|
+
|
|
176
|
+
```text
|
|
177
|
+
<install_dir>/
|
|
178
|
+
deconwork.env
|
|
179
|
+
deconwork_runtime/
|
|
180
|
+
rules.md
|
|
181
|
+
memory.md
|
|
182
|
+
heartbeat.md
|
|
183
|
+
conversations/
|
|
184
|
+
index.json
|
|
185
|
+
<session_id>.json
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
其中 `rules.md`、`memory.md`、`heartbeat.md` 会作为运行时附加上下文输入。
|
|
189
|
+
|
|
190
|
+
说明:以上是配置与运行时文件位置;Agent 实际执行的工作目录由 `DECONWORK_WORKING_DIR` 决定。
|
|
191
|
+
|
|
192
|
+
## 9. 本地源码运行
|
|
193
|
+
|
|
194
|
+
仓库内也可直接运行包装入口:
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
python DeconBear/DeconWork/DeconWork_agent.py
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
它与 `DeconWork` CLI 复用同一套实现。
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"""DeconWork 独立程序包入口。"""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def main(argv=None):
|
|
7
|
+
"""延迟导入 CLI 入口,避免 `python -m deconwork.runtime` 的重复导入警告。"""
|
|
8
|
+
from .runtime import main as runtime_main
|
|
9
|
+
|
|
10
|
+
return runtime_main(argv)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
__all__ = ["main"]
|