Tools
PDF ツール
pdf は 1 つ以上の PDF ドキュメントを解析し、テキストを返します。Anthropic および Google のモデルではネイティブのドキュメント入力を使用し、その他のすべてのプロバイダーではテキスト/画像抽出にフォールバックします。
利用可能性
このツールは、OpenClaw がエージェント用の PDF 対応モデルを解決できる場合にのみ登録されます。解決順序は次のとおりです。
agents.defaults.pdfModel(明示的なプライマリ/フォールバック)agents.defaults.imageModel(明示的なプライマリ/フォールバック)- プロバイダーがネイティブ PDF 入力(Anthropic、Google)をサポートしているか、ビジョンモデルがすでに設定されている場合は、エージェントで解決されたセッション/デフォルトモデル
- 使用可能な認証を持つ、自動検出された画像/ビジョン対応プロバイダー(ネイティブ PDF 対応プロバイダーを優先)
各フォールバック候補は使用前に認証チェックされるため、設定済みの provider/model が候補として扱われるのは、OpenClaw がそのエージェントについて当該プロバイダーで認証できる場合のみです。使用可能なモデルを解決できない場合、pdf ツールは公開されません。
入力リファレンス
pdfstring1 つの PDF パスまたは URL。
pdfsstring[]複数の PDF パスまたは URL。合計で最大 10 個。
promptstringdefault: Analyze this PDF document.解析プロンプト。
pagesstring1-5 や 1,3,7-9 のようなページフィルター。ネイティブプロバイダーモードではサポートされません。
passwordstring暗号化された PDF のパスワード。リクエスト内のすべての PDF に適用され、抽出フォールバックモードでのみ使用されます。
modelstringprovider/model 形式の任意のモデルオーバーライド。
maxBytesMbnumberPDF ごとのサイズ上限(MB)。デフォルトは agents.defaults.pdfMaxMb、未設定の場合は 10。
注記:
pdfとpdfsは、読み込み前に統合および重複排除されます。少なくとも一方が必要です。pagesは 1 始まりのページ番号として解析され、重複排除、並べ替えの後、agents.defaults.pdfMaxPages(デフォルト20)の範囲内に制限されます。範囲内のページに 1 つも一致しない場合、モデル呼び出し前にエラーになります。
サポートされる PDF リファレンス
- ローカルファイルパス(
~の展開を含む) file://URLhttp://およびhttps://URLmedia://inbound/<id>など、OpenClaw が管理する受信リファレンス
その他の URI スキーム(例:ftp://)は details.error = "unsupported_pdf_reference" を返します。ツールがサンドボックス内で実行されている場合、リモートの http(s) URL は拒否されます。ワークスペース限定のファイルポリシーが有効な場合、許可されたルート外のローカルパスは拒否されますが、OpenClaw の受信メディアストア配下にある管理対象の受信リファレンスおよび再生されたパスは引き続き許可されます。
実行モード
ネイティブプロバイダーモード
プロバイダー anthropic および google(現在ネイティブ PDF ドキュメント対応を宣言している唯一のプロバイダー)で使用されます。PDF の生バイトは、ファイルごとにネイティブドキュメント/インライン PDF パートとしてプロバイダー API に直接送信されます。
制限:
pagesはサポートされません。設定されている場合、ツールはpages is not supported with native PDF providersをスローします。passwordはサポートされません。設定されている場合、ツールはpassword is not supported with native PDF providersをスローします。暗号化された PDF には非ネイティブモデルを使用してください。
抽出フォールバックモード
その他のすべてのプロバイダーで使用されます。
- バンドルされた
document-extractPlugin を介して、選択されたページ(最大agents.defaults.pdfMaxPages、デフォルト20)からテキストを抽出します。この Plugin は、テキストおよび画像の抽出にclawpdfパッケージ(PDFium WebAssembly)を使用します。 - 抽出されたテキストが
200文字未満の場合、同じページを PNG 画像としてレンダリングします。レンダリング予算は合計4,000,000ピクセルで、画像が必要なすべてのページ間で共有されます(ページごとではなく、残りの各ページに比例配分されます)。そのため、すでに十分なテキストがあるページではレンダリングを完全にスキップします。 - 抽出したテキスト(およびレンダリングされた画像)とプロンプトを、選択したモデルに送信します。
詳細:
- 暗号化された PDF は、トップレベルの
passwordパラメーターを使用して開かれます。 - モデルが画像入力に対応しておらず、抽出可能なテキストもない場合、ツールはエラーになります。
- 画像のレンダリングに失敗した場合、OpenClaw は画像を破棄し、抽出されたテキストで処理を続行します。
- 対象モデルがテキスト専用で、抽出によって画像が生成された場合、OpenClaw は画像を破棄してテキストのみを送信します。
設定
{ agents: { defaults: { pdfModel: { primary: "anthropic/claude-opus-4-6", fallbacks: ["openai/gpt-5.4-mini"], }, pdfMaxBytesMb: 10, pdfMaxPages: 20, }, },}| キー | デフォルト | 意味 |
|---|---|---|
agents.defaults.pdfModel |
未設定 | 明示的なプライマリ/フォールバック PDF モデル。imageModel、次にセッションモデルへフォールバックします。 |
agents.defaults.pdfMaxMb |
10 |
PDF ごとのサイズ上限(MB)。 |
agents.defaults.pdfMaxPages |
20 |
PDF ごとに処理する最大ページ数。 |
フィールドの詳細については、設定リファレンスを参照してください。
出力の詳細
ツールは content[0].text にテキストを、details に構造化メタデータを返します。
一般的な details フィールド:
model:解決されたモデルリファレンス(provider/model)native:ネイティブプロバイダーモードではtrue、フォールバックではfalseattempts:成功前に失敗したフォールバック試行
パスフィールド:
- 単一 PDF 入力:
details.pdf - 複数 PDF 入力:
pdfエントリを持つdetails.pdfs[] - サンドボックスのパス書き換えメタデータ(該当する場合):
rewrittenFrom
エラー動作
| 条件 | 結果 |
|---|---|
| PDF 入力なし | pdf required: provide a path or URL to a PDF document をスロー |
| PDF が 10 個を超える | details.error = "too_many_pdfs" |
| サポートされていないリファレンススキーム | details.error = "unsupported_pdf_reference" |
ネイティブプロバイダーでの pages |
pages is not supported with native PDF providers をスロー |
ネイティブプロバイダーでの password |
password is not supported with native PDF providers をスロー |
例
単一 PDF:
{ "pdf": "/tmp/report.pdf", "prompt": "このレポートを 5 つの箇条書きで要約してください"}複数 PDF:
{ "pdfs": ["/tmp/q1.pdf", "/tmp/q2.pdf"], "prompt": "両方のドキュメントにおけるリスクとタイムラインの変更を比較してください"}ページフィルターを指定したフォールバックモデル:
{ "pdf": "https://example.com/report.pdf", "pages": "1-3,7", "model": "openai/gpt-5.4-mini", "prompt": "顧客に影響するインシデントのみを抽出してください"}抽出フォールバックを使用する暗号化 PDF:
{ "pdf": "/tmp/locked.pdf", "password": "example-password", "model": "openai/gpt-5.4-mini", "prompt": "この契約書を要約してください"}