A camada de dados que seus agentes realmente usam
Agentes de IA precisam de uma camada de dados compartilhada e persistente — não apenas para armazenar dados, mas para consultá-los, conectá-los e compartilhá-los com outros agentes e sistemas externos. Rekor dá aos agentes um sistema de registro estruturado que eles podem ler, escrever e colaborar — schemas definidos em tempo de execução, sem migrações, sem configuração.
// 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 }Três Primitivos
Tudo no Rekor é uma coleção, um registro ou um relacionamento entre registros.
JSON Schema que define um tipo de registro. Criada em tempo de execução, sem necessidade de migrações.
Documento JSON que segue o schema de uma coleção. Upsert por ID externo para idempotência.
Link tipado e direcionado entre dois registros com metadados. Entidade de primeira classe, consultável em qualquer direção.
# 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_2Três Interfaces
Desenvolvedores projetam schemas via CLI. Agentes operam em produção via MCP. Sistemas externos integram via REST.
Para desenvolvedores de agentes. Configure schemas, coleções e teste em ambientes de preview.
Para operadores de agentes. Agentes em produção fazem upsert/leitura de registros, upload/download de arquivos via 11 ferramentas.
Para integrações externas. Conecte sistemas externos ao Rekor via HTTP padrão.
# 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 Dados Central
Escritas atômicas e consistentes por workspace
Filtre, ordene, agregue e agrupe em escala
Até 1.000 operações atômicas em uma única requisição
# 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 supportedAnexos de Arquivos
Anexe arquivos a qualquer registro. Agentes fazem upload diretamente via URLs pré-assinadas e obtêm links de download assinados sob 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/Integrações
Integre com sistemas externos. Configure qualquer REST API como fonte de dados, receba webhooks e envie notificações quando os dados mudam.
Configure coleções para fazer proxy de qualquer REST API — agentes usam as mesmas ferramentas
Webhooks de entrada — sistemas externos enviam dados para dentro
Webhooks de saída — reaja a mudanças nos dados
# 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
Crie servidores MCP personalizados a partir dos seus schemas de dados. Construa conjuntos de ferramentas específicas para agentes especializados — sem código.
Agentes veem create_invoice, list_payments — não operações genéricas de banco de dados
Cada endpoint expõe exatamente as ferramentas que um agente precisa — nada mais
Definições de ferramentas geradas automaticamente a partir dos seus schemas de coleção
# 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/mcpAcesso e Governança
Defina escopo de chaves API para workspaces, coleções e permissões específicas. Marque workspaces com tags para organizar por cliente, projeto ou equipe.
Controle de acesso granular por workspace, coleção e permissão
Colaboração multi-usuário com workspaces compartilhados
Agrupe workspaces por cliente, projeto ou equipe
# 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>Ambientes
Agentes experimentam em workspaces de preview. Humanos revisam e promovem para produção. Verificações de compatibilidade de schema detectam mudanças incompatíveis antes de irem ao ar.
# 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