# 03 学习与改写计划 总原则:**先能讲清楚,再能写出来,最后才加功能。** 不要边读边把整个 Qoze 复制到新仓库。 建议节奏:每天 1~2 小时,大约 8~10 周。可以按周压缩,但不要跳过“过关标准”。 --- ## 阶段 0|建立实验场(0.5 天) - 继续用现有环境跑 Qoze:`deepseek-v4-flash` - 自己下 5 个任务观察行为,并记笔记: 1. “当前目录有哪些 py 文件” 2. “读 README 前 80 行并总结” 3. “用 grep 找 init_agent 在哪” 4. “把某某函数加一行注释”(看它怎么改文件) 5. “执行 `python --version`” - 每次记下:调了哪些工具、调了几轮、哪一步走歪了 产出:本目录下自建 `笔记/观察日志.md`(自己写,不要求一次完美) 过关:能口述一轮对话的节点顺序 --- ## 阶段 1|精读心脏(第 1~2 周) 精读顺序(严格按此,不要先扎进 TUI): 1. `enums.py` + `config_manager.py` + `model_initializer.py`(知道模型怎么来的) 2. `qoze_code_agent.py` 全文,重点 `MessagesState` 到 `init_agent` 3. `utils/system_prompt.py` 4. `tools/file_tools.py` + `tools/execute_command_tool.py` 5. `qoze_tui.py` 的 `process_user_input`(只看命令分发和 astream 入口) 配套练习:完成知识点地图里的练习 1~4。 过关标准: - 画出主图 mermaid,不看文档 - 解释 `operator.add`、`thread_id`、缺失 ToolMessage 各是什么问题 - 能指出 README 里有哪些功能这份代码其实没有 --- ## 阶段 2|精读外壳(第 3 周) 1. `tui_components/messages/stream_handler.py` 2. `thinking_widget.py` / `tool_status_panel.py` 3. `skills/skill_manager.py` + `tools/skill_tools.py` 4. `qoze_mcp/` + `tools/mcp_tools.py` 5. `tools/subagent_tool.py` 的 `_build_subagent` 过关标准:用三句话区分 Skill / MCP / Subagent 此阶段**仍不开始大改自己的项目结构**,只做小实验。 --- ## 阶段 3|最小复刻(第 4~6 周)★ 真正开始“自己的项目” 新仓库建议路径(示例):`D:\myProgram\Learning\ai-coding改写\my-agent` 新名字自己定,不要叫 Qoze。 只做这些: ```text 用户 CLI 输入 → OpenAI 兼容 LLM(你的 Agicto + DeepSeek) → LangGraph ReAct → 工具:read_file / replace_in_file / list_dir / execute_command(带确认) → 终端打印思考摘要 + 工具日志 + 最终回答 → SQLite 保存会话 ``` 详细文件清单见 `04-最小复刻清单.md`。 验收: - 在任意代码目录启动,能完成“读文件 → 改一处 → 跑命令看结果” - 重启进程,同一 session 还能接着聊 - 危险命令会停下来问你 - 你能 15 分钟给别人讲完架构 --- ## 阶段 4|补齐体验(第 7~8 周) 按需加,**加一个就停下来用一周**: 1. 流式输出(先 Rich Live,再考虑 Textual) 2. `/clear` `/help` 斜杠命令 3. `.myagent/rules/` 规则注入 4. 一个 Skill(例如 `java-style`) 5. git status 进动态上下文 不要同时开工 MCP 和 Subagent。 --- ## 阶段 5|差异化(第 9 周以后) 只从 `05-差异化增强方向.md` 里挑 **1 个主特色 + 1 个小增强**。 结合你的日常,优先候选: - 主特色:公司 GitLab / Jenkins 只读查询工具(列 MR、看构建状态) - 小增强:Windows 终端编码和 Java/Maven 项目分析 做完主特色再考虑 Subagent、MCP 浏览器。 --- ## 每周固定动作 | 星期 | 做什么 | |------|--------| | 前 4 天 | 精读或写代码,每天结束写 10 行笔记 | | 第 5 天 | 给自己做一次“口述架构”或给 Agent 下真实任务 | | 周末 | 对照过关标准打勾;没过的下周重复,不硬开下一阶段 | ## 明确不要做的事 - 不要一上来复刻整个 TUI - 不要把 10 家模型供应商抄进自己项目 - 不要在没路径沙箱的情况下开放 `execute_command` - 不要把 API Key 写进新仓库 - 不要一边复制 Qoze 文件一边改名,那叫换皮,学不到东西 ## 和源码许可证 QozeCode 是 Apache 2.0。若大量复制原文件,需要保留版权头和 NOTICE。 推荐路径:看懂后**自己重写**同构实现,只借鉴状态图和分层,不复制 UI 文案与品牌。