Appearance
PDF 工具
pdf 工具分析一个或多个 PDF 文档并返回文本。
快速说明:
- 对 Anthropic 和 Google 模型 Provider 使用原生模式。
- 对其他 Provider 使用提取回退模式(先提取文本,必要时再提取页面图像)。
- 支持单个(
pdf)或多个(pdfs)输入,每次调用最多 10 个 PDF。
可用性
只有当 OpenClaw 能为该 Agent 解析到具备 PDF 能力的模型配置时,才会注册此工具:
agents.defaults.pdfModel- 回退到
agents.defaults.imageModel - 根据可用认证,回退到最佳 Provider 默认值
如果无法解析到可用模型,则不暴露 pdf 工具。
输入参数
pdf(string):单个 PDF 路径或 URLpdfs(string[]):多个 PDF 路径或 URL,最多 10 个prompt(string):分析提示词,默认为Analyze this PDF document.pages(string):页面过滤,如1-5或1,3,7-9model(string):可选模型覆盖(provider/model)maxBytesMb(number):每个 PDF 的大小上限(MB)
输入注意:
pdf和pdfs在加载前会合并并去重。- 未提供 PDF 输入时工具报错。
pages解析为基于 1 的页码,去重、排序后限制到配置的最大页数。maxBytesMb默认使用agents.defaults.pdfMaxBytesMb或10。
支持的 PDF 引用格式
- 本地文件路径(包括
~展开) file://URLhttp://和https://URL
引用注意:
- 其他 URI 方案(如
ftp://)会被拒绝,返回unsupported_pdf_reference。 - 在沙箱模式下,远程
http(s)URL 会被拒绝。 - 启用仅工作区文件策略时,允许根路径之外的本地文件路径会被拒绝。
执行模式
原生 Provider 模式
原生模式用于 Provider anthropic 和 google。 工具将原始 PDF 字节直接发送到 Provider API。
原生模式限制:
- 不支持
pages。如果设置了该参数,工具会返回错误。
提取回退模式
回退模式用于非原生 Provider。
流程:
- 从选定页面提取文本(最多
agents.defaults.pdfMaxPages,默认20)。 - 如果提取的文本长度低于
200字符,则将选定页面渲染为 PNG 图像并包含进去。 - 将提取的内容加上提示词发送到选定模型。
回退详情:
- 页面图像提取使用
4,000,000像素预算。 - 如果目标模型不支持图像输入且没有可提取的文本,工具报错。
- 提取回退需要
pdfjs-dist(图像渲染还需要@napi-rs/canvas)。
配置
json5
{
agents: {
defaults: {
pdfModel: {
primary: "anthropic/claude-opus-4-6",
fallbacks: ["openai/gpt-5-mini"],
},
pdfMaxBytesMb: 10,
pdfMaxPages: 20,
},
},
}完整字段说明参见 Configuration Reference。
输出详情
工具在 content[0].text 中返回文本,在 details 中返回结构化元数据。
常见 details 字段:
model:解析后的模型引用(provider/model)native:原生 Provider 模式为true,回退模式为falseattempts:成功前失败的回退尝试次数
路径字段:
- 单 PDF 输入:
details.pdf - 多 PDF 输入:
details.pdfs[],包含pdf条目 - 沙箱路径改写元数据(如适用):
rewrittenFrom
错误行为
- 缺少 PDF 输入:抛出
pdf required: provide a path or URL to a PDF document - PDF 过多:在
details.error = "too_many_pdfs"中返回结构化错误 - 不支持的引用方案:返回
details.error = "unsupported_pdf_reference" - 原生模式设置了
pages:抛出清晰的pages is not supported with native PDF providers错误
示例
单个 PDF:
json
{
"pdf": "/tmp/report.pdf",
"prompt": "Summarize this report in 5 bullets"
}多个 PDF:
json
{
"pdfs": ["/tmp/q1.pdf", "/tmp/q2.pdf"],
"prompt": "Compare risks and timeline changes across both documents"
}指定页码的回退模型:
json
{
"pdf": "https://example.com/report.pdf",
"pages": "1-3,7",
"model": "openai/gpt-5-mini",
"prompt": "Extract only customer-impacting incidents"
}小贴士:让你的龙虾帮你处理 PDF 合同、报告、研究论文,配合好的 prompt 能省下不少手动阅读时间。