OpenClaw 图片与文档处理完全指南
OpenClaw 支持分析图片和 PDF 文档,结合视觉模型和文档解析能力,可以处理各种非结构化数据。本文详细介绍 image 和 pdf 工具的使用方法和实战案例。
一、图片处理基础
工具概述
image 工具使用视觉模型分析图片,支持:
- 单张图片分析
- 多张图片批量分析(最多 20 张)
- 各种格式:jpg, png, gif, webp
- 本地文件和网络 URL
基本用法
javascript
// 分析单张图片
image(
image="/path/to/image.jpg",
prompt="描述这张图片的内容"
)
// 分析多张图片
image(
images=["/path/img1.jpg", "/path/img2.jpg", "/path/img3.jpg"],
prompt="对比这三张图片的异同",
maxImages=10
)
// 分析网络图片
image(
image="https://example.com/chart.png",
prompt="解释这个图表展示的数据趋势"
)二、实战案例 1:数据图表分析
场景
分析销售报表中的图表,提取关键数据并生成洞察。
完整流程
javascript
// 1. 分析销售趋势图
trend_analysis = image(
image="./reports/sales-trend-2026.png",
prompt=`
请详细分析这张销售趋势图:
1. 识别图表类型(折线图/柱状图/饼图等)
2. 提取坐标轴信息和单位
3. 描述整体趋势(上升/下降/波动)
4. 指出关键数据点(最高点、最低点、转折点)
5. 分析可能的原因和洞察
请以结构化格式输出:
- 图表类型:
- 时间范围:
- 数据指标:
- 关键趋势:
- 洞察建议:
`
)
// 2. 分析区域分布图
region_analysis = image(
image="./reports/region-map-2026.png",
prompt="分析各区域销售表现,找出表现最好和最差的区域"
)
// 3. 生成综合报告
report = `
📊 销售数据可视化分析
【趋势分析】
${trend_analysis}
【区域分析】
${region_analysis}
【综合建议】
基于以上分析,建议...
`
write(path="./sales-analysis-report.md", content=report)输出示例
📊 销售数据可视化分析
【趋势分析】
- 图表类型:折线图
- 时间范围:2026 年 1 月 -3 月
- 数据指标:月度销售额(万元)
- 关键趋势:
* 1 月:1200 万(年初低点)
* 2 月:1850 万(春节促销高峰)
* 3 月:1650 万(回落至正常水平)
- 洞察建议:
* 促销活动效果显著,建议保持
* 需关注活动后销售回落问题
【区域分析】
- 表现最佳:华东区(占比 35%)
- 表现最差:西北区(占比 8%)
- 建议加强西北区市场投入三、实战案例 2:OCR 文字识别
场景
从截图、扫描件中提取文字内容。
完整流程
javascript
// 1. 识别文档截图中的文字
ocr_result = image(
image="./documents/contract-scan.jpg",
prompt=`
请识别这张图片中的所有文字内容:
要求:
1. 保持原文的段落结构
2. 准确识别数字、日期等关键信息
3. 不确定的字符用 [?] 标注
4. 忽略页眉页脚和页码
请直接输出识别结果,不需要额外说明。
`
)
// 2. 提取关键信息
info_extraction = image(
image="./documents/contract-scan.jpg",
prompt=`
从这份合同中提取以下关键信息:
- 合同编号:
- 甲方名称:
- 乙方名称:
- 合同金额:
- 签署日期:
- 有效期:
- 关键条款摘要:
以 JSON 格式输出。
`
)
// 3. 保存结果
write(
path="./contract-extracted-info.json",
content=info_extraction
)注意事项
- 图片质量:确保图片清晰,分辨率不低于 300 DPI
- 文字方向:倾斜的文字识别率会降低
- 复杂背景:背景复杂时识别准确率下降
- 手写文字:手写体识别效果有限
四、实战案例 3:界面截图审查
场景
审查 UI 设计稿或产品截图,提供改进建议。
完整流程
javascript
// 1. 整体评估
overall_review = image(
image="./designs/homepage-v2.png",
prompt=`
请从用户体验角度评估这个网页设计:
1. 视觉层次是否清晰?
2. 色彩搭配是否和谐?
3. 信息布局是否合理?
4. 是否有明显的可用性问题?
5. 与主流设计风格的一致性如何?
给出整体评分(1-10 分)和主要优缺点。
`
)
// 2. 细节检查
detail_check = image(
image="./designs/homepage-v2.png",
prompt=`
仔细检查这个设计的细节:
1. 文字是否清晰可读?
2. 按钮和链接是否明显?
3. 表单输入是否友好?
4. 图标是否表意清晰?
5. 是否有拼写或语法错误?
列出所有发现的问题。
`
)
// 3. 无障碍检查
accessibility_check = image(
image="./designs/homepage-v2.png",
prompt=`
从无障碍设计角度检查:
1. 色彩对比度是否足够?
2. 文字大小是否合适?
3. 是否考虑色盲用户?
4. 交互元素是否足够大?
指出需要改进的地方。
`
)五、PDF 文档处理
工具概述
pdf 工具支持:
- 单个或多个 PDF 分析(最多 10 个)
- 指定页码范围
- 文本提取和分析
- 图表和图像识别
基本用法
javascript
// 分析单个 PDF
pdf(
pdf="/path/to/document.pdf",
prompt="总结这份文档的主要内容",
pages="1-10" // 可选:指定页码范围
)
// 分析多个 PDF
pdf(
pdfs=["doc1.pdf", "doc2.pdf", "doc3.pdf"],
prompt="对比这三份文档的异同"
)
// 提取特定页面
pdf(
pdf="/path/to/report.pdf",
prompt="提取第 5 页的表格数据",
pages="5"
)六、实战案例 4:技术文档总结
场景
快速理解长篇技术文档的核心内容。
完整流程
javascript
// 1. 整体概览
overview = pdf(
pdf="./docs/api-reference-v3.pdf",
prompt=`
请提供这份 API 文档的整体概览:
1. 文档结构和章节划分
2. 核心功能模块有哪些
3. 主要的数据类型和接口
4. 使用场景和最佳实践
输出结构化的目录摘要。
`,
pages="1-20" // 先看目录和简介
)
// 2. 深入理解关键章节
auth_details = pdf(
pdf="./docs/api-reference-v3.pdf",
prompt=`
详细解释认证授权部分:
1. 支持的认证方式
2. 每种方式的实现步骤
3. 安全注意事项
4. 常见错误和解决方案
提供代码示例。
`,
pages="25-40"
)
// 3. 生成学习笔记
study_notes = `
# API 文档学习笔记
## 文档概览
${overview}
## 认证授权详解
${auth_details}
## 待实践内容
- [ ] 完成 OAuth2 配置
- [ ] 测试 API 限流
- [ ] 实现错误处理
`
write(path="./api-study-notes.md", content=study_notes)七、实战案例 5:多文档对比分析
场景
对比多个版本文档,找出变化和差异。
完整流程
javascript
// 对比两个版本的白皮书
comparison = pdf(
pdfs=[
"./whitepaper/whitepaper-v1.pdf",
"./whitepaper/whitepaper-v2.pdf"
],
prompt=`
请对比这两个版本的白皮书:
1. 整体结构有什么变化?
2. 新增或删除了哪些章节?
3. 核心观点有什么更新?
4. 数据和案例有什么变化?
5. 结论和建议有什么调整?
以对比表格形式输出主要差异。
`
)
// 生成变更日志
changelog = pdf(
pdfs=["./whitepaper/whitepaper-v1.pdf", "./whitepaper/whitepaper-v2.pdf"],
prompt=`
基于两个版本的对比,生成变更日志:
格式:
## [v2.0] - 2026-03-19
### 新增
- ...
### 变更
- ...
### 删除
- ...
### 修复
- ...
`
)
write(path="./whitepaper-changelog.md", content=changelog)八、高级技巧
1. 组合使用图片和 PDF
javascript
// 从 PDF 中提取图表,然后详细分析
pdf_result = pdf(
pdf="./report.pdf",
prompt="列出文档中所有图表的标题和页码"
)
// 根据页码截图(需要额外工具)
// 然后分析具体图表
chart_analysis = image(
image="./extracted/chart-page-15.png",
prompt="详细分析这个图表..."
)2. 批量处理
javascript
// 批量分析多个产品截图
const products = ["product-a.png", "product-b.png", "product-c.png"]
for (const product of products) {
const analysis = image(
image=`./products/${product}`,
prompt="分析这个产品的外观设计特点"
)
write(
path=`./analysis/${product.replace('.png', '-analysis.md')}`,
content=analysis
)
}3. 图像生成后处理
javascript
// 如果使用 DALL-E 等生成图片
// 可以再用 image 工具分析生成的结果
generated_image = "path/to/generated-image.png"
quality_check = image(
image=generated_image,
prompt=`
评估这张生成图片的质量:
1. 是否符合提示词要求
2. 图像清晰度和细节
3. 色彩和构图
4. 是否有明显的生成瑕疵
给出改进建议。
`
)九、最佳实践
1. 提示词编写技巧
javascript
// ❌ 模糊的提示
image(image="chart.png", prompt="这是什么?")
// ✅ 具体的提示
image(
image="chart.png",
prompt=`
请分析这张图表:
1. 图表类型和坐标轴含义
2. 数据趋势和关键数值
3. 异常点和可能原因
4. 业务洞察和建议
`
)2. 文件管理
javascript
// 组织好输入输出文件
// 输入
./input/
├── images/
│ ├── screenshots/
│ └── diagrams/
└── documents/
├── pdfs/
└── scans/
// 输出
./output/
├── analysis/
├── extractions/
└── reports/3. 错误处理
javascript
try {
result = image(image="./file.png", prompt="分析...")
} catch (e) {
// 检查文件是否存在
// 检查文件格式是否支持
// 检查文件大小是否超限
console.log(`图片分析失败:${e.message}`)
}十、常见问题
Q: 支持哪些图片格式?
A: jpg, png, gif, webp。推荐用 png 获得最佳质量。
Q: 图片大小有限制吗?
A: 默认限制 20MB,可通过 maxBytesMb 参数调整。
Q: PDF 分析准确吗?
A: 取决于 PDF 类型:
- 文本型 PDF:准确率高
- 扫描版 PDF:依赖 OCR,可能有误差
- 加密 PDF:需要先解密
Q: 可以分析视频吗?
A: 不直接支持,但可以:
- 提取视频帧为图片
- 分析关键帧
- 整合分析结果
十一、总结
图片和文档处理能力让 AI 助理可以:
| 能力 | 应用场景 |
|---|---|
| 图表分析 | 数据报告、业务洞察 |
| OCR 识别 | 文档数字化、信息提取 |
| 界面审查 | UI/UX 评估、质量检查 |
| PDF 分析 | 文档总结、对比研究 |
掌握这些工具,你的 AI 助理可以处理更丰富的信息源。
相关资源: