@qitqode/cli 0.1.1
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.
- package/LICENSE +23 -0
- package/README.es.md +224 -0
- package/README.fr.md +224 -0
- package/README.ja.md +224 -0
- package/README.md +250 -0
- package/README.pt.md +224 -0
- package/README.ru.md +224 -0
- package/README.zh.md +224 -0
- package/README.zht.md +224 -0
- package/THIRD_PARTY_NOTICES +9937 -0
- package/bin/qitqode +131 -0
- package/package.json +50 -0
package/README.zh.md
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
<h1 align="center">QitQode</h1>
|
|
2
|
+
|
|
3
|
+
<p align="center"><strong>拥有记忆的终端 AI 编程智能体。</strong></p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://qitqode.com">官网</a>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="./README.md">English</a> | <strong>简体中文</strong> | <a href="./README.zht.md">繁體中文</a> | <a href="./README.ja.md">日本語</a> | <a href="./README.fr.md">Français</a> | <a href="./README.ru.md">Русский</a> | <a href="./README.es.md">Español</a> | <a href="./README.pt.md">Português</a>
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
大多数编程智能体在会话结束的那一刻就把一切都忘光了。QitQode 不会。它能读写代码、运行命令、管理 Git——并跨会话保留一份持久、可检索的项目记忆;当会话运行过长时,它会重建自己的上下文,从而继续工作,而不是从头再来。
|
|
16
|
+
|
|
17
|
+
一个账户,五个模型档位——**Free**、**Default**、**Fast**、**Economy**、**Power**。无需在各家服务商的控制台之间切换,无需管理一堆 API 密钥,也无需为逐个模型的计费做表格。
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 快速开始
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Requires Bun 1.3.11 or newer
|
|
25
|
+
bun add --global @qitqode/cli
|
|
26
|
+
|
|
27
|
+
# Run
|
|
28
|
+
qitqode
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
首次启动会引导你完成登录:
|
|
32
|
+
|
|
33
|
+
- **使用 QitQode 登录**——一套设备码流程,在任何环境下都能用,包括 SSH 会话和远程沙箱:CLI 会显示一个验证 URL 和验证码(在有浏览器可用时会自动打开),你在任意设备上批准即可完成
|
|
34
|
+
- **API 密钥**——也可以直接粘贴一个 QitQode API 密钥
|
|
35
|
+
|
|
36
|
+
然后在模型选择器中挑选一个档位,就可以开始工作了。整个配置过程就这么简单。
|
|
37
|
+
|
|
38
|
+
### 使用简体中文运行 QitQode
|
|
39
|
+
|
|
40
|
+
TUI 会自动检测你的系统语言环境。若要手动切换,请在 QitQode 中运行 `/language`(或 `/lang`),然后从列表中选择简体中文。
|
|
41
|
+
|
|
42
|
+
<details>
|
|
43
|
+
<summary><strong>WSL:剪贴板问题</strong></summary>
|
|
44
|
+
|
|
45
|
+
如果你在 WSL 上复制时遇到乱码,请安装 `xsel`:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
sudo apt install xsel
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
</details>
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 为什么选择 QitQode
|
|
56
|
+
|
|
57
|
+
你不需要又一个聊天套壳工具。你需要的是一个能扛住长时间任务、不会中途跑偏的智能体。QitQode 围绕四个机制构建:
|
|
58
|
+
|
|
59
|
+
### 1. 能挺过会话结束的记忆
|
|
60
|
+
|
|
61
|
+
每个项目都拥有一个由 SQLite 全文检索支撑的持久记忆层:`MEMORY.md` 中的项目知识、自动的会话检查点、临时便签,以及按任务记录的进度日志。当你恢复工作时,相关记忆会被自动注入——经过排序和 token 预算控制,而不是一股脑倒出来。智能体会从上次停下的地方继续,而不是重新学习你的代码库。
|
|
62
|
+
|
|
63
|
+
### 2. 能自我重建的上下文
|
|
64
|
+
|
|
65
|
+
长任务会轻易超出上下文窗口。QitQode 会盯住这个窗口,在它被填满之前保存检查点,并从最新的检查点、项目记忆和任务进度中重建工作上下文——这样一次长达数小时的重构就不会在 token 上限处崩掉。
|
|
66
|
+
|
|
67
|
+
### 3. 可以问责的自主性
|
|
68
|
+
|
|
69
|
+
用 `/goal` 设定一个停止条件。当智能体认为自己完成时,一个独立的裁判模型会审阅整段对话,判断目标是否真正达成——不再有任务刚做到一半就乐观地宣布"全部完成!"的情况。搭配树状任务追踪器(`T1`、`T1.1`……)和并行子智能体,就能实现真正的无人值守工作。
|
|
70
|
+
|
|
71
|
+
### 4. 一份订阅,零服务商管道搭建
|
|
72
|
+
|
|
73
|
+
五个档位,一次登录。用 `/free`、`/default`、`/fast`、`/economical` 或 `/power` 在会话中途切换档位。随时通过内置的 qredits 显示查看你的余额——用量一目了然,不会到月底才让你大吃一惊。
|
|
74
|
+
|
|
75
|
+
### 还有别人省略掉的那些部分
|
|
76
|
+
|
|
77
|
+
- **凭据静态加密**——你的认证令牌用一个保存在操作系统钥匙串中的密钥封存,并且默认会从智能体启动的每个子进程中剥离凭据相关的环境变量。
|
|
78
|
+
- **人人可用的 TUI**——屏幕阅读器无障碍模式、`NO_COLOR` 支持、减少动效、播报详细程度控制,以及符合 WCAG AA 的高对比度主题。都是一等公民,而不是事后拼上去的。(详见下文。)
|
|
79
|
+
- **纯粹的 MIT 许可证**——没有单独的使用限制文件,也没有藏在 README 末尾的服务条款。
|
|
80
|
+
- **为真实机器打造的设备码登录**——可在 SSH、容器以及远程沙箱中使用,这些场景下回环浏览器重定向根本无法工作。
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 核心功能
|
|
85
|
+
|
|
86
|
+
### 多种智能体
|
|
87
|
+
|
|
88
|
+
| 智能体 | 说明 |
|
|
89
|
+
| ----------- | -------------------------------------------------------------------- |
|
|
90
|
+
| **build** | 默认。拥有完整工具权限,用于开发 |
|
|
91
|
+
| **plan** | 只读分析模式,用于代码探索与方案设计 |
|
|
92
|
+
| **compose** | 编排模式,用于规范驱动开发和技能驱动的工作流 |
|
|
93
|
+
|
|
94
|
+
按 `Alt+M` 在主智能体之间循环切换。子智能体由系统按需创建。
|
|
95
|
+
|
|
96
|
+
### 持久记忆
|
|
97
|
+
|
|
98
|
+
由 SQLite FTS5 全文检索驱动的跨会话记忆:
|
|
99
|
+
|
|
100
|
+
- **项目记忆**(`MEMORY.md`)——持久的项目知识、规则和架构决策
|
|
101
|
+
- **会话检查点**(`checkpoint.md`)——由 checkpoint-writer 子智能体自动维护的结构化状态快照
|
|
102
|
+
- **临时便签**(`notes.md`)——供智能体使用的临时记录区
|
|
103
|
+
- **任务进度**(`tasks/<id>/progress.md`)——按任务记录的日志
|
|
104
|
+
|
|
105
|
+
会话恢复时记忆会被自动注入,因此智能体无需重新学习项目上下文。
|
|
106
|
+
|
|
107
|
+
### 智能上下文管理
|
|
108
|
+
|
|
109
|
+
- **自动检查点**——根据模型上下文窗口决定何时保存会话状态
|
|
110
|
+
- **上下文重建**——当上下文接近上限时,从最新的检查点、项目记忆、任务进度和保留的近期消息中重建上下文,让智能体能继续当前任务
|
|
111
|
+
- **预算化注入**——用 token 预算控制有多少检查点、记忆和便签内容进入上下文,并结合重要性排序
|
|
112
|
+
|
|
113
|
+
### 任务追踪
|
|
114
|
+
|
|
115
|
+
一套树状任务系统(`T1`、`T1.1`、`T1.2`……),会自动与检查点系统集成,因此会话恢复时任务进度得以保留。
|
|
116
|
+
|
|
117
|
+
### 子智能体系统
|
|
118
|
+
|
|
119
|
+
主智能体可以按需创建子智能体。子智能体共享当前会话上下文,可以并行工作,并具备生命周期追踪、取消和后台执行能力。
|
|
120
|
+
|
|
121
|
+
### 目标 / 停止条件
|
|
122
|
+
|
|
123
|
+
`/goal` 命令为一个会话设定停止条件。当智能体试图停止时,一个独立的裁判模型会评估对话,判断该条件是否真正满足——避免在自主工作中过早地"乐观停止"。
|
|
124
|
+
|
|
125
|
+
### Compose 模式
|
|
126
|
+
|
|
127
|
+
Compose 模式为规范驱动开发提供一套结构化工作流。它内置了用于规划、执行、代码审查、TDD、调试、验证和合并的技能——从规范到交付代码,编排完整的生命周期。
|
|
128
|
+
|
|
129
|
+
### 提示词预测
|
|
130
|
+
|
|
131
|
+
工作时会以内联的幽灵文本形式预测你的下一条提示词——按 `Tab` 采纳。
|
|
132
|
+
|
|
133
|
+
### 深度研究
|
|
134
|
+
|
|
135
|
+
内置的 `/deep-research` 工作流会针对那些单次搜索无法解决的问题,运行一次结构化的多步骤调查。
|
|
136
|
+
|
|
137
|
+
### 无头运行与 IDE 使用
|
|
138
|
+
|
|
139
|
+
运行 `qitqode serve` 启动一个无头 HTTP 服务器,或运行 `qitqode acp` 以支持 Agent Client Protocol,从兼容的编辑器和远程环境中驱动 QitQode。
|
|
140
|
+
|
|
141
|
+
### 语音输入
|
|
142
|
+
|
|
143
|
+
由 TenVAD 驱动的实时流式语音输入。用 `/voice` 激活后开口说话——音频会按停顿分段并增量转写进输入框。需要 `sox`(在 macOS 上用 `brew install sox`,其他平台类似),以及通过 `voice` 配置字段显式配置的语音识别模型。
|
|
144
|
+
|
|
145
|
+
> **注意:** 编程模型只能通过 QitQode 后端按档位使用。`voice` 字段是一个受限的例外,仅用于语音识别和语音控制——它不会向编程模型列表中添加任何模型。
|
|
146
|
+
|
|
147
|
+
<details>
|
|
148
|
+
<summary><strong>WSLg 音频设置</strong></summary>
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
sudo apt install -y sox pulseaudio libasound2-plugins
|
|
152
|
+
export PULSE_SERVER=unix:/mnt/wslg/PulseServer
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
</details>
|
|
156
|
+
|
|
157
|
+
<details>
|
|
158
|
+
<summary><strong>SSH 远程音频(Mac → 远程主机)</strong></summary>
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# Mac (local)
|
|
162
|
+
brew install pulseaudio
|
|
163
|
+
pulseaudio --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1" --exit-idle-time=-1 --daemonize
|
|
164
|
+
# Add to ~/.ssh/config: RemoteForward 4713 127.0.0.1:4713
|
|
165
|
+
|
|
166
|
+
# Remote host
|
|
167
|
+
apt install -y pulseaudio pulseaudio-utils sox
|
|
168
|
+
export PULSE_SERVER=tcp:127.0.0.1:4713
|
|
169
|
+
# Verify: pactl info
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
</details>
|
|
173
|
+
|
|
174
|
+
### Dream 与 Distill
|
|
175
|
+
|
|
176
|
+
- **`/dream`**——扫描近期的会话轨迹,将持久知识提炼进项目记忆,并移除过时的条目
|
|
177
|
+
- **`/distill`**——从近期工作中发现反复出现的手动流程,把高置信度的候选项打包成可复用的技能、子智能体或命令
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 配置
|
|
182
|
+
|
|
183
|
+
QitQode 通过项目目录中的 `.qitqode/qitqode.json`(或全局的 `~/.config/qitqode/qitqode.json`)进行配置。主要选项包括:
|
|
184
|
+
|
|
185
|
+
- 模型档位选择(Free、Default、Fast、Economy、Power)
|
|
186
|
+
- 智能体权限与自定义智能体
|
|
187
|
+
- 检查点与记忆行为
|
|
188
|
+
- MCP 服务器连接
|
|
189
|
+
- 键位绑定与主题
|
|
190
|
+
|
|
191
|
+
Max 模式(并行 best-of-N 推理,配合裁判选择)可通过配置中的 `experimental.maxMode` 启用。
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 无障碍
|
|
196
|
+
|
|
197
|
+
QitQode 的 TUI 附带一等的无障碍支持:
|
|
198
|
+
|
|
199
|
+
- **无障碍模式**——设置 `QITQODE_TUI_ACCESSIBLE=1`(或在配置中设 `"tui": { "accessible": true }`)以获得对屏幕阅读器友好的体验:线性主屏渲染(不使用备用屏幕)、不捕获鼠标、低帧率、减少动效、不使用声音提示。
|
|
200
|
+
- **NO_COLOR**——任何非空的 [`NO_COLOR`](https://no-color.org) 值都会切换到单色渲染并使用透明背景。严重程度绝不会仅靠颜色传达(提示信息带有 `ℹ ✓ ▲ ✗` 符号,差异对比保留 `+`/`-` 标记)。
|
|
201
|
+
- **减少动效**——设置 `QITQODE_REDUCE_MOTION=1`(或 `"tui": { "reduce_motion": true }`)将加载动画和动效替换为静态文本。也可在运行时从命令列表中切换。
|
|
202
|
+
- **声音**——通过 `QITQODE_TUI_SOUND=0`、`"tui": { "sound": false }` 或命令列表中的运行时开关禁用声音提示。无障碍模式始终禁用声音。
|
|
203
|
+
- **播报详细程度**——在无障碍模式下,用 `QITQODE_TUI_ANNOUNCEMENTS=quiet|normal|verbose`、`"tui": { "announcements": "quiet" }` 或命令列表中的运行时选择器来控制屏幕阅读器播报的详细程度。`quiet` 只播报回合边界;`normal`(默认)会加上工具开始行;`verbose` 会加上工具完成行。错误和中止在任何级别下都始终播报。
|
|
204
|
+
- **高对比度主题**——选择内置的 `high-contrast` 主题,可获得纯黑/白表面以及符合 WCAG AA 的配色。
|
|
205
|
+
- **小尺寸终端**——TUI 在狭窄终端中会优雅降级,当窗口低于 40x8 的最小尺寸时会显示清晰的提示信息。
|
|
206
|
+
- **纯键盘操作的对话框**——每个对话框都能在没有鼠标的情况下完全操作:`Esc` 始终关闭,`Tab`(以及在有按钮行或列表的对话框中的方向键)移动焦点,`Enter` 或 `Space` 激活获得焦点的控件。在纯文本/NO_COLOR 终端中,高亮的列表行还会带一个 `›` 标记,因此无需颜色也能辨别当前选择。
|
|
207
|
+
|
|
208
|
+
无障碍环境变量是单向开关:`QITQODE_TUI_ACCESSIBLE=1`、`QITQODE_REDUCE_MOTION=1`、`NO_COLOR` 和 `QITQODE_TUI_SOUND=0` 始终优先于配置值和运行时开关——无障碍保障不可被反向关闭。`QITQODE_TUI_ANNOUNCEMENTS` 在设置后同样优先于配置值和运行时选择器。
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## 开发
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
bun install # Install dependencies
|
|
216
|
+
bun run dev # Run in development mode
|
|
217
|
+
bun turbo typecheck # Type check
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## 许可证
|
|
223
|
+
|
|
224
|
+
源代码基于 [MIT 许可证](./LICENSE)授权。
|
package/README.zht.md
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
<h1 align="center">QitQode</h1>
|
|
2
|
+
|
|
3
|
+
<p align="center"><strong>具備記憶能力的終端機 AI 程式設計代理。</strong></p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://qitqode.com">官方網站</a>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="./README.md">English</a> | <a href="./README.zh.md">简体中文</a> | <strong>繁體中文</strong> | <a href="./README.ja.md">日本語</a> | <a href="./README.fr.md">Français</a> | <a href="./README.ru.md">Русский</a> | <a href="./README.es.md">Español</a> | <a href="./README.pt.md">Português</a>
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
大多數程式設計代理在工作階段結束的那一刻就會忘掉一切。QitQode 不會。它會讀寫程式碼、執行指令、管理 Git,並在多個工作階段之間保有一份持久且可搜尋的專案記憶;當任務執行過長時,它會重建自己的脈絡,得以繼續工作,而不是從頭開始。
|
|
16
|
+
|
|
17
|
+
一個帳號,五個模型層級——**Free**、**Default**、**Fast**、**Economy**、**Power**。不必管理各家供應商的儀表板、不必周旋於各種 API 金鑰、也不必為每個模型維護計費表格。
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 快速開始
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Requires Bun 1.3.11 or newer
|
|
25
|
+
bun add --global @qitqode/cli
|
|
26
|
+
|
|
27
|
+
# Run
|
|
28
|
+
qitqode
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
首次啟動會引導你完成登入:
|
|
32
|
+
|
|
33
|
+
- **使用 QitQode 登入**——採用裝置代碼流程,適用於任何環境,包括 SSH 工作階段與遠端沙箱:CLI 會顯示一組驗證網址與代碼(在有瀏覽器可用時也會自動開啟),在任何裝置上完成授權即可
|
|
34
|
+
- **API 金鑰**——改為貼上一組 QitQode API 金鑰
|
|
35
|
+
|
|
36
|
+
接著從模型選擇器挑一個層級就能開始工作。整個設定就這麼簡單。
|
|
37
|
+
|
|
38
|
+
### 以繁體中文使用 QitQode
|
|
39
|
+
|
|
40
|
+
TUI 會自動偵測你的系統語系。若要手動切換,可在 QitQode 內執行 `/language`(或 `/lang`),然後從清單中選擇「繁體中文」。
|
|
41
|
+
|
|
42
|
+
<details>
|
|
43
|
+
<summary><strong>WSL:剪貼簿問題</strong></summary>
|
|
44
|
+
|
|
45
|
+
若你在 WSL 上複製時遇到亂碼,請安裝 `xsel`:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
sudo apt install xsel
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
</details>
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 為什麼選擇 QitQode
|
|
56
|
+
|
|
57
|
+
你不需要再多一個聊天套殼。你需要的是一個能扛下長時間任務、又不會迷失方向的代理。QitQode 圍繞四個機制打造:
|
|
58
|
+
|
|
59
|
+
### 1. 撐過工作階段的記憶
|
|
60
|
+
|
|
61
|
+
每個專案都有一層由 SQLite 全文搜尋支援的持久記憶:`MEMORY.md` 中的專案知識、自動的工作階段檢查點、暫存筆記,以及各任務的進度紀錄。當你重新開始時,相關記憶會自動注入——經過排序與 token 預算控制,而不是一股腦倒進來。代理會從中斷處接續,而不是重新認識你的程式碼庫。
|
|
62
|
+
|
|
63
|
+
### 2. 會自我重建的脈絡
|
|
64
|
+
|
|
65
|
+
長任務很容易超出脈絡視窗。QitQode 會監看視窗,在填滿前先存下狀態,並依據最新的檢查點、專案記憶與任務進度重建工作脈絡——因此長達數小時的重構不會在 token 上限處戛然而止。
|
|
66
|
+
|
|
67
|
+
### 3. 可被究責的自主性
|
|
68
|
+
|
|
69
|
+
用 `/goal` 設定停止條件。當代理認為任務已完成時,會有一個獨立的裁判模型審閱整段對話,判定目標是否真正達成——不再出現任務只做到一半就樂觀宣告「全部完成!」的情況。搭配樹狀任務追蹤器(`T1`、`T1.1`、……)與平行子代理,即可完成真正無人值守的工作。
|
|
70
|
+
|
|
71
|
+
### 4. 一份訂閱,零供應商接線
|
|
72
|
+
|
|
73
|
+
五個層級,一次登入。工作階段中可用 `/free`、`/default`、`/fast`、`/economical` 或 `/power` 隨時切換層級。內建的 qredits 顯示讓你隨時查看餘額——用量一目了然,不會到了月底才嚇一跳。
|
|
74
|
+
|
|
75
|
+
### 以及別人省略掉的部分
|
|
76
|
+
|
|
77
|
+
- **憑證靜態加密**——你的驗證權杖以一把存放在作業系統金鑰圈的金鑰封存,且代理所衍生的每一個子行程預設都會被剝除憑證相關的環境變數。
|
|
78
|
+
- **人人都能用的 TUI**——螢幕閱讀器無障礙模式、`NO_COLOR` 支援、減少動態效果、播報詳細度控制,以及符合 WCAG AA 的高對比主題。原生內建,而非事後補上。(詳見下文。)
|
|
79
|
+
- **純粹的 MIT 授權**——沒有另立的使用限制檔案,也沒有藏在 README 尾端的服務條款。
|
|
80
|
+
- **為真實機器打造的裝置代碼登入**——可在 SSH、容器與遠端沙箱中運作,這些是本機瀏覽器回導方式永遠做不到的。
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 核心功能
|
|
85
|
+
|
|
86
|
+
### 多重代理
|
|
87
|
+
|
|
88
|
+
| 代理 | 說明 |
|
|
89
|
+
| ----------- | -------------------------------------------------------------------- |
|
|
90
|
+
| **build** | 預設。具備開發所需的完整工具權限 |
|
|
91
|
+
| **plan** | 唯讀分析模式,用於程式碼探索與方案設計 |
|
|
92
|
+
| **compose** | 編排模式,用於規格驅動開發與技能驅動的工作流程 |
|
|
93
|
+
|
|
94
|
+
按 `Alt+M` 可在主要代理之間循環切換。子代理則由系統依需求建立。
|
|
95
|
+
|
|
96
|
+
### 持久記憶
|
|
97
|
+
|
|
98
|
+
由 SQLite FTS5 全文搜尋驅動的跨工作階段記憶:
|
|
99
|
+
|
|
100
|
+
- **專案記憶**(`MEMORY.md`)——持久的專案知識、規則與架構決策
|
|
101
|
+
- **工作階段檢查點**(`checkpoint.md`)——由 checkpoint-writer 子代理自動維護的結構化狀態快照
|
|
102
|
+
- **暫存筆記**(`notes.md`)——供代理使用的臨時筆記區
|
|
103
|
+
- **任務進度**(`tasks/<id>/progress.md`)——各任務的紀錄
|
|
104
|
+
|
|
105
|
+
工作階段重新開始時記憶會自動注入,因此代理無需重新認識專案脈絡。
|
|
106
|
+
|
|
107
|
+
### 智慧脈絡管理
|
|
108
|
+
|
|
109
|
+
- **自動檢查點**——依模型脈絡視窗決定何時儲存工作階段狀態
|
|
110
|
+
- **脈絡重建**——當脈絡逼近上限時,依最新檢查點、專案記憶、任務進度與保留下來的近期訊息重建脈絡,讓代理得以繼續當前任務
|
|
111
|
+
- **預算式注入**——以 token 預算控制有多少檢查點、記憶與筆記內容進入脈絡,並搭配重要性排序
|
|
112
|
+
|
|
113
|
+
### 任務追蹤
|
|
114
|
+
|
|
115
|
+
樹狀任務系統(`T1`、`T1.1`、`T1.2`、……)會自動與檢查點系統整合,因此工作階段重新開始時任務進度得以保留。
|
|
116
|
+
|
|
117
|
+
### 子代理系統
|
|
118
|
+
|
|
119
|
+
主要代理可依需求建立子代理。子代理共用當前的工作階段脈絡,可平行運作,並具備生命週期追蹤、取消與背景執行能力。
|
|
120
|
+
|
|
121
|
+
### 目標/停止條件
|
|
122
|
+
|
|
123
|
+
`/goal` 指令為工作階段設定停止條件。當代理試圖停止時,會有一個獨立的裁判模型評估對話,判定條件是否真正滿足——避免自主工作過程中過早出現「樂觀停止」。
|
|
124
|
+
|
|
125
|
+
### Compose 模式
|
|
126
|
+
|
|
127
|
+
Compose 模式為規格驅動開發提供結構化的工作流程。它內建了用於規劃、執行、程式碼審查、TDD、除錯、驗證與合併的技能——編排從規格到交付程式碼的完整生命週期。
|
|
128
|
+
|
|
129
|
+
### 提示預測
|
|
130
|
+
|
|
131
|
+
在你工作時,行內的灰字建議會預測你的下一則提示——按 `Tab` 即可採用。
|
|
132
|
+
|
|
133
|
+
### 深度研究
|
|
134
|
+
|
|
135
|
+
內建的 `/deep-research` 工作流程會針對單次搜尋無法解決的問題,執行結構化的多步驟調查。
|
|
136
|
+
|
|
137
|
+
### 無介面與 IDE 使用
|
|
138
|
+
|
|
139
|
+
執行 `qitqode serve` 可啟動無介面的 HTTP 伺服器,或執行 `qitqode acp` 以支援 Agent Client Protocol,從相容的編輯器與遠端環境驅動 QitQode。
|
|
140
|
+
|
|
141
|
+
### 語音輸入
|
|
142
|
+
|
|
143
|
+
由 TenVAD 驅動的即時串流語音輸入。以 `/voice` 啟用後即可開口說話——音訊會依停頓切分,並逐步轉寫進輸入框。需要 `sox`(macOS 上用 `brew install sox`,其他平台類似),並透過 `voice` 設定欄位明確設定一個語音辨識模型。
|
|
144
|
+
|
|
145
|
+
> **注意:** 程式設計模型僅透過 QitQode 後端以層級方式提供。`voice` 欄位是一個範圍受限的例外,僅用於語音辨識與語音控制——它不會把模型加入程式設計模型清單。
|
|
146
|
+
|
|
147
|
+
<details>
|
|
148
|
+
<summary><strong>WSLg 音訊設定</strong></summary>
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
sudo apt install -y sox pulseaudio libasound2-plugins
|
|
152
|
+
export PULSE_SERVER=unix:/mnt/wslg/PulseServer
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
</details>
|
|
156
|
+
|
|
157
|
+
<details>
|
|
158
|
+
<summary><strong>SSH 遠端音訊(Mac → 遠端主機)</strong></summary>
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# Mac (local)
|
|
162
|
+
brew install pulseaudio
|
|
163
|
+
pulseaudio --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1" --exit-idle-time=-1 --daemonize
|
|
164
|
+
# Add to ~/.ssh/config: RemoteForward 4713 127.0.0.1:4713
|
|
165
|
+
|
|
166
|
+
# Remote host
|
|
167
|
+
apt install -y pulseaudio pulseaudio-utils sox
|
|
168
|
+
export PULSE_SERVER=tcp:127.0.0.1:4713
|
|
169
|
+
# Verify: pactl info
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
</details>
|
|
173
|
+
|
|
174
|
+
### Dream 與 Distill
|
|
175
|
+
|
|
176
|
+
- **`/dream`**——掃描近期的工作階段軌跡,將持久知識萃取進專案記憶,並移除過時的條目
|
|
177
|
+
- **`/distill`**——在近期工作中找出重複的手動流程,並把高信心的候選項打包成可重用的技能、子代理或指令
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 設定
|
|
182
|
+
|
|
183
|
+
QitQode 透過專案目錄中的 `.qitqode/qitqode.json`(或全域的 `~/.config/qitqode/qitqode.json`)進行設定。主要選項包括:
|
|
184
|
+
|
|
185
|
+
- 模型層級選擇(Free、Default、Fast、Economy、Power)
|
|
186
|
+
- 代理權限與自訂代理
|
|
187
|
+
- 檢查點與記憶行為
|
|
188
|
+
- MCP 伺服器連線
|
|
189
|
+
- 鍵位綁定與主題
|
|
190
|
+
|
|
191
|
+
Max Mode(平行 best-of-N 推理搭配裁判選取)可透過設定中的 `experimental.maxMode` 啟用。
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 無障礙
|
|
196
|
+
|
|
197
|
+
QitQode 的 TUI 內建原生無障礙支援:
|
|
198
|
+
|
|
199
|
+
- **無障礙模式**——設定 `QITQODE_TUI_ACCESSIBLE=1`(或在設定中設 `"tui": { "accessible": true }`)以取得對螢幕閱讀器友善的體驗:線性的主畫面繪製(不使用替代畫面)、不擷取滑鼠、低影格率、減少動態效果,以及沒有音效提示。
|
|
200
|
+
- **NO_COLOR**——任何非空的 [`NO_COLOR`](https://no-color.org) 值都會切換為單色繪製並使用透明背景。嚴重程度絕不僅以顏色傳達(快顯訊息會帶有 `ℹ ✓ ▲ ✗` 符號,差異則保留 `+`/`-` 標記)。
|
|
201
|
+
- **減少動態效果**——設定 `QITQODE_REDUCE_MOTION=1`(或 `"tui": { "reduce_motion": true }`)可將旋轉圖示與動畫替換為靜態文字。也可在執行期間從指令清單切換。
|
|
202
|
+
- **音效**——以 `QITQODE_TUI_SOUND=0`、`"tui": { "sound": false }` 或指令清單中的執行期切換來停用音效提示。無障礙模式一律停用音效。
|
|
203
|
+
- **播報詳細度**——在無障礙模式下,可用 `QITQODE_TUI_ANNOUNCEMENTS=quiet|normal|verbose`、`"tui": { "announcements": "quiet" }` 或指令清單中的執行期選擇器,控制螢幕閱讀器播報的詳細程度。`quiet` 只播報回合邊界;`normal`(預設)會加上工具開始的訊息;`verbose` 會再加上工具完成的訊息。錯誤與中止在任何層級都一律播報。
|
|
204
|
+
- **高對比主題**——選擇內建的 `high-contrast` 主題,可取得純黑/白介面與符合 WCAG AA 的顏色。
|
|
205
|
+
- **小型終端機**——TUI 在狹窄終端機中會優雅降級,並在視窗低於 40x8 最小尺寸時顯示清楚的訊息。
|
|
206
|
+
- **僅鍵盤操作的對話框**——每個對話框都能完全以鍵盤操作:`Esc` 一律關閉,`Tab`(在對話框有按鈕列或清單時,方向鍵亦可)移動焦點,`Enter` 或 `Space` 啟動聚焦的控制項。在純文字/NO_COLOR 終端機中,被反白的清單列還會帶有 `›` 標記,讓選取狀態不靠顏色也能辨識。
|
|
207
|
+
|
|
208
|
+
無障礙環境變數是單向開關:`QITQODE_TUI_ACCESSIBLE=1`、`QITQODE_REDUCE_MOTION=1`、`NO_COLOR` 與 `QITQODE_TUI_SOUND=0` 一律優先於設定值與執行期切換——無障礙保證無法被反向關閉。`QITQODE_TUI_ANNOUNCEMENTS` 在設定時同樣優先於設定值與執行期選擇器。
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## 開發
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
bun install # Install dependencies
|
|
216
|
+
bun run dev # Run in development mode
|
|
217
|
+
bun turbo typecheck # Type check
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## 授權
|
|
223
|
+
|
|
224
|
+
原始碼採用 [MIT License](./LICENSE) 授權。
|