zcbot/tools
caoqianming 4b7d7e6f77 fix(skill_tool): docker backend 下返回容器路径而非 host 绝对路径
实测部署 dogfood analyze skill 时,LLM load_skill 拿到 host 绝对路径
`/home/lighthouse/zcbot/skills/analyze`,照 SKILL.md 拼 references 路径调 read
→ 容器内 namespace 没这条路径(容器只有 /sandbox/skills:ro 这 mount),抓瞎。

修法:LoadSkillTool 加 container_skills_dir 构造参数;agent_builder 在装它时
判 ZCBOT_SANDBOX_BACKEND==docker → 传 "/sandbox/skills",其它 → 保持原 host
绝对路径(开发期 host backend 不破)。

结构性收益:proposal/ppt/research/coding/pymatgen/stats_ml/plot_pub 全部 skill
references 在 docker backend 下自动 work,不用一个个改 SKILL.md 教用容器路径。

tests/test_load_skill.py 4 case 锁:host 走 host 路径 / docker 走 /sandbox /
末尾斜杠拼接不双斜杠 / 未知 skill 走原路径。docker executor 15/15 回归 PASS。

部署后:git pull + 重启 agent 进程让新代码生效(SkillRegistry 每请求重建但
LoadSkillTool 实例化在 build_agent 里,需要新进程)。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 13:37:19 +08:00
..
__init__.py Initial import: zcbot personal task agent 2026-05-06 11:02:59 +08:00
base.py fs tools 输出 user_root-relative 路径 + dev SPA chip 锚点修正 + assistant 正文也挂 chip 2026-05-20 14:22:20 +08:00
fs.py fs tools 输出 user_root-relative 路径 + dev SPA chip 锚点修正 + assistant 正文也挂 chip 2026-05-20 14:22:20 +08:00
run_python.py feat(skill): paper_server → research skill (search / get_paper / fetch_pdf) 2026-05-21 13:00:37 +08:00
seedance.py feat(quotas): 媒体生成每账号每日上限 (默 20 图 / 5 视频, yaml 可配) 2026-05-22 15:21:39 +08:00
seedream.py feat(quotas): 媒体生成每账号每日上限 (默 20 图 / 5 视频, yaml 可配) 2026-05-22 15:21:39 +08:00
shell.py 修三处 v3 遗留: Iconify 不触发 / mkdir -p 误创目录 / 平台无知 2026-05-06 13:12:17 +08:00
skill_tool.py fix(skill_tool): docker backend 下返回容器路径而非 host 绝对路径 2026-05-28 13:37:19 +08:00
web_fetch.py Add web_search and web_fetch tools via Bocha AI search API 2026-05-25 11:37:33 +08:00
web_search.py Add web_search and web_fetch tools via Bocha AI search API 2026-05-25 11:37:33 +08:00