You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
G-Code/项目资料/开发方案/03-分期实施与优化清单.md

4.2 KiB

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 验收表。
核心图仍可在无 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 是自己写的架构说明
  • 不看代码能画出数据流