ADX: Agentic Data Layer. Structured, citeable, inspectable document state for AI agents.
Project description
ADX
Agent-native document intelligence layer. Wraps best-in-class document parsers and exposes structured, citeable, inspectable document state to AI agents.
What It Does
ADX is not a parser. It is an orchestration layer that:
- Wraps parsers (PyMuPDF, openpyxl, csv) behind a uniform interface
- Builds a canonical
DocumentGraphfrom any supported format - Exposes 9 read-only agent tools for inspection and search
- Extracts fields using built-in schemas with field-level citations
- Validates results with rule-based checks
Install
pip install adx
Quick Start
from adx import ADX
dn = ADX()
doc_id = dn.upload("invoice.pdf")
# Profile the document
profile = dn.profile(doc_id)
# Extract with a built-in schema
extraction = dn.extract(doc_id, schema="invoice")
# Validate
result = dn.validate(doc_id, extraction["id"])
Agent Tools
| Tool | Description |
|---|---|
profile_document |
File metadata, type detection, recommended tools |
list_structure |
Sections, tables, page outline |
search_document |
Full-text search with citations |
get_page |
Page text blocks and tables |
get_table |
Table rows with headers |
list_sheets |
Spreadsheet sheet metadata |
read_range |
Cell range with formulas |
find_cells |
Search cells by value |
inspect_formula |
Trace formula dependencies |
Built-in Schemas
invoice— vendor, line items, totals, taxcontract— parties, dates, governing lawfinancial_model— revenue, expenses, assumptionstable— generic table extraction
REST API
adx serve
curl -X POST http://localhost:8000/v1/files -F "file=@invoice.pdf"
curl http://localhost:8000/v1/files/{id}/profile
CLI
adx upload invoice.pdf
adx profile <id>
adx extract <id> --schema invoice
adx validate <id> --extraction <eid>
Supported Formats
| Format | Parser | Features |
|---|---|---|
| PyMuPDF | Text blocks, tables, bounding boxes, sections | |
| Excel (.xlsx) | openpyxl | Sheets, formulas, hidden content, named ranges |
| DOCX | python-docx | Paragraphs, headings, tables, images, metadata |
| RTF | striprtf | Text extraction with formatting stripped |
| CSV | stdlib | Dialect sniffing, encoding detection |
Documentation
https://harsh-nod.github.io/adx/
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file adx-0.1.0.tar.gz.
File metadata
- Download URL: adx-0.1.0.tar.gz
- Upload date:
- Size: 147.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9df9b0cd6f673a45410721624f049e654789a7f7543cbf885b386afb1b541f5
|
|
| MD5 |
0d61598b5b2ce54944ee5656ffac0350
|
|
| BLAKE2b-256 |
0d2e37937aee0f2078a8a6a07a9faea1e27d3e05f77086f8aa82a47b765887ba
|
Provenance
The following attestation bundles were made for adx-0.1.0.tar.gz:
Publisher:
publish.yml on harsh-nod/adx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
adx-0.1.0.tar.gz -
Subject digest:
f9df9b0cd6f673a45410721624f049e654789a7f7543cbf885b386afb1b541f5 - Sigstore transparency entry: 1437906134
- Sigstore integration time:
-
Permalink:
harsh-nod/adx@1cf9659b622a086ab5d78c80ec89c6316277997d -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/harsh-nod
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1cf9659b622a086ab5d78c80ec89c6316277997d -
Trigger Event:
push
-
Statement type:
File details
Details for the file adx-0.1.0-py3-none-any.whl.
File metadata
- Download URL: adx-0.1.0-py3-none-any.whl
- Upload date:
- Size: 47.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c18a843e71b010a8a6078508ba6c35a11c98c78c376b92421841c9ea8f6c494b
|
|
| MD5 |
b7536e9515169ea178e55c126c127c89
|
|
| BLAKE2b-256 |
658524be7762fbda7ce591783333bcd7608bac0c26a39784dd63f04dde28a846
|
Provenance
The following attestation bundles were made for adx-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on harsh-nod/adx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
adx-0.1.0-py3-none-any.whl -
Subject digest:
c18a843e71b010a8a6078508ba6c35a11c98c78c376b92421841c9ea8f6c494b - Sigstore transparency entry: 1437906144
- Sigstore integration time:
-
Permalink:
harsh-nod/adx@1cf9659b622a086ab5d78c80ec89c6316277997d -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/harsh-nod
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1cf9659b622a086ab5d78c80ec89c6316277997d -
Trigger Event:
push
-
Statement type: