OpenClaw接入本地工具需启用--enable-local-execution参数,挂载宿主机二进制文件(如/usr/bin、/usr/local/bin或单个可执行文件),配置沙盒PATH环境变量,并通过host.docker.internal或端口映射访问本地HTTP服务,最后在tools.yaml中注册脚本并重启服务。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw接入本地工具需要让AI代理能直接调用你本机安装的命令行程序、脚本或服务,比如git、curl、python脚本、本地API服务等。这一步不做,OpenClaw就只能在沙盒里空转,无法真正修改你的代码库、提交变更或触发CI流程。
确认OpenClaw运行模式支持本地工具调用
OpenClaw默认使用Docker沙盒隔离执行环境,【沙盒内默认无法访问宿主机上的可执行文件】。必须显式启用“本地工具桥接”能力,否则所有本地命令都会报错“command not found”或权限拒绝。
检查你启动OpenClaw时是否已传入 --enable-local-execution 参数。若未启用,后续挂载和配置全部无效。
将宿主机二进制文件挂载进沙盒
方法一:按路径批量挂载常用工具
在启动OpenClaw容器时,用 -v 将宿主机工具目录映射到沙盒内固定路径:
docker run -v /usr/bin:/usr/local/bin:ro -v /usr/local/bin:/usr/local/bin:ro ... openclaw/app:latest
注意:【/usr/bin 和 /usr/local/bin 必须都挂载,否则像 git、curl、jq 等常见工具可能缺失】。只挂一个目录会导致部分命令找不到。
方法二:精确挂载单个可执行文件(推荐用于安全敏感场景)
例如只允许调用 git 和自定义脚本 /opt/mytools/deploy.sh:
docker run -v /usr/bin/git:/usr/bin/git:ro -v /opt/mytools/deploy.sh:/usr/local/bin/deploy:ro ...
挂载后需在沙盒内赋予执行权限:chmod +x /usr/local/bin/deploy,否则OpenClaw调用会失败。
配置沙盒内PATH环境变量
步骤一:确认沙盒默认PATH不包含你挂载的路径
进入正在运行的OpenClaw容器:docker exec -it openclaw-app sh,执行 echo $PATH。通常输出为 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin。
步骤二:扩展PATH使挂载工具生效
启动容器时通过 -e PATH="/usr/local/bin:/usr/bin:/bin" 覆盖默认值;若已运行,需修改OpenClaw配置文件中的 sandbox_env.PATH 字段,指向含挂载路径的完整列表。
步骤三:验证工具可用性
在OpenClaw Web UI中新建会话,输入指令 which git && git --version。成功返回版本号即表示挂载与PATH配置均生效。
让OpenClaw调用本地HTTP服务(如Ollama、FastAPI)
方法一:通过 host.docker.internal 访问宿主机服务
启动容器时必须添加 --add-host host.docker.internal:host-gateway。否则沙盒内无法解析该域名,所有 http://host.docker.internal:11434 请求都会超时。
方法二:绑定宿主机端口并直连 localhost
仅适用于Linux/macOS;Windows WSL2下需额外配置iptables规则。启动命令中加 -p 11434:11434 并确保宿主机服务监听 0.0.0.0:11434 而非 127.0.0.1:11434,否则沙盒无法连接。
方法三:挂载宿主机网络命名空间(高风险,仅调试用)
--network host 可让沙盒直接复用宿主机网络栈,但会绕过Docker网络隔离,【生产环境严禁使用】。
授权OpenClaw执行特定脚本或命令
第一步:准备脚本并设为可执行
将你要调用的Shell脚本(如 /home/user/scripts/push-to-github.sh)设置权限:chmod 755 /home/user/scripts/push-to-github.sh。
第二步:挂载脚本并注册为工具
在OpenClaw的 tools.yaml 配置中添加:
- name: push_to_github
description: Push current branch to origin main
command: /usr/local/bin/push-to-github.sh
第三步:重启OpenClaw服务使配置生效
修改配置后必须重启容器,热重载不支持工具注册变更。


















