La capa de datos que sus agentes realmente usan
Los agentes de IA necesitan una capa de datos compartida y persistente — no solo para almacenar datos, sino para consultarlos, vincularlos y compartirlos con otros agentes y sistemas externos. Rekor ofrece a los agentes un sistema de registro estructurado donde pueden leer, escribir y colaborar — esquemas definidos en tiempo de ejecución, sin migraciones, sin configuración.
// Agent creates a collection and upserts a record
> manage_collection({ action: "upsert", workspace_id: "ws_ops",
collection: "incidents", json_schema: {
type: "object",
required: ["title", "severity", "status"],
properties: {
title: { type: "string" },
severity: { type: "string", enum: ["p0","p1","p2","p3"] },
status: { type: "string", enum: ["open","investigating","resolved"] },
assignee: { type: "string" }
}
}
})
< { id: "incidents", name: "incidents", version: 1 }
> manage_record({ action: "upsert", workspace_id: "ws_ops",
collection: "incidents",
external_id: "INC-2847", external_source: "pagerduty",
data: {
title: "API latency spike in us-east-1",
severity: "p1",
status: "investigating",
assignee: "oncall@team.dev"
}
})
< { id: "01961a3b-...", external_id: "INC-2847", version: 1 }Tres primitivas
Todo en Rekor es una colección, un registro o una relación entre registros.
JSON Schema que define un tipo de registro. Se crea en tiempo de ejecución, sin migraciones.
Documento JSON que cumple con el esquema de una colección. Upsert por ID externo para idempotencia.
Vínculo tipado y dirigido entre dos registros con metadatos. Entidad de primera clase, consultable en cualquier dirección.
# Define a collection schema
rekor collections upsert incidents \
--schema '{"type":"object","properties":{"title":{"type":"string"}}}'
# Upsert a record by external ID
rekor records upsert incidents \
--external-id INC-2847 --source pagerduty \
--data '{"title":"API spike","severity":"p1"}'
# Link two records with a typed relationship
rekor relationships upsert \
--type caused_by --source incidents/rec_1 \
--target deployments/rec_2Tres interfaces
Los desarrolladores diseñan esquemas vía CLI. Los agentes operan en producción vía MCP. Los sistemas externos se integran vía REST.
Para desarrolladores de agentes. Configure esquemas, colecciones y pruebe en entornos de vista previa.
Para operadores de agentes. Los agentes en producción crean/leen registros, suben/descargan archivos con 11 herramientas.
Para integraciones externas. Conecte sistemas externos a Rekor vía HTTP estándar.
# CLI — agent builders set up schemas and test in preview
npm install -g @rekor/cli
rekor collections upsert incidents --workspace my-ws--preview \
--schema '{"type":"object","properties":{"title":{"type":"string"}}}'
rekor workspaces promote my-ws --from my-ws--preview
# MCP — production agents read and write records
{
"mcpServers": {
"rekor": { "url": "https://mcp.rekor.pro/sse?token=rec_..." }
}
}
# REST — external systems integrate via HTTP
curl https://api.rekor.pro/v1/{workspace}/records/incidents \
-H "Authorization: Bearer rec_..." \
-d '{"data":{"title":"Alert from monitoring"}}'Motor de datos central
Escrituras atómicas y consistentes por workspace
Filtre, ordene, agregue y agrupe a escala
Hasta 1,000 operaciones atómicas en una sola solicitud
# Atomic operations — all succeed or all fail
rekor batch --workspace my-workspace --operations '[
{"type":"upsert_record","collection":"orders",
"data":{"customer":"Acme","total":5000}},
{"type":"upsert_record","collection":"line_items",
"data":{"product":"Widget","qty":10}},
{"type":"upsert_relationship",
"rel_type":"contains",
"source_collection":"orders","source_id":"ord_1",
"target_collection":"line_items","target_id":"li_1"}
]'
# Up to 1,000 operations per batch
# Records, relationships, and collections supportedArchivos adjuntos
Adjunte archivos a cualquier registro. Los agentes suben directamente vía URLs prefirmadas y obtienen enlaces de descarga firmados a demanda.
# Upload files with folder structure
rekor attachments upload incidents rec_abc \
--filename docs/runbook.md --content-type text/markdown
rekor attachments upload incidents rec_abc \
--filename docs/screenshots/error.png --content-type image/png
# Get a signed download URL for any file
rekor attachments url incidents rec_abc --filename docs/runbook.md
# List all files, or filter by folder
rekor attachments list incidents rec_abc --prefix docs/Integraciones
Integre con sistemas externos. Configure cualquier REST API como fuente de datos, reciba webhooks y envíe notificaciones cuando los datos cambien.
Configure colecciones como proxy de cualquier REST API — los agentes usan las mismas herramientas
Webhooks de entrada — los sistemas externos envían datos
Webhooks de salida — reaccione a cambios en los datos
# Same tool, different backends — the agent doesn't know the difference
# Upsert a Stripe invoice (proxied to Stripe API)
rekor records upsert invoices \
--external-id inv_2847 --source stripe \
--data '{"amount":5000,"status":"issued"}'
# Upsert a native record (stored in Rekor)
rekor records upsert notes \
--data '{"title":"Follow up on invoice"}'
# Query records — same interface for both
rekor records query invoices --source stripe --limit 10# Create a hook — external systems POST data to Rekor
rekor hooks create --workspace my-workspace \
--name "PagerDuty Incidents" --collection incidents
# Hook returns a unique URL: /v1/{ws}/hooks/{hook_id}/ingest
# External system POSTs JSON → Rekor creates a record automatically
# Create a trigger — Rekor notifies you when data changes
rekor triggers create --workspace my-workspace \
--name "Notify Slack on P1" --collection incidents \
--url https://hooks.slack.com/services/T00/B00/xxx \
--events '["create","update"]'
# When a record is created or updated, Rekor POSTs to the URL
# with an HMAC signature for authenticityMCP Factory
Cree servidores MCP personalizados a partir de sus esquemas de datos. Construya conjuntos de herramientas específicas para agentes especializados — sin código.
Los agentes ven create_invoice, list_payments — no operaciones genéricas de base de datos
Cada endpoint expone exactamente las herramientas que un agente necesita — nada más
Las definiciones de herramientas se generan automáticamente a partir de sus esquemas de colección
# Quick: create an endpoint with shorthand flags
rekor endpoints upsert invoicing-agent \
--name "Invoicing Agent" \
--tool "invoices:get,list" \
--tool "payments:create,get,list" \
--relationship "invoice_payment:list" \
--batch "invoices:create,update" --batch "payments:create" \
--sql-query
# Advanced: customize tool names and descriptions
rekor endpoints upsert invoicing-agent --config '{
"name": "Invoicing Agent",
"tools": [
{ "collection": "invoices", "operations": ["get", "list"],
"name_override": "search_invoices",
"description_override": "Find invoices by customer or status" }
]
}'
# Get the MCP connection URL
rekor endpoints url invoicing-agent
# → https://mcp.rekor.pro/e/invoicing-agent/mcpAcceso y gobernanza
Limite las API keys a workspaces, colecciones y permisos específicos. Etiquete workspaces para organizar por cliente, proyecto o equipo.
Control de acceso granular por workspace, colección y permiso
Colaboración multiusuario con workspaces compartidos
Agrupe workspaces por cliente, proyecto o equipo
# Create a scoped API key for a specific agent
rekor tokens create --name "client-a-agent" \
--grants '[{
"scope": {"workspaces": ["client-a"], "environments": ["production"]},
"permissions": ["read:records", "write:records"]
}]'
# Create a read-only key for a dashboard integration
rekor tokens create --name "dashboard-reader" \
--grants '[{
"scope": {"workspaces": ["*"]},
"permissions": ["read:records", "read:collections"]
}]'
# Group workspaces by client with tags
rekor workspaces create client-a --name "Client A" \
--tags "client:acme,region:us"
rekor workspaces list --tag "client:acme"
# List and revoke keys
rekor tokens list
rekor tokens revoke <token_id>Entornos
Los agentes experimentan en workspaces de vista previa. Los humanos revisan y promueven a producción. Las verificaciones de compatibilidad de esquemas detectan cambios incompatibles antes de que se apliquen.
# Create a preview workspace to experiment safely
rekor workspaces create-preview my-workspace --name "add-invoices"
# Agent works freely in preview — modify schemas, test with data
rekor collections upsert invoices \
--workspace my-workspace--add-invoices \
--schema '{"type":"object","properties":{"amount":{"type":"number"}}}'
# Human reviews and promotes to production
rekor workspaces promote my-workspace \
--from my-workspace--add-invoices --dry-run
# Apply when ready
rekor workspaces promote my-workspace \
--from my-workspace--add-invoices