crewai-xberg
CrewAI tools backed by Xberg. Give an agent document intelligence: extract text, metadata, keywords, entities, and summaries from 107 file formats — PDF, DOCX, XLSX, HTML, images with OCR, and more. Extraction is async at the core; the batch tool routes many files through Xberg's extract_batch in a single native call.
Install
pip install crewai-xberg
Requires Python 3.10+.
Tools
| Tool | Input | Returns |
|---|---|---|
XbergExtractTool |
file_path |
Extracted text, plus any requested rich results. |
XbergExtractBatchTool |
file_paths |
One section per document via extract_batch, then errors. |
XbergExtractMetadataTool |
file_path |
Title, authors, dates, page/table/image counts, format info. |
Use
from crewai import Agent
from crewai_xberg import XbergExtractTool, XbergExtractBatchTool, XbergExtractMetadataTool
agent = Agent(
role="Document Analyst",
goal="Extract and analyze document content",
backstory="You process documents of any format.",
tools=[XbergExtractTool(), XbergExtractBatchTool(), XbergExtractMetadataTool()],
)
Call a tool directly to see its output:
tool = XbergExtractTool()
# Plain extraction
text = tool.run(file_path="report.pdf")
# Force OCR and surface keywords, entities, and a summary
enriched = tool.run(
file_path="scan.pdf",
output_format="markdown",
force_ocr=True,
extract_keywords=True,
extract_entities=True,
summarize=True,
)
# Many files in one batched extraction
combined = XbergExtractBatchTool().run(file_paths=["report.pdf", "notes.docx", "sheet.xlsx"])
Options
Both extraction tools accept the same options. Each toggles an Xberg ExtractionConfig capability:
| Option | Default | Effect |
|---|---|---|
output_format |
"markdown" |
plain, markdown, or html. |
force_ocr |
False |
Run OCR on every page, even with a text layer. |
chunk |
False |
Split into semantic chunks; report the chunk count. |
extract_keywords |
False |
Append a keyword list. |
extract_entities |
False |
Append named entities (people, orgs, locations). |
summarize |
False |
Append a short summary. |
Detected languages and tables are surfaced automatically when present.
Async
The tools are async at the core. Inside an event loop, await tool.arun(...); the synchronous run bridges to it and must not be called from a running loop.
Errors
A missing file raises from Xberg directly. In batch mode, per-file failures land in ExtractionResult.errors and are reported in a trailing Errors section instead of aborting the batch.
For the full API, see the Xberg documentation.
Release files for crewai-xberg 1.2.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| crewai_xberg-1.2.9.tar.gz | 10.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| crewai_xberg-1.2.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.6 kB
Release files / crewai_xberg-1.2.9.tar.gz
| Download URL | crewai_xberg-1.2.9.tar.gz |
|---|---|
| Size | 10.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6b6cb318e22a4dfee0e19681e0ed1c007b97baee408abfe515f71f8ad21d0108
|
|
BLAKE2b-256 checksum How to use checksums |
9cccabc57688484ef69bce6750b8da8a929a1db0a3a08ebf0a62153d69cdd290
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / crewai_xberg-1.2.9-py3-none-any.whl
| Download URL | crewai_xberg-1.2.9-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
504c5632232a3b91fac2f62cc4364608bed749d1947a33246ce3df2a69287334
|
|
BLAKE2b-256 checksum How to use checksums |
500f2e4abef8e929c873f3c28a437bec3caef3dd0397f3df470fd7051305ce93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|