PDFツール

pdfは1つ以上のPDFドキュメントを分析し、テキストを返します。

主な動作:

  • AnthropicおよびGoogleモデルプロバイダー向けのネイティブプロバイダーモード。
  • 他のプロバイダー向けの抽出フォールバックモード(先にテキストを抽出し、必要に応じてページ画像を使用)。
  • 単一入力(pdf)または複数入力(pdfs)に対応、1回の呼び出しで最大10件。

利用条件

このツールは、OpenClawがエージェント用のPDF対応モデル設定を解決できる場合にのみ登録されます:

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

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

入力リファレンス

  • pdfstring): PDFのパスまたはURL(1つ)
  • pdfsstring[]): 複数のPDFパスまたはURL(合計10件まで)
  • promptstring): 分析プロンプト、デフォルトはAnalyze this PDF document.
  • pagesstring): 1-51,3,7-9のようなページフィルター
  • modelstring): オプションのモデルオーバーライド(provider/model
  • maxBytesMbnumber): PDFごとのサイズ上限(MB)

入力に関する注意:

  • pdfpdfsはロード前にマージおよび重複排除されます。
  • PDFの入力がない場合、ツールはエラーを返します。
  • pagesは1ベースのページ番号として解析され、重複排除、ソート後、設定された最大ページ数に制限されます。
  • maxBytesMbのデフォルトはagents.defaults.pdfMaxBytesMbまたは10

サポートされるPDF参照形式

  • ローカルファイルパス(~展開を含む)
  • file:// URL
  • http://およびhttps:// URL

参照に関する注意:

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

実行モード

ネイティブプロバイダーモード

anthropicおよびgoogleプロバイダーで使用されます。 PDFのバイトデータを直接プロバイダーAPIに送信します。

ネイティブモードの制限:

  • pagesは非対応です。設定するとエラーが返されます。

抽出フォールバックモード

非ネイティブプロバイダーで使用されます。

フロー:

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

フォールバックの詳細:

  • ページ画像抽出はピクセルバジェット4,000,000を使用。
  • ターゲットモデルが画像入力に非対応で、抽出可能なテキストもない場合、ツールはエラーを返します。
  • 抽出フォールバックにはpdfjs-dist(および画像レンダリング用の@napi-rs/canvas)が必要です。

設定

{
  agents: {
    defaults: {
      pdfModel: {
        primary: "anthropic/claude-opus-4-6",
        fallbacks: ["openai/gpt-5-mini"],
      },
      pdfMaxBytesMb: 10,
      pdfMaxPages: 20,
    },
  },
}

フィールドの詳細は設定リファレンスを参照してください。

出力の詳細

ツールはcontent[0].textにテキスト、detailsに構造化メタデータを返します。

主要なdetailsフィールド:

  • model: 解決されたモデル参照(provider/model
  • native: ネイティブプロバイダーモードの場合はtrue、フォールバックの場合はfalse
  • attempts: 成功前に失敗したフォールバック試行回数

パスフィールド:

  • 単一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:

{
  "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"
}