Tu política escrita decide, no el modelo.

Corpus aplica las reglas de tu equipo a los hechos de tu agente: mismos hechos, misma decisión, misma traza.

Pregunta de ejemplo

¿Puede el equipo comercial darle a este cliente un 18% de descuento?

Cambiá un hecho y el motor vuelve a correr; el curl devuelve el mismo hash.

solicitud
curl -X POST https://corpus.trysenda.xyz/v1/experts/deal-desk/query \  -H "Authorization: Bearer $CORPUS_KEY" \  -H "Content-Type: application/json" \  -d '{"goal":"discount_decision","facts":{"discount_pct":"18","deal_size_usd":"40000","customer_tier":"strategic"}}'
respuestaresolvedtraceHash 41173f97e161f239df5404ab9d6b98f1
La ruta que siguió esta decisiónejemplo
  1. Pregunta¿Puede el equipo comercial darle a este cliente un 18% de descuento?
  2. Hechos enviadosdiscount_pct = 18deal_size_usd = 40000customer_tier = strategic
  3. Regla que decidióstrategic_middiscount_pct <= 25 and deal_size_usd < 250000 and customer_tier = strategic
  4. Escrita enDeal desk policy v3
  5. RespuestaAprobadodiscount_decision = approved
{  "outcome": "resolved",  "conclusion": "approved",  "needs": null,  "reason": null,  "certainty": 1,  "expert": {"id":"59390982-f382-4817-b2c5-19903520001b","name":"deal-desk","version":1,"graphHash":"72fd4a683dd96ce63cdc29448f75f66e"},  "trace": [    {"id":"s1","parentId":null,"kind":"goal","concept":"discount_decision","provenance":{"kind":"caller","field":"discount_decision"},"expert":"deal-desk","expertVersion":1},    {"id":"s2","parentId":"s1","kind":"fact","concept":"discount_pct","value":"18","provenance":{"kind":"caller","field":"discount_pct"},"expert":"deal-desk","expertVersion":1},    {"id":"s3","parentId":"s1","kind":"fact","concept":"deal_size_usd","value":"40000","provenance":{"kind":"caller","field":"deal_size_usd"},"expert":"deal-desk","expertVersion":1},    {"id":"s4","parentId":"s1","kind":"fact","concept":"customer_tier","value":"strategic","provenance":{"kind":"caller","field":"customer_tier"},"expert":"deal-desk","expertVersion":1},    {"id":"s5","parentId":"s1","kind":"rule","concept":"discount_decision","value":"approved","detail":"discount_pct <= 25 and deal_size_usd < 250000 and customer_tier = strategic","provenance":{"kind":"rule","ruleId":"strategic_mid","expert":"deal-desk","version":1},"expert":"deal-desk","expertVersion":1},    {"id":"s6","parentId":"s5","kind":"document","concept":"discount_decision","value":"approved","provenance":{"kind":"document","documentId":"81234e2f-203f-4801-a514-064ed4733301","version":3,"title":"Deal desk policy"},"expert":"deal-desk","expertVersion":1}  ],  "traceHash": "41173f97e161f239df5404ab9d6b98f1",  "inputHash": "11105ef571be321fb181c501c40c00a7"}

Resultado resolved, hash de traza 41173f97e161f239df5404ab9d6b98f1

Cada afirmación cita tus documentos.

POST /v1/answers cita documento, versión y un fragmento verificado por código en cada afirmación, o rechaza con not_in_documents.

solicitud
curl -X POST https://corpus.trysenda.xyz/v1/answers \  -H "Authorization: Bearer $CORPUS_KEY" \  -H "Content-Type: application/json" \  -d '{ "question": "What is the daily meal allowance on a full travel day?" }'
respuesta
{  "mode": "knowledge",  "outcome": "resolved",  "answer": "The daily meal allowance is USD 55 per full travel day.",  "claims": [    {      "text": "The daily meal allowance is USD 55 per full travel day.",      "support": 0.97,      "citations": [        {          "title": "Travel and Expense Policy",          "version": 2,          "chunk": 4,          "quote": "The daily meal allowance is USD 55 per full travel day."        }      ]    }  ],  "unanswered": [],  "reason": null,  "confidence": 0.97}
ejemplo de nuestras evaluaciones
Evaluación por idioma
IdiomaResultado correctoRechazos correctosp50
Inglésset de modelos free, 2026-09-2616/176/613.7 s
Españolset de modelos free, 2026-09-2615/176/612.4 s
Portuguéspendiente

Preguntas con respuesta, parciales, sin respuesta, ambiguas y reemplazadas, corridas con nuestros modelos gratuitos de desarrollo.

Cada respuesta muestra los documentos de donde salió.

Corpus lee tus documentos en orden, se queda solo con lo que sostiene la pregunta y responde con la cita. Si ningún documento lo dice, no responde nada, y esa es la gracia.

ilustración
  1. Pregunta¿Cuál es el viático diario de comidas en un día completo de viaje?
  2. Documento leídoPolítica de viajes y gastos v1Dice USD 45, pero la v2 la reemplazó. No cuenta.
  3. Política de viajes y gastos v2La sostiene:El viático diario de comidas es de USD 55 por día completo de viaje.
  4. RespuestaUSD 55 por día completo de viajeCon su cita y la versión del documento, verificadas por código.

USD 55 por día completo de viaje

Nada se edita en el lugar.

Una decisión vieja se reproduce sobre la versión que leyó.

Política del deal deskejemplo

v2- Entre el 10% y el 25%: revisión, sea cual sea el nivel.

v3- Entre el 10% y el 25%, por debajo de $250,000: un cliente estratégico se aprueba automáticamente.

pasosobre v2sobre v3
1goal discount_decisiongoal discount_decision
2discount_pct = 18discount_pct = 18
3deal_size_usd = 40000deal_size_usd = 40000
4rule mid_review = approved_with_reviewcustomer_tier = strategic
5document v2rule strategic_mid = approved
6document v3

La misma pregunta sobre v3 diverge en el paso 4.

Reproducir la decisión de v2: {"matches":true,"divergedAt":null}

Expertos, para el equipo que escribe reglas.

Conceptos con tipo y reglas que citan versiones de documentos, armados con formularios y tablas.

discount_decisionover_capauto_approvedlarge_deal_reviewstrategic_midstandard_mid_reviewdiscount_pctdeal_size_usdcustomer_tierPolítica del deal desk v3

ejemplo

Cada publicación corre los tests
TestEsperaObtuvoResultado
8% se apruebaresolved: approvedresolved: approvedpasa
30% se rechazaresolved: refusedresolved: refusedpasa
18% sobre $300.000 pasa a revisiónresolved: approved_with_reviewresolved: approved_with_reviewpasa
18% sin nivel pide el nivelneeds_factsneeds_factspasa
Estratégico al 18% pasa a revisión, como decía v2resolved: approved_with_reviewresolved: approvedfalla

Publicación rechazada con tests_failed: 1 of 5 test(s) failed.

REST para tu código, MCP para tus agentes.

Un comando detrás de ambos; OpenAPI generado de los esquemas de las rutas.

claude mcp add --transport http corpus https://corpus.trysenda.xyz/mcp \  --header "Authorization: Bearer $CORPUS_KEY"
Ocho herramientas MCP
  • ask_corpus
  • query_expert
  • list_experts
  • replay_decision
  • search_documents
  • list_tags
  • get_document
  • create_document

El alcance vive en la key.

Una key sk_corpus_ por agente o script, visible una vez, guardada hasheada.

Expertos
Solo los expertos que nombra; cualquier otro devuelve out_of_scope.
Etiquetas
Solo se recuperan o citan documentos bajo sus etiquetas.
Ritmo
Su propio límite por minuto. Revócala y sus llamadas se detienen.

Se cobra por lo que usan tus agentes.

Una decisión es una llamada a query_expert, con cualquier resultado. Una respuesta es una llamada a ask_corpus por cada dos partes de su pregunta. Una página son 3.000 caracteres indexados. Leer, buscar y reproducir no cuentan.

Planes: decisiones, respuestas y páginas indexadas por mes, y precio en USD
BasicProEnterprise
Decisiones por mes25.000250.000A convenir
Respuestas por mes100400A convenir
Páginas indexadas por mes2501000A convenir
Mensual49 US$199 US$Desde 799 US$
Anual, dos meses gratis490 US$1990 US$Contrato anual
Obtener una API keyObtener una API keyEscribinos

Todas las funciones en todos los planes. No hay plan gratis. USD, sin impuestos. Cancelá cuando quieras; el acceso sigue hasta fin de período.

Cuánto cuesta tu volumen

Tokens por respuesta, supuestos
Decisiones al mes
18.000
Plan
Basic 49 US$ al mes
Por decisión
0,0027 US$
Mismas respuestas con anthropic/claude-opus-5.5
432 US$ al mes
Mismas respuestas con google/gemini-3.1-flash-lite
28,80 US$ al mes

Precios de lista, 2026-09-27, USD por millón de tokens. anthropic/claude-opus-5.5: 4 US$ entrada / 20 US$ salidagoogle/gemini-3.1-flash-lite: 0,2500 US$ entrada / 1,50 US$ salida

Un mes son 30 días.

Lo primero que pregunta un desarrollador.

¿La misma pregunta da siempre la misma respuesta?
Para las decisiones, sí: misma versión del experto y mismos hechos, mismo hash de traza. Las respuestas sobre documentos cambian de redacción; sus citas se verifican siempre.
¿No es recuperación sobre una base de datos vectorial?
Las respuestas usan búsqueda de texto completo y vectorial con un reranker, y descartan toda afirmación cuya cita no pase el código o el juez. Las decisiones no usan recuperación ni modelo.
¿Qué pasa cuando falta un hecho?
Recibís needs_facts, y needs nombra cada concepto que falta con su tipo. Decidí según el resultado, nunca según prosa.
¿Hay un plan gratuito?
No, ni prueba. El playground y la documentación muestran cada solicitud y respuesta antes de pagar.

Tu primera decisión, con su traza.

Escribí una política, publicá un experto, creá una key y hacé tu primera llamada.

¿Querés un agente que corra sobre esto? Line