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.5
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.5.tar.gz | 10.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| crewai_xberg-1.2.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.6 kB
Release files / crewai_xberg-1.2.5.tar.gz
| Download URL | crewai_xberg-1.2.5.tar.gz |
|---|---|
| Size | 10.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
85123e4f484673dcaafb47fa173f1adebfb85591e27fa464f521fe8d475c26e3
|
|
BLAKE2b-256 checksum How to use checksums |
a45447dad2462b4e845ea2708c87a9993558c381fc11ef59d7d356ea39e77c63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","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.5-py3-none-any.whl
| Download URL | crewai_xberg-1.2.5-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0e5f960e586acbb5b0a99f6a59b560bd9050a95a0189382619144f0112fb81fa
|
|
BLAKE2b-256 checksum How to use checksums |
225448204c017d4ed7f70f49c0099373fd0b8b3ff91618f7e5b632c847f3aa1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","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}
|