我是一个月前才接触openclaw的,因为我有一台Synology NAS,所以就把openclaw安装在NAS上的docker(Container Manager)上。安装很顺利,但我在使用agent的时候碰到一个奇怪的问题,agent读取的工作目录似乎不是我挂载的物理目录:
1、openclaw的挂载目录为:
- /volume1/docker/openclaw/config:/home/node/.openclaw
自然的,agent的工作目录就是
- /volume1/docker/openclaw/config/workspace:/home/node/.openclaw/worksapce
2、我创建了一个叫"urchin"的agent,发现该agent的工作目录与运行时目录时不一致的
2.1 宿主目录内容与容器终端机目录内容一致
我检查过,宿主机目录(工作目录/urchin)下的文件(SOUL.md 、USER.md等等) 与容器终端机对应工作目录
下的文件和文件内容都是一致的。
2.2 urchin运行时的目录与工作目录内容不一致
当我通过The Gateway dashboard的UI界面与agent“urchin”聊天时,我发现它虽然声称自己的工作目录是
/home/node/.openclaw/worksapce/urchin
,但执行
/exec ls -la -i
看见的文件完全不是我在宿主目录创建那些。比如:
(1) “urchin”向我展示的同名md文件大小、日期、inode与宿主目录文件不一致,我在宿主目录保存的其他文件(比如a.txt),在urchin的目录中没有;
(2) 在对话中,我让urchin生成一个b.txt的文件,它声称它生成了,并在我执行
"exec ls -la"
的时候展示了出来。但在宿主目录是没有这个文件的,容器终端机目录下也没有;
(3) 在对话中,它声称记住了我的名字"Sean",并告诉我它在USER.md增加了
“# User Profile
- Name: Sean”。
实际我的宿主目录文件是没变化的。
3、尽管我关机或重启后,宿主机物理目录的内容一点也没变化,但重启聊天,agent能记住之前的操作
(1)我的物理文件USER.md没有它声称加入的代码,但仍然记住我的名字;
(2)我的物理目录里面没有它声称生成的文件b.txt,但它自己ls展示的文件清单却有。
所以我的疑问是,这是我的docker被卡在某个只读层了吗?或者openclaw就是这么运作的:workspace只保存用户自己编辑的内容,所有后期变化它都自己藏起来——毕竟虽然我看不到文件的改变,但它还是在某个地方记录了所有的变化。