コンテンツにスキップ

OpenClaw PDF解析ツール:PDFからテキストを抽出・分析する方法

大量のPDF資料から必要な情報を探し出すのは、開発者にとって非常に骨の折れる作業ですよね。特に複数のドキュメントを横断して分析したり、特定のページだけを抽出したりするのは、意外と実装が面倒なものです。

pdfツールを使えば、1つ以上のPDFドキュメントを解析して、中身のテキストを簡単に取得できます。

このツールの主な特徴は以下の通りです:

  • AnthropicやGoogleのモデルプロバイダー向けのNative provider modeを搭載しています。
  • その他のプロバイダー向けには、テキストを抽出してから必要に応じてページ画像を取得するExtraction fallback modeが用意されています。
  • 単一(pdf)または複数(pdfs)の入力に対応しており、1回の呼び出しで最大10個のPDFを処理できます。

このツールは、OpenClawがエージェントに対してPDF対応モデルの設定を解決できる場合にのみ登録されます。解決の優先順位は以下の通りです:

  1. agents.defaults.pdfModel
  2. agents.defaults.imageModel へのフォールバック
  3. 利用可能な認証に基づく、ベストエフォートなプロバイダーのデフォルト設定へのフォールバック

利用可能なモデルが解決できない場合、pdfツールは公開されません。

  • pdf (string): PDFのパスまたはURL(1つ)
  • pdfs (string[]): 複数のPDFパスまたはURL、合計10個まで
  • prompt (string): 解析プロンプト。デフォルトは Analyze this PDF document. です。
  • pages (string): 1-5 や 1,3,7-9 のようなページフィルター
  • model (string): オプションのモデルオーバーライド(provider/model)
  • maxBytesMb (number): PDF1ファイルあたりのサイズ制限(MB単位)

入力に関する注意点:

  • pdf と pdfs は読み込み前にマージされ、重複が排除されます。
  • PDFの入力がない場合、ツールはエラーを返します。
  • pages は1から始まるページ番号として解析され、重複排除とソートが行われた後、設定された最大ページ数に収まるよう調整されます。
  • maxBytesMb のデフォルトは agents.defaults.pdfMaxBytesMb または 10 です。

サポートされているPDFリファレンス

Section titled “サポートされているPDFリファレンス”
  • ローカルファイルのパス(~ によるホームディレクトリ展開を含む)
  • file:// URL
  • http:// および https:// URL

リファレンスに関する注意点:

  • その他のURIスキーム(例:ftp://)は unsupported_pdf_reference として拒否されます。
  • sandboxモードでは、リモートの http(s) URLは拒否されます。
  • workspace-onlyファイルポリシーが有効な場合、許可されたルート以外のローカルファイルパスは拒否されます。

Nativeモードは、プロバイダーが anthropic および google の場合に使用されます。 このモードでは、ツールはPDFの生バイトデータをプロバイダーのAPIに直接送信します。

Nativeモードの制限:

  • pages はサポートされていません。設定された場合、ツールはエラーを返します。

Fallbackモードは、ネイティブ対応していないプロバイダーで使用されます。

処理の流れ:

  1. 選択されたページからテキストを抽出します(最大 agents.defaults.pdfMaxPages、デフォルトは 20)。
  2. 抽出されたテキストが200文字未満の場合、選択されたページをPNG画像としてレンダリングして含めます。
  3. 抽出されたコンテンツとプロンプトを選択されたモデルに送信します。

フォールバックの詳細:

  • ページの画像抽出には 4,000,000 ピクセルの予算が使用されます。
  • ターゲットモデルが画像入力をサポートしておらず、抽出可能なテキストもない場合、ツールはエラーを返します。
  • Extraction fallbackの利用には pdfjs-dist(および画像レンダリング用の @napi-rs/canvas)が必要です。
{
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: Native provider modeの場合は true、フォールバックの場合は false
  • attempts: 成功前に失敗したフォールバックの試行回数

パスに関するフィールド:

  • 単一のPDF入力:details.pdf
  • 複数のPDF入力:pdf エントリを持つ details.pdfs[]
  • sandboxパスの書き換えメタデータ(該当する場合):rewrittenFrom
  • PDF入力がない場合:pdf required: provide a path or URL to a PDF document をスローします。
  • PDFが多すぎる場合:details.error = "too_many_pdfs" という構造化エラーを返します。
  • サポートされていないリファレンススキームの場合:details.error = "unsupported_pdf_reference" を返します。
  • Nativeモードで pages を使用した場合:pages is not supported with native PDF providers というエラーをスローします。

単一のPDFを処理する場合:

{
"pdf": "/tmp/report.pdf",
"prompt": "Summarize this report in 5 bullets"
}

複数のPDFを処理する場合:

{
"pdfs": ["/tmp/q1.pdf", "/tmp/q2.pdf"],
"prompt": "Compare risks and timeline changes across both documents"
}

ページフィルターを指定してフォールバックモデルを使用する場合:

{
"pdf": "https://example.com/report.pdf",
"pages": "1-3,7",
"model": "openai/gpt-5-mini",
"prompt": "Extract only customer-impacting incidents"
}
  • Configuration Reference で詳細な設定オプションを確認しましょう。
  • Tools Overview で、エージェントが利用できる他のツールについても学んでみてください。

AI Setup Assistant

OpenClaw

OpenClaw Expert

まだ解決しませんか?

このページで解決しない場合は、OpenClaw Expertに直接質問してください。