zcbot/PROGRESS.md

3.9 KiB

实施进度

配合 DESIGN.md 阅读。本文件只记录 phase 状态、决策偏差、文件量、下一步。

最后更新:2026-05-06(Phase 4 + Phase 6 task/state.json 落地;Phase 5 evals 决定不做)


状态

Phase 标题 状态 备注
1 最小可用骨架 全部验收点过
2 Skill 系统 + 三个 skill Anthropic 格式;coding/ppt/proposal
3 Hybrid 范式 (run_python) subprocess + 敏感 env 过滤
4 演化性能力 🟡 Model Profile + Capability Probing ;版本化 prompts 未做
5 Eval Suite ⏸ 不做 个人工具用 dogfooding 替代,probe 覆盖健康检查
6 长任务工程化 🟡 task + state.json + 中断恢复 ;context 压缩、双层记忆未做
7 打磨 Docker 沙盒 / 更多 skill / Web UI

已完成关键能力

Phase 1-3(2026 早期):骨架 + skill 系统 + run_python。所有工具基目录是用户当前 cwd(不是 zcbot 仓库本身),agent 操作的是用户项目。tools/fs.pyedit 用 CoreCoder 风格唯一匹配。tools/run_python.py 过滤 *API_KEY *TOKEN *SECRET *PASSWORD *PRIVATE_KEY 环境变量。三个 skill 中 ppt/ 最完整(v3:商务红硬约束 + apply_brand 品牌条 + Iconify 图标库 + scripts:fetch_icon / quality_check / source_to_md / render_icon)。

Phase 4(2026-05-06):

  • core/probe.py + cli.py probe —— basic_chat / parallel_tools / thinking_mode / long_context 四项探测
  • 真实 probe 跑通,flash mismatch 发现:yaml parallel_tools: false 但实测能并发(暂不自动改 yaml,需更多场景观察)
  • pro 全 ok

Phase 6 部分(2026-05-06):

  • core/task.py + workspace/tasks/<id>/{state.json, messages.json} —— TaskState 跟 mode/desc/status/tokens/timestamps;build_agent 返 5 元组;sync_task_tokens 每轮后写回
  • CLI 新增 tasks 子命令 + REPL /status /done /abandon /desc;chat--mode --desc 选项
  • 移除 legacy workspace/sessions/ 兼容(单一布局)

关键决策与偏差

决策 与设计差异
工具基目录 用户当前 cwd 设计未明说;agent 该操作用户项目
Workspace 用途 tasks/<id>/{state.json, messages.json} memory/ 待 Phase 6 双层记忆
Eval Suite 不做 设计为团队场景;个人工具 dogfooding 替代
版本化 prompt 直接 general_v1.md,无 active.md 软链接 Windows 软链接麻烦,真要切版本时再做
run_python 沙盒 subprocess + env 过滤 阶段 1 设计如此;Docker 待 Phase 7

文件清单(代码量)

core/capabilities.py        71
core/llm.py                 89
core/loop.py                99
core/probe.py              243   ← Phase 4
core/session.py             77
core/skills.py              81
core/task.py                63   ← Phase 6
tools/base.py               34
tools/fs.py                182
tools/shell.py              63
tools/run_python.py         84
tools/skill_tool.py         45
main.py                    175   ← Phase 6 task 装配
cli.py                     265   ← +probe / +tasks 子命令
─────────────────────────────────
Python 合计              ~1571 行

加上 skills/ppt 下的脚本(~600 行)、SKILL.md / references / config / prompts,总仓库约 2500 行可读源码。


下一步候选(性价比排序)

  1. Phase 6 双层记忆(~半天)—— workspace/memory/core.md 注 prompt,extended/<topic>.md 按需读
  2. Phase 6 context 三层压缩(~1 天)—— 兜底用,V4 长上下文一般用不到
  3. 小修打磨(~半小时)—— Session.save() 改原子写(tmp + rename),防 surrogate 等异常 truncate
  4. Phase 7 Docker 沙盒(~1 天)—— 替换 subprocess,run_python 安全升级
  5. Phase 7 更多 skill / 模型档案(持续)