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.
Metadata
Release files for crewai-xberg 1.3.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| crewai_xberg-1.3.8.tar.gz | 10.8 kB | Without provenance | Details for crewai_xberg-1.3.8.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| crewai_xberg-1.3.8-py3-none-any.whl | Python 3 | none | any | Details for crewai_xberg-1.3.8-py3-none-any.whl |
Total release size: 18.7 kB
Release files / crewai_xberg-1.3.8.tar.gz
| Download URL | crewai_xberg-1.3.8.tar.gz |
|---|---|
| Size | 10.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5fe16c4cdc55161a8a3f3815953de21bb4bdc5753a6889fcc3436c5186995853
|
|
BLAKE2b-256 checksum How to use checksums |
cfe097e7e12c47cced58a5f69794be53467ae462b11b8142c398d7e7863edc4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.3.8-py3-none-any.whl
| Download URL | crewai_xberg-1.3.8-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
60ac27a1388cdf78afae17548af8fcdff33bab3dca83af1d47fca92a39c9b22b
|
|
BLAKE2b-256 checksum How to use checksums |
3305ff7d6e1d4efacc5dfdf6d9b7256a7e4a666c04672489db8a32f168c88838
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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}
|
Security for crewai-xberg 1.3.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.