fix(sandbox): docker 下 system prompt / SKILL 文档统一用容器路径
docker backend 下 shell/run_python/fs 工具全在容器里跑(<workspace>/users/<uid>
bind 到 /workspace),但喂给 LLM 的路径多处仍是宿主绝对路径(容器内不存在),
agent 据此 find 全空、瞎转到 pwd 才发现真身在 /workspace/<wd>。
- core/agent_builder.py::_build_system_prompt:docker 下 task_dir + 「宪法」
glob 范例换成容器路径 /workspace/<wd>,去掉容器里无意义的 cwd 行(cwd 恒等
task_dir);host 不变。修法同 LoadSkillTool 的 container_skills_dir 改写。
- skills 文档同类宿主路径残留清扫:patent 跨 skill 调 proposal 脚本由
<repo_root>/...(硬编码 D:/projects/zcbot)改兄弟相对 <skill_dir>/../proposal/...;
research fetch_pdf 范例硬编码 D:/... 改 <task_dir> 占位;patent/proposal/ppt
的 <task_dir> 举例的废弃旧布局 workspace/tasks/<task_id> 改 host/docker 双形态说明。
- ppt 图标缓存写进只读挂载修复(方案 A):种子图标库 <skill_dir>/assets/icons/
降为只读(glob 读),fetch_icon.py 新拉图标一律 -o <task_dir>/assets/icons/,
读路径改种子库 + 本 task 两处都 glob。docker 下 skills 是 :ro bind,旧写法必败;
host 下还顺带污染仓库工作树。脚本已 out.parent.mkdir,无需改。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>