乐于分享
好东西不私藏

OpenClaw 实战:AI Agent 截图发给我,为什么我看不到图?

OpenClaw 实战:AI Agent 截图发给我,为什么我看不到图?

一个藏在“/tmp/”里的"安全陷阱",以及如何用一行配置彻底解决它


起因:Agent 截了图,我却啥也看不到

最近一直在用 OpenClaw 把 AI 接入飞书,让 Agent 帮我处理日常任务:写报告、查数据、截桌面截图汇报进展。

这套工作流跑起来相当顺手,直到有一天,我让 Agent 截个屏发给我,它回复说:

截图已完成:/tmp/desktop_2223.png

然后……就没了。飞书里显示的是一个 📎 附件图标,也看不了,效果类似下方截图:

完全不是我想要的"直接预览图"效果。

我以为是网络问题,重试了几次,还是一样。


排查:错误信息藏在哪里?

打开 OpenClaw 日志(~/.openclaw/logs/),发现了这么一段报错:

LocalMediaAccessError: Local media path is not under an allowed directory:/tmp/screen.png

这才是关键。

意思是:OpenClaw 出于安全考虑,限制了媒体文件的访问目录白名单。  等目录不在白名单内,所以插件直接拒绝发送这个文件。

以前的版本是直接可以返回图片的,现在安全等级提升了。

截图工具默认把图片存到了 /tmp/(这是多数 macOS 截图工具的默认行为),但 OpenClaw 的媒体管道只信任它自己的工作区(workspace)目录。


理解根因:OpenClaw workspace 是什么?

OpenClaw 有一个专属的"工作区"概念,默认位置在:

~/.openclaw/workspace/

这是 Agent 的"家",所有文件操作、上下文引用、媒体文件,都应该落在这里。

从安全角度来说,这个设计是合理的:不能让 Agent 随意读写系统任意路径,尤其是发送本地文件到外部服务时,必须有明确的边界。

但问题来了:截图工具的默认保存路径是 /tmp/,完全在白名单之外。Agent 截图成功了,文件也在磁盘上,但就是"发不出去"。


解决方案:修改 TOOLS.md ,让截图保存到工作区

OpenClaw 支持通过 TOOLS.md 文件来定制 Agent 使用工具的行为。这个文件就在工作区里,Agent 每次启动时都会加载它作为工具使用规范。

第一步:创建截图专用目录

mkdir -p ~/.openclaw/workspace/screenshots

第二步:修改 ,告诉 Agent 截图要保存到工作区

打开 ~/.openclaw/workspace/TOOLS.md(没有就新建),加入以下类似内容:

## 截图工具使用规范使用截图工具时,必须将图片保存到工作区目录,不允许保存到 /tmp/ 或其他系统临时目录。正确的截图保存路径格式:- ~/.openclaw/workspace/screenshots/screenshot_<timestamp>.png- ~/.openclaw/workspace/output/<filename>.png发送图片时,使用相对于工作区的路径:- MEDIA:./screenshots/screenshot_<timestamp>.png- MEDIA:./output/<filename>.png严禁使用以下路径发送媒体文件:- /tmp/ 下的任何文件- 不在 ~/.openclaw/workspace/ 下的绝对路径

第三步:重启网关,让配置生效

# macOS 用户:通过 OpenClaw 菜单栏 App 重启网关# 或者:pkill -f openclaw-gatewayopenclaw gateway run
当然,你也可以直接通过飞书“下指令”完成这个设置(依赖模型能力):

效果验证

改完之后,让 Agent 重新截图:

飞书里直接显示预览图,完美!🎉

接下来的使用场景,你就可以发挥自己的想象了!这里就举一个扫码登录的例子:



这个问题的本质是什么?

这个问题背后有一个通用模式,不只是截图,凡是 Agent 生成文件后需要"发出去"的场景,都要注意

  • • 生成的 PDF 报告 → 存在工作区
  • • 数据分析的图表 → 存在工作区
  • • 音视频文件 → 存在工作区

一句话总结:文件要落在工作区,引用要用相对路径。


相关资源

  • • OpenClaw 官方文档 · Agent Workspace:https://docs.openclaw.ai/gateway/agent-workspace
  • • 本文对应的 GitHub Issue:https://github.com/openclaw/openclaw/issues/22608
  • • 飞书插件权限配置参考(im:resource 权限也必须开启)

如果这篇文章帮到了你,欢迎转发给同样在折腾 OpenClaw 的朋友。有问题也可以在 评论区交流 👇