我用了一段时间的这种命令行式的 Agent ,发现在我环境上面有个通病,就是经常不知道自己在哪个目录,然后去乱搜文件。 我是在 Linux 服务器上面用的,用的 root 账号登录的,然后打开一个项目/root/git/test
我cd /root/git/test
上面输入
这时候claude code
和codex
这种工具都知道项目目录是/root/git/test
cwd
是/root/git/test
但是
pwd
都是/root
所以经常在编译代码的时候,或者各种用相对路径搜索项目代码的时候,都是从pwd
/root
发起的。
例如正常的编译命令是在项目目录执行go build src/*
,但是 Agent 经常就会直接执行这种命令,但是他是从pwd
/root
执行的,等价于 go build /root/src/*
所以经常会找不到文件,虽然最后他们经过长时间的尝试还是会找到/root/git/test
项目目录,并且发现这个问题,但是非常耗费时间,而且几乎每次新建对话都会出现这个现象。
大家有没有什么好的办法,让他用相对目录的时候永远以 cwd 为基准/root/git/test
,相对目录就直接继承 cwd 去搜索呢。
不知道这个是我的用法问题还是什么,我无论是codex
还是claude code
都必然会出现这个问题
![]() | 1 dxppp 15 小时 22 分钟前 先让 AI tree 一遍呢 |
2 soulflysimple123 13 小时 37 分钟前 先在项目目录执行/init |
![]() | 3 bingfengfeifei OP @soulflysimple123 #2 /init 已经执行了,甚至在 CLAUDE.md 里面明确说了这个路径问题,也还和之前一样。 |