相机捕获 (智能体)
OpenClaw 支持智能体工作流的 相机捕获:- iOS 节点 (通过网关配对): 通过
node.invoke捕获 照片 (jpg) 或 短视频片段 (mp4, 可选音频)。 - Android 节点 (通过网关配对): 通过
node.invoke捕获 照片 (jpg) 或 短视频片段 (mp4, 可选音频)。 - macOS 应用 (通过网关作为节点): 通过
node.invoke捕获 照片 (jpg) 或 短视频片段 (mp4, 可选音频)。
iOS 节点
用户设置 (默认开启)
- iOS 设置标签页 → 相机 (Camera) → 允许相机 (Allow Camera) (
camera.enabled)- 默认: 开 (缺少键视为已启用)。
- 关闭时:
camera.*命令返回CAMERA_DISABLED。
命令 (通过网关 node.invoke)
-
camera.list- 响应载荷:
devices:{ id, name, position, deviceType }数组
- 响应载荷:
-
camera.snap- 参数:
facing:front|back(默认:front)maxWidth: 数字 (可选; iOS 节点默认为1600)quality:0..1(可选; 默认0.9)format: 目前为jpgdelayMs: 数字 (可选; 默认0)deviceId: 字符串 (可选; 来自camera.list)
- 响应载荷:
format: "jpg"base64: "<...>"width,height
- 载荷保护: 照片会被重新压缩以保持 base64 载荷在 5 MB 以下。
- 参数:
-
camera.clip- 参数:
facing:front|back(默认:front)durationMs: 数字 (默认3000, 限制最大为60000)includeAudio: 布尔值 (默认true)format: 目前为mp4deviceId: 字符串 (可选; 来自camera.list)
- 响应载荷:
format: "mp4"base64: "<...>"durationMshasAudio
- 参数:
前台要求
像canvas.* 一样,iOS 节点仅允许在 前台 执行 camera.* 命令。后台调用返回 NODE_BACKGROUND_UNAVAILABLE。
CLI 助手 (临时文件 + MEDIA)
获取附件的最简单方法是通过 CLI 助手,它将解码的媒体写入临时文件并打印MEDIA:<path>。
示例:
nodes camera snap默认为 两个 摄像头,以给智能体提供两种视图。- 输出文件是临时的(在 OS 临时目录中),除非你构建自己的包装器。
Android 节点
用户设置 (默认开启)
- Android 设置页 → 相机 (Camera) → 允许相机 (Allow Camera) (
camera.enabled)- 默认: 开 (缺少键视为已启用)。
- 关闭时:
camera.*命令返回CAMERA_DISABLED。
权限
- Android 需要运行时权限:
camera.snap和camera.clip都需要CAMERA。- 当
includeAudio=true时,camera.clip需要RECORD_AUDIO。
camera.* 请求会失败并返回 *_PERMISSION_REQUIRED 错误。
前台要求
像canvas.* 一样,Android 节点仅允许在 前台 执行 camera.* 命令。后台调用返回 NODE_BACKGROUND_UNAVAILABLE。
载荷保护
照片会被重新压缩以保持 base64 载荷在 5 MB 以下。macOS 应用
用户设置 (默认关闭)
macOS 配套应用暴露了一个复选框:- 设置 (Settings) → 常规 (General) → 允许相机 (Allow Camera) (
openclaw.cameraEnabled)- 默认: 关
- 关闭时: 相机请求返回 “用户禁用了相机 (Camera disabled by user)”。
CLI 助手 (节点调用)
使用主openclaw CLI 在 macOS 节点上调用相机命令。
示例:
openclaw nodes camera snap默认为maxWidth=1600,除非被覆盖。- 在 macOS 上,
camera.snap在捕获前等待delayMs(默认 2000ms) 以便预热/曝光稳定。 - 照片载荷会被重新压缩以保持 base64 在 5 MB 以下。
安全 + 实际限制
- 相机和麦克风访问会触发通常的 OS 权限提示(并需要 Info.plist 中的用法字符串)。
- 视频片段有上限(目前
<= 60s),以避免过大的节点载荷(base64 开销 + 消息限制)。
macOS 屏幕录像 (OS 级)
对于 屏幕 视频(非相机),请使用 macOS 配套应用:- 需要 macOS 屏幕录制 权限 (TCC)。