autogen-agentchat 0.4.7 在 Windows 上配 DockerCommandLineCodeExecutor(work_dir="./coding"),第一个任务就报 Error: docker command not found,本机装了 Docker Desktop,命令行里敲 docker ps 却能正常输出。
一开始怀疑是「executor 里写死的镜像名本地不存在,拉取失败被当成命令缺失」,查了一圈,方向不对。
真正麻烦的地方在于,几个原因的现象几乎一样。服务是从 IDE 拉起的,PATH 里没有 docker 的安装目录。也可能是Docker Desktop 的 WSL2 后端还没启动完成。
另外,容器内工作目录挂载路径与 Windows 盘符不兼容。
上来先确认当前 shell 能否找到 docker
Get-Command docker | Select-Object Source
再往下启动 Docker 并等到守护进程就绪
docker version --format '{{.Server.Version}}'
接着换成已拉好的镜像并指定绝对工作目录
python -c "from autogen_ext.code_executors.docker import DockerCommandLineCodeExecutor;print(DockerCommandLineCodeExecutor(work_dir=r'C:/coding', image='python:3.12-slim'))"
没有 Docker 时退到本地执行器跑通流程
python -c "from autogen_ext.code_executors.local import LocalCommandLineCodeExecutor;print(LocalCommandLineCodeExecutor())"
这类改动我都写进变更记录,过两周再出问题时能对上号。
改完先别撤,确认这几项。executor 启动后能执行 print(1+1) 并返回 2,任务里生成的代码落到 work_dir,日志不再出现 command not found。
容易忽略的是,Windows 上 IDE 继承的 PATH 经常和终端不一致,遇到命令找不到先在同一个进程环境里验证,比反复重装 Docker 有效。报错文案容易误导,真正的原因往往在相邻那一层的日志里。
