Hermes Agent 用 --worktree 后找不到 .env、.venv 或依赖目录,通常不是 worktree 坏了,而是这些文件被 git 忽略,没有自动复制到新的隔离工作树。解决办法是在仓库根目录添加 .worktreeinclude。
为什么会发生
worktree 的目的就是让多个 Agent 并行改代码时互不干扰。它会基于 Git 仓库创建新的工作树,但被 .gitignore 忽略的文件本来就不属于仓库内容,例如本地密钥、虚拟环境、依赖缓存、私有配置。
推荐写法
在项目根目录创建 .worktreeinclude,把必须复制的本地文件逐行写进去:
.env.venv/node_modules/apps/web/.env.local
安全边界要注意
不是所有密钥都应该复制给并行 Agent。如果某个 worktree 只负责前端样式,就不该给生产数据库密钥。可以准备一个精简版 .env.local,只包含测试环境或只读权限。
另外,worktree 适合并行代码任务,不适合长期身份隔离。长期角色差异要用 profile,代码改动隔离才用 worktree。把这两者分清后,Hermes 多任务协作会稳很多。