Go to file
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
config sandbox: yaml sandbox.dns 显式 --dns 注入(绕开 daemon 上游探测) 2026-05-27 11:28:53 +08:00
core fix(skill_tool): docker backend 下返回容器路径而非 host 绝对路径 2026-05-28 13:37:19 +08:00
db/migrations Stage C 收尾包:资源 yaml + 磁盘配额 + 网络放开 + 容器内源持久化 2026-05-27 08:35:53 +08:00
deploy/sandbox sandbox+infra: Python 3.10→3.12(host+Dockerfile)+ docker PYTHONPATH 加 /sandbox 2026-05-28 11:35:02 +08:00
prompts/system skills+general_v1: ppt 歧义反问 + 路由产物形式歧义先问 2026-05-27 15:36:25 +08:00
scripts skills: 加 pymatgen / stats_ml / plot_pub(建材院无机材料场景) 2026-05-28 11:33:59 +08:00
skills skills: 加 analyze(科学问题拆解 / 引导,PICO + Issue Tree + 5Whys/TRIZ/DoE) 2026-05-28 13:18:54 +08:00
tests fix(skill_tool): docker backend 下返回容器路径而非 host 绝对路径 2026-05-28 13:37:19 +08:00
tools fix(skill_tool): docker backend 下返回容器路径而非 host 绝对路径 2026-05-28 13:37:19 +08:00
web skills: /v1/skills 每次现扫,加/删 skill 目录无需重启 2026-05-27 14:47:47 +08:00
.gitattributes Add .gitattributes: force LF for shell + Dockerfile 2026-05-26 10:45:17 +08:00
.gitignore skills+core(命名约定): task 级宪法文件 <date>-<short_id>-<name>.spec.md + spec_lock → spec 简化 2026-05-20 14:03:21 +08:00
CLAUDE.md ui(media): tool 结果与 assistant 正文同路径 chip/inline 图去重 — Set O(n) + CLAUDE.md 加 "实施前先对方案" 段 2026-05-20 16:33:47 +08:00
DESIGN.md DESIGN §7.5: image 体积 / 多 user 资源 / 后续加包策略 2026-05-28 08:13:39 +08:00
DOCUMENT_SEARCH_API.md feat(skill): documents skill 接内部材料学科知识库(document_search API) 2026-05-21 15:31:21 +08:00
EMBED.md feat(web): embed 模式接受 ?task_id=<uuid> URL 参数自动定位 task 2026-05-22 15:27:19 +08:00
PROGRESS.md fix(skill_tool): docker backend 下返回容器路径而非 host 绝对路径 2026-05-28 13:37:19 +08:00
RUN.md skills: 加 pymatgen / stats_ml / plot_pub(建材院无机材料场景) 2026-05-28 11:33:59 +08:00
SCIENTIFIC_SKILLS.md skills: 加 pymatgen / stats_ml / plot_pub(建材院无机材料场景) 2026-05-28 11:33:59 +08:00
alembic.ini core(§7 B Step 1): Storage 基建 — SQLAlchemy ORM + alembic + db CLI 2026-05-14 10:41:44 +08:00
main.py Stage C Step 5: main.py sandbox check + lifespan fs quota WARN 2026-05-26 16:41:16 +08:00
requirements.txt skills: 加 pymatgen / stats_ml / plot_pub(建材院无机材料场景) 2026-05-28 11:33:59 +08:00