DocImprint Document Intelligence
Inteligencia documental verificable para agentes de IA.
Documentación
Los agentes de memoria documental pueden demostrarlo.
PDFs y URLs → respuestas citadas · paquetes de evidencia · atestación en cadena
Tabla de contenidos
- De un vistazo
- Elige tu integración
- Mira lo que obtienes
- Cómo funciona
- ¿Por qué no un simple OCR o RAG?
- Casos de uso
- Instalación
- Inicio rápido
- Ejemplos
- Características
- ¿Por qué DocImprint?
- Características nativas para agentes
- Integración con CrewAI
- Servidor MCP
- Referencia de API
- Manejo de errores
- Autenticación
- TypeScript
- Precios
- Comunidad
- Enlaces
De un vistazo
DocImprint convierte cualquier PDF o URL en un paquete de evidencia a prueba de manipulación: datos estructurados, respuestas citadas por IA y una prueba criptográfica que tus agentes pueden verificar de forma independiente.
| Entrada | PDF o URL |
| Salida | ev_... paquete de evidencia: respuestas citadas, hashes de artefactos, firma EIP-191 |
| Verificar | client.verify(): gratuito, sin autenticación; notarización opcional en Base L2 mediante EAS |
Elige tu integración
| Ruta | Ideal para | Empieza aquí |
|---|---|---|
| SDK de TypeScript | Agentes Node, aplicaciones tipadas | Inicio rápido |
| SDK de Python | CrewAI, scripts | Inicio rápido · CrewAI |
| Servidor MCP | Claude, Cursor | Servidor MCP |
| x402 USDC | Agentes autónomos, sin cuenta | Pagos x402 USDC |
Mira lo que obtienes
Cada respuesta incluye un ID de paquete verificable, hash de manifiesto y respuestas citadas vinculadas a citas exactas de la fuente.
{
"bundle_id": "ev_01jqv8k3m2x",
"manifest_sha256": "a3f2c1d8e9b0476f8a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e0f",
"signature": {
"signature": "0x8f4e2a1b9c3d5e7f0a2b4c6d8e0f1a3b5c7d9e1f3a5b7c9d1e3f5a7b9c1d3e5f71c",
"signer_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0EbE",
"algorithm": "secp256k1-eip191"
},
"answer_cited": {
"value": "Section 4.2 does not permit unilateral termination without 90 days written notice.",
"citations": [
{
"quote": "Neither party may terminate this Agreement unilaterally except upon ninety (90) days prior written notice to the other party.",
"paragraphs": [42],
"page": 4,
"confidence": "high"
}
]
},
"artifacts": {
"markdown": { "sha256": "b4e5f6a79876543210fedcba9876543210fedcba9876543210fedcba9876543210ab" },
"manifest": { "sha256": "a3f2c1d8e9b0476f8a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e0f" }
}
}
Cómo funciona
flowchart LR
source[PDF or URL] --> extract[extract / qa / checkClaims]
extract --> bundle[Evidence bundle ev_...]
bundle --> artifacts[Artifacts + manifest SHA-256]
bundle --> citations[Cited answers with quotes]
artifacts --> verify[verify - free]
verify --> notarize[notarize on Base L2 - optional]
¿Por qué no un simple OCR o RAG?
| OCR simple | RAG vectorial | DocImprint | |
|---|---|---|---|
| Citas exactas de la fuente | No | Aproximado | Sí, con referencias a párrafos |
| Evidencia de manipulación | No | No | Manifiesto SHA-256 + firma EIP-191 |
| Verificación independiente | No | No | verify() sin clave de API |
| Atestación en cadena | No | No | EAS en Base L2 |
| Rastro de auditoría del agente | No | No | Procedencia + transferencia (Python) |
Casos de uso
| Escenario | Método | Resultado |
|---|---|---|
| Preguntas sobre contratos | client.qa() | Respuesta citada con puntuación de confianza |
| Verificación de reclamaciones | client.checkClaims() | Veredicto por reclamación: supported / contradicted / not_found |
| Procesamiento de facturas | client.extract({ mode: 'invoice' }) | Comerciante estructurado, líneas de artículos, totales: todo citado |
| Archivo de cumplimiento | legal_hold: true + notarize() | Registro inmutable en cadena, bloqueo de eliminación |
Instalación
npm install docimprint # TypeScript / Node.js
pip install docimprint # Python REST client
pip install "docimprint[crewai]" # + 10 CrewAI tools & ProvenanceTracker
El código fuente de Python está en python/. PyPI: docimprint.
Inicio rápido
Obtén una clave de API en docimprint.com: plan gratuito disponible, sin necesidad de tarjeta de crédito.
TypeScript
import { DocImprintClient } from 'docimprint'
const client = new DocImprintClient({ apiKey: 'dr_live_...' })
const result = await client.extract({
source: 'https://example.com/contract.pdf',
include: ['markdown', 'summary'],
})
console.log(result.bundle_id) // ev_01j...
console.log(result.summary) // AI-generated summary
console.log(result.manifest_sha256) // tamper-evident hash
console.log(result.key_points_cited[0].citations[0].quote)
Python
from docimprint import DocImprintClient
client = DocImprintClient(api_key="dr_live_...")
result = client.extract(
url="https://example.com/contract.pdf",
include=["markdown", "summary"],
)
print(result["bundle_id"]) # ev_01j...
print(result["summary"]) # AI-generated summary
print(result["manifest_sha256"]) # tamper-evident hash
API REST (cURL)
curl -X POST https://api.docimprint.com/v1/extract \
-H "Authorization: Bearer dr_live_..." \
-H "Content-Type: application/json" \
-d '{"source": "https://example.com/contract.pdf", "include": ["markdown", "summary"]}'
Ejemplos
Demostraciones ejecutables que muestran la historia completa de la prueba: verificación de reclamaciones con citas, un paquete de evidencia almacenado y un recibo de acción firmado:
# Python
cd examples/python
pip install -e .
cp .env.example .env # set DOCIMPRINT_API_KEY
python -m docimprint_examples.prove_what_agent_read
# TypeScript
cd examples/typescript
npm install
cp .env.example .env # set DOCIMPRINT_API_KEY
npm run prove
Consulta examples/README.md para ambos lenguajes y qué demuestra cada artefacto.
Características
| Capacidad | Método / Modo | Descripción |
|---|---|---|
| Extraer | extract() | Paquete de evidencia completo: markdown, resumen, puntos clave citados, artefactos, manifiesto SHA-256 |
| Análisis de facturas | mode: 'invoice' | InvoiceResult estructurado: comerciante, fecha, líneas de artículos, subtotal, impuestos, total: todo con citas |
| Comparación de documentos | mode: 'compare' | Compara dos documentos; proporciona previous_bundle_id para rastrear cambios |
| Extracción estructurada | mode: 'extract-structured' | Extrae campos tipados usando un esquema JSON definido por el llamador |
| Resumir | summarize() | Resumen en prosa + puntos clave, cada uno con referencias citadas a párrafos |
| Preguntas y respuestas | qa() | Respuesta a una sola pregunta con citas en línea y puntuación de confianza |
| Verificación de reclamaciones | checkClaims() | Veredicto por reclamación: supported / contradicted / not_found con citas de evidencia |
| Traducir | translate() | Traducción con citas de fuente a cualquier idioma |
| Describir | describe() | Descripción por IA del contenido de una imagen o página PDF |
| Colecciones | createCollection() + searchCollection() + askCollection() | Búsqueda semántica + preguntas y respuestas RAG entre documentos en múltiples paquetes |
| Verificar | verify() | Verificación de integridad criptográfica: hash de manifiesto, firma EIP-191, hashes de artefactos. Gratuito, sin autenticación |
| Notarizar | notarize() | Escribe el SHA-256 del manifiesto en Base L2 mediante EAS: atestación permanente e inmutable |
| Servidor MCP | 20 herramientas · 2 indicaciones | MCP nativo para Claude, Cursor y cualquier cliente compatible con MCP |
| x402 | Cabecera REST X-Payment | Paga por llamada en USDC: sin necesidad de cuenta |
¿Por qué DocImprint?
- 🔏 Procedencia criptográfica: cada paquete está firmado con EIP-191 en su creación; opcionalmente notarizado en Base L2 mediante EAS para un rastro de auditoría inmutable en cadena
- 🤖 Nativo para agentes por diseño: trabajos asíncronos, webhooks, claves de idempotencia y retención legal integrados en cada solicitud, no añadidos después
- 📎 Más allá del OCR: las citas incluyen citas exactas, índices de párrafos y puntuaciones de confianza (
high/medium/low), no solo texto sin procesar - 🛠️ 10 herramientas de CrewAI listas para usar:
research_tools(),legal_tools(),collection_tools()preagrupadas para flujos de trabajo comunes de agentes - ⚖️ Listo para cumplimiento:
legal_hold, registro de procedencia, seguimiento de transferencias entre agentes y notarización en cadena diseñados para industrias legales y reguladas - 💳 Pago flexible: planes de crédito mensuales o pago por llamada en USDC mediante x402, sin necesidad de cuenta
Características nativas para agentes
DocImprint está diseñado para flujos de trabajo de agentes autónomos, no solo para llamadas API síncronas.
// Fire-and-forget async extraction — returns job_id immediately
const job = await client.extract({
source: 'https://example.com/large-report.pdf',
async: true,
webhook: 'https://your-agent.io/callback',
idempotency_key: 'report-2025-q4',
legal_hold: true,
})
const status = await client.getJob(job.job_id)
// { status: 'complete', bundle_id: 'ev_...', progress_pct: 100 }
// Monitor a URL for changes — get notified on diff
await client.extract({
source: 'https://example.com/terms.html',
monitor: { webhook: 'https://your-agent.io/changes', mode: 'diff' },
})
Python: procedencia y seguimiento de transferencias entre agentes
client.log_provenance(bundle_id="ev_...", agent_id="agent-research", action="extracted")
client.handoff(bundle_id="ev_...", from_agent="agent-research", to_agent="agent-legal", note="ready for claim check")
Integración con CrewAI
10 herramientas específicas para agentes de CrewAI, organizadas en grupos predefinidos.
from docimprint.crewai import DocImprintToolkit
toolkit = DocImprintToolkit(
api_key="dr_live_...",
collection_id="col_...", # required for collection tools
)
toolkit.research_tools() # extract, summarize, qa, check_claims
toolkit.legal_tools() # check_claims, verify, notarize
toolkit.collection_tools() # search, ask, add_to_collection
toolkit.all_tools() # all 10 tools
| Herramienta | Qué hace |
|---|---|
ExtractEvidenceTool | Paquete de evidencia completo con citas y hash de manifiesto |
SummarizeTool | Puntos clave con referencias citadas a párrafos |
QATool | Respuesta citada con puntuación de confianza |
CheckClaimsTool | Veredicto por reclamación: supported / contradicted / not_found |
TranslateTool | Traducción con citas de fuente |
VerifyBundleTool | Verificación de integridad criptográfica: manifiesto, hash, firma |
NotarizeTool | Atestación EAS en cadena en Base L2 |
SearchCollectionTool | Búsqueda vectorial semántica en la colección de documentos |
AskCollectionTool | Preguntas y respuestas RAG entre documentos con fuentes citadas |
AddToCollectionTool | Añade paquete a la colección y activa indexación asíncrona |
ProvenanceTracker envuelve todas las herramientas para registrar automáticamente las acciones del agente y las transferencias de paquetes.
from docimprint.crewai import DocImprintToolkit, ProvenanceTracker
tracker = ProvenanceTracker(client=toolkit.client)
trackable = toolkit.trackable_tools()
DocImprintKnowledgeSource se integra con el sistema de conocimiento de CrewAI para agentes con recuperación aumentada.
Servidor MCP
DocImprint expone un servidor MCP nativo para usar con Claude, Cursor y cualquier cliente compatible con MCP.
Instalación mediante Smithery (un solo comando):
npx @smithery/cli install docimprint --client claude
Configuración manual:
{
"mcpServers": {
"docimprint": {
"type": "streamable-http",
"url": "https://api.docimprint.com/mcp",
"headers": {
"Authorization": "Bearer dr_live_..."
}
}
}
}
Transporte: streamable-http · Autenticación: token Bearer · Listado en Smithery · Listado en Glama
Herramientas MCP
Herramientas de URL: modo ligero, sin almacenamiento de paquete:
| Herramienta | Descripción |
|---|---|
extract_url | Obtener URL → texto + metadatos |
summarize_url | Obtener URL → resumen en prosa + puntos clave |
qa_url | Obtener URL → respuesta citada a una pregunta específica |
translate_url | Obtener URL → contenido traducido |
Herramientas de documentos: acepta PDF en base64 o imagen:
| Herramienta | Descripción |
|---|---|
extract_text | OCR de texto plano desde PDF / imagen |
extract_tables | OCR de tablas como Markdown desde PDF / imagen |
parse_invoice | Campos estructurados de factura: comerciante, líneas de artículos, totales + citas |
summarize_document | Resumen en prosa + puntos clave citados |
check_claims | Veredicto por reclamación con citas de evidencia |
extract_structured | Extrae campos tipados usando un esquema definido por el llamador |
Paquetes y colecciones:
| Herramienta | Descripción |
|---|---|
verify_bundle | Verificación de integridad criptográfica (devuelve recibo de acción firmado) |
get_bundle | Metadatos del paquete y estado de notarización (devuelve recibo) |
notarize_bundle | Atestación EAS en cadena en Base L2 (devuelve recibo) |
list_receipts | Lista recibos de acción firmados para un paquete |
verify_action_receipt | Verifica firma de recibo + vinculación de manifiesto |
create_collection | Crea una colección de documentos con nombre |
list_collections | Lista tus colecciones |
add_document_to_collection | Añade paquete + activa indexación asíncrona (devuelve recibo) |
search_collection | Búsqueda vectorial semántica |
ask_collection | Preguntas y respuestas RAG entre documentos |
get_job_status | Consulta trabajo asíncrono (extracción, indexación, lote) |
get_quota | Consulta saldo de créditos y estado del plan |
Indicaciones guiadas: claim_check_workflow · invoice_intake
Recurso: bundle://{bundle_id}: lee metadatos del paquete directamente
Referencia de API
Referencia tipada completa: docimprint.com/docs · OpenAPI
| Categoría | Métodos |
|---|---|
| Núcleo | extract, verify, download, notarize, deleteBundle |
| Enfocado | summarize, qa, translate, checkClaims, describe |
| Modos de extracción | invoice, extract-structured, compare, store: false (ligero) |
| Colecciones | createCollection, listCollections, addToCollection, searchCollection, askCollection |
| Trabajos | getJob, listJobs, getQuota |
Manejo de errores
import { DocImprintClient, DocImprintError } from 'docimprint'
try {
const result = await client.extract({ source: 'https://example.com/doc.pdf' })
} catch (err) {
if (err instanceof DocImprintError) {
console.error(err.message) // human-readable error
console.error(err.status) // HTTP status code
console.error(err.requestId) // x-request-id for support
}
}
Autenticación
Clave de API
Créditos mensuales mediante Stripe: regístrate en docimprint.com, plan gratuito disponible:
const client = new DocImprintClient({ apiKey: 'dr_live_...' })
Pagos x402 USDC
DocImprint admite el estándar abierto x402: paga por llamada en USDC en Base, directamente desde cualquier billetera EVM. Sin cuenta. Sin registro. Sin clave de API. Tu agente puede llamar a la API de forma autónoma sin credenciales gestionadas por humanos.
La API es nativa de x402: devuelve una respuesta estándar 402 Payment Required con detalles de pago en cadena, tu cliente liquida en USDC y la solicitud se completa automáticamente. Desde $0.01 / llamada.
Con @x402/fetch (manejo automático de pagos):
import { wrapFetchWithPayment } from '@x402/fetch'
import { createWalletClient, http } from 'viem'
import { privateKeyToAccount } from 'viem/accounts'
import { base } from 'viem/chains'
const account = privateKeyToAccount('0x...')
const wallet = createWalletClient({ account, chain: base, transport: http() })
const fetchWithPayment = wrapFetchWithPayment(fetch, wallet)
const res = await fetchWithPayment('https://api.docimprint.com/v1/summarize', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ source: 'https://example.com/report.pdf' }),
})
const data = await res.json()
Identidad en rutas de propietario: Para operaciones GET/DELETE que requieren propiedad (por ejemplo, obtener tu bundle), pasa el encabezado payment-signature de una respuesta de pago anterior para que la API pueda verificar tu dirección de wallet sin un inicio de sesión separado.
TypeScript
Todos los tipos de solicitud y respuesta se exportan:
import type {
ExtractRequest,
ExtractResponse,
Citation,
CitedField,
InvoiceResult,
Job,
Collection,
SearchResult,
} from 'docimprint'
Precios
Nivel gratuito disponible: no se requiere tarjeta de crédito. Planes de crédito mensuales a través de Stripe, o pago por llamada en USDC mediante x402. Ver precios →
Comunidad
Preguntas, integraciones y anuncios: Debates de GitHub.
Enlaces
- Documentación
- Referencia de API
- Ejemplos en Python — demuestra lo que un agente leyó
- Ejemplos en TypeScript — misma demo en Node/TS
- Paquetes de evidencia
- Pagos x402
- Precios