Outil PDF
pdf analyse un ou plusieurs documents PDF et renvoie du texte. Comportement rapide :
- Mode fournisseur natif pour les fournisseurs de modèles Anthropic et Google.
- Mode de repli par extraction pour les autres fournisseurs (extrait d'abord le texte, puis les images des pages si nécessaire).
- Prend en charge une entrée unique (
pdf) ou multiple (pdfs), maximum 10 PDFs par appel.
Disponibilité
L'outil n'est enregistré que lorsque OpenClaw peut résoudre une configuration de modèle compatible PDF pour l'agent :
agents.defaults.pdfModel- repli sur
agents.defaults.imageModel - repli sur les valeurs par défaut du fournisseur en mode "meilleur effort" basées sur l'authentification disponible
Si aucun modèle utilisable ne peut être résolu, l'outil pdf n'est pas exposé.
Référence des entrées
pdf(string) : un chemin ou URL de PDFpdfs(string[]) : plusieurs chemins ou URLs de PDF, jusqu'à 10 au totalprompt(string) : consigne d'analyse, par défautAnalyze this PDF document.pages(string) : filtre de pages comme1-5ou1,3,7-9model(string) : remplacement optionnel du modèle (provider/model)maxBytesMb(number) : limite de taille par PDF en Mo
Notes sur les entrées :
pdfetpdfssont fusionnés et dédupliqués avant le chargement.- Si aucune entrée PDF n'est fournie, l'outil génère une erreur.
pagesest analysé comme des numéros de pages basés sur 1, dédupliqués, triés et limités au nombre maximum de pages configuré.maxBytesMbest par défautagents.defaults.pdfMaxBytesMbou10.
Références PDF prises en charge
- chemin de fichier local (y compris l'expansion
~) - URL
file:// - URL
http://ethttps://
Notes sur les références :
- Les autres schémas d'URI (par exemple
ftp://) sont rejetés avecunsupported_pdf_reference. - En mode sandbox, les URLs distantes
http(s)sont rejetées. - Avec la politique de fichiers limitée à l'espace de travail activée, les chemins de fichiers locaux en dehors des racines autorisées sont rejetés.
Modes d'exécution
Mode fournisseur natif
Le mode natif est utilisé pour les fournisseurs anthropic et google. L'outil envoie les octets bruts du PDF directement aux APIs des fournisseurs. Limites du mode natif :
pagesn'est pas pris en charge. S'il est défini, l'outil renvoie une erreur.
Mode de repli par extraction
Le mode de repli est utilisé pour les fournisseurs non natifs. Flux :
- Extraire le texte des pages sélectionnées (jusqu'à
agents.defaults.pdfMaxPages, par défaut20). - Si la longueur du texte extrait est inférieure à
200caractères, rendre les pages sélectionnées en images PNG et les inclure. - Envoyer le contenu extrait plus la consigne au modèle sélectionné.
Détails du repli :
- L'extraction d'image de page utilise un budget de pixels de
4 000 000. - Si le modèle cible ne prend pas en charge l'entrée d'image et qu'il n'y a pas de texte extractible, l'outil génère une erreur.
- Le repli par extraction nécessite
pdfjs-dist(et@napi-rs/canvaspour le rendu d'image).
Configuration
{
agents: {
defaults: {
pdfModel: {
primary: "anthropic/claude-opus-4-6",
fallbacks: ["openai/gpt-5-mini"],
},
pdfMaxBytesMb: 10,
pdfMaxPages: 20,
},
},
}
Voir la Référence de configuration pour les détails complets des champs.
Détails de la sortie
L'outil renvoie du texte dans content[0].text et des métadonnées structurées dans details. Champs details courants :
model: référence du modèle résolu (provider/model)native:truepour le mode fournisseur natif,falsepour le repliattempts: tentatives de repli qui ont échoué avant le succès
Champs de chemin :
- entrée PDF unique :
details.pdf - entrées PDF multiples :
details.pdfs[]avec des entréespdf - métadonnées de réécriture de chemin sandbox (le cas échéant) :
rewrittenFrom
Comportement en cas d'erreur
- Entrée PDF manquante : lance
pdf required: provide a path or URL to a PDF document - Trop de PDFs : renvoie une erreur structurée dans
details.error = "too_many_pdfs" - Schéma de référence non pris en charge : renvoie
details.error = "unsupported_pdf_reference" - Mode natif avec
pages: lance l'erreur clairepages is not supported with native PDF providers
Exemples
PDF unique :
{
"pdf": "/tmp/report.pdf",
"prompt": "Summarize this report in 5 bullets"
}
PDFs multiples :
{
"pdfs": ["/tmp/q1.pdf", "/tmp/q2.pdf"],
"prompt": "Compare risks and timeline changes across both documents"
}
Modèle de repli avec filtre de pages :
{
"pdf": "https://example.com/report.pdf",
"pages": "1-3,7",
"model": "openai/gpt-5-mini",
"prompt": "Extract only customer-impacting incidents"
}