|
|
# 03 分期实施与优化清单
|
|
|
|
|
|
源码:`D:\ideaProject\gcode`(阶段 1 再 `git init`)。
|
|
|
原则:每一阶段有过关标准;没过不要开下一阶段。不要边读 Qoze 边整文件复制。
|
|
|
|
|
|
---
|
|
|
|
|
|
## 阶段 0|对照方案精读(0.5~1 天)
|
|
|
|
|
|
精读 Qoze 时带着本方案,不写 G-CODE 业务代码。
|
|
|
|
|
|
过关:能口述 ReAct 节点顺序、方案 C 在 cmd 下会怎样、HITL 拒绝后图为什么不会崩。
|
|
|
|
|
|
---
|
|
|
|
|
|
## 阶段 1|心脏(图 + 四件套 + HITL)
|
|
|
|
|
|
只做 REPL,先保证能打中文、能改文件。
|
|
|
|
|
|
- `graph.py`:`START → llm_call ⇄ tool_node → END`
|
|
|
- `tools/fs.py` + `tools/shell.py` + `safety.py`(回调先做成终端 y/N)
|
|
|
- `session.py`:sqlite + `thread_id`
|
|
|
- `prompt.py`:短静态 + cwd/树
|
|
|
- `models/`:先能跑通一家 OpenAI 兼容(例如 Agicto / DeepSeek)
|
|
|
- `windows.py`:UTF-8→GBK 解码;超时杀进程树
|
|
|
|
|
|
过关:
|
|
|
|
|
|
- 在任意项目目录启动,完成「读 README → 改一处 → 跑命令看结果」
|
|
|
- 路径逃出 cwd 被拒绝(有测试)
|
|
|
- mock LLM 的图测试:一次 tool_call 再纯文本,能 END
|
|
|
- 写入和 shell 输入 `n` 会取消,模型能收到拒绝原因
|
|
|
- 重启进程同一 session 能接着聊
|
|
|
|
|
|
---
|
|
|
|
|
|
## 阶段 2|主界面(TUI + 方案 C)
|
|
|
|
|
|
- `ui/detect.py` + `ui/tui/` + `ui/repl.py`
|
|
|
- TUI:消息列表、思考流、工具卡片、输入框(自己的样式)
|
|
|
- conhost:拒绝 TUI、引导 WT、回退 REPL
|
|
|
- `--ui tui` / `--ui repl`;Kitty 协议在 TUI 路径关闭
|
|
|
- `/edit`、`/clear`、`/help`、`/quit`
|
|
|
|
|
|
过关:见 [01-Windows中文输入方案.md](./01-Windows中文输入方案.md) 验收表。
|
|
|
核心图仍可在无 Textual 时单测。
|
|
|
|
|
|
---
|
|
|
|
|
|
## 阶段 3|多模型注册表
|
|
|
|
|
|
把阶段 1 的「写死一家」换成 `models.yaml`。TUI 可选模型。加一家 = 改配置。
|
|
|
`reasoning` 模型要把思考内容接到思考区,尽量不打 LangChain 猴子补丁。
|
|
|
|
|
|
过关:至少两家兼容端点(例如 DeepSeek 官方 + Agicto)能切换完成同一任务。
|
|
|
|
|
|
---
|
|
|
|
|
|
## 阶段 4|Playwright MCP
|
|
|
|
|
|
薄 `mcp/client.py`,默认只配置 `@playwright/mcp`。无 Node 时提示不可用。
|
|
|
prompt 静态段此时才写「如何使用浏览器工具」,之前禁止出现。
|
|
|
|
|
|
过关:WT 下让 Agent 打开一个本地或公开页、取快照或截图、把结果写进对话。公司内网站点注意别把 Cookie 打进日志。
|
|
|
|
|
|
---
|
|
|
|
|
|
## 阶段 5|按需增强(每次只加一个)
|
|
|
|
|
|
从下面挑,不要一次全上:
|
|
|
|
|
|
- `.gcode/rules/` 项目规则
|
|
|
- git 状态注入动态上下文
|
|
|
- `/compact` 对话摘要截断
|
|
|
- Java / Maven 专用工具(`pom` 模块、失败日志截断)
|
|
|
- 公司 GitLab / Jenkins **只读** 查询(写操作必须再走 HITL)
|
|
|
|
|
|
仍默认不做:Skills、Subagent、Plan 模式、语音、Island、其它 MCP 市场。
|
|
|
|
|
|
---
|
|
|
|
|
|
## 相对 Qoze 的优化清单
|
|
|
|
|
|
### 一期就该比它好
|
|
|
|
|
|
| 问题(Qoze) | G-CODE |
|
|
|
|--------------|--------|
|
|
|
| cmd 中文 IME 失败,只推荐 WT | 方案 C,启动探测 + 回退 |
|
|
|
| `execute_command` 强制 UTF-8 | UTF-8 失败再 GBK;默认 PowerShell |
|
|
|
| 无 HITL,`ask_for_user` 已注释 | 写文件 diff + 命令确认 |
|
|
|
| `%APPDATA%\qoze` 与 `~\.qoze` 分裂 | 单一 `get_home_dir()` |
|
|
|
| Windows 超时只 `terminate()` | Job Object 或 `taskkill /T` |
|
|
|
| README 宣传 `/plan`、内置 Playwright,代码没有 | 文档以代码为准 |
|
|
|
| TUI 绑死核心、全局单例、工具反向 import | 分层;UI 只消费 stream |
|
|
|
|
|
|
### 刻意不搬
|
|
|
|
|
|
Island、语音、飞书 dead code、1300 行注释浏览器、十家厂商 if-else、Subagent、Skills。
|
|
|
|
|
|
### 二期再看
|
|
|
|
|
|
上下文压缩、规则文件、git 注入、Java/CI 工具箱。
|
|
|
|
|
|
---
|
|
|
|
|
|
## 明确不要做的事
|
|
|
|
|
|
- 不要把 Qoze 的 CSS、ASCII logo、长 prompt 整段拷进 G-CODE
|
|
|
- 不要在没沙箱的情况下开放 `execute_command`
|
|
|
- 不要把 API Key 写进仓库
|
|
|
- 不要在 cmd 里硬开 TUI 充「功能完整」
|
|
|
- 不要宣传未实现的 Plan / 语音 / Subagent
|
|
|
|
|
|
## 阶段 1 完成定义
|
|
|
|
|
|
当下面全是「是」,才进入阶段 2:
|
|
|
|
|
|
- [ ] `D:\ideaProject\gcode` 能独立 `pip install -e .` 跑起来
|
|
|
- [ ] 四件套工具 + HITL + 会话恢复
|
|
|
- [ ] 路径沙箱与图的 mock 测试存在
|
|
|
- [ ] README 是自己写的架构说明
|
|
|
- [ ] 不看代码能画出数据流
|