Sua política escrita decide, não o modelo.

O Corpus aplica as regras da sua equipe aos fatos que seu agente envia: mesmos fatos, mesma decisão, mesmo rastro.

Pergunta de exemplo

A equipe comercial pode dar a este cliente um desconto de 18%?

Mude um fato e o motor roda de novo; o curl devolve o mesmo hash.

requisição
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"}}'
respostaresolvedtraceHash 41173f97e161f239df5404ab9d6b98f1
A rota que esta decisão seguiuexemplo
  1. PerguntaA equipe comercial pode dar a este cliente um desconto de 18%?
  2. Fatos enviadosdiscount_pct = 18deal_size_usd = 40000customer_tier = strategic
  3. Regra que decidiustrategic_middiscount_pct <= 25 and deal_size_usd < 250000 and customer_tier = strategic
  4. Escrita emDeal desk policy v3
  5. RespostaAprovadodiscount_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 rastro 41173f97e161f239df5404ab9d6b98f1

Cada afirmação cita os seus documentos.

POST /v1/answers cita documento, versão e um trecho conferido por código em cada afirmação, ou recusa com not_in_documents.

requisição
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?" }'
resposta
{  "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}
exemplo das nossas avaliações
Avaliação por idioma
IdiomaResultado corretoRecusas corretasp50
Inglêsconjunto de modelos free, 2026-09-2616/176/613.7 s
Espanholconjunto de modelos free, 2026-09-2615/176/612.4 s
Portuguêspendente

Perguntas com resposta, parciais, sem resposta, ambíguas e substituídas, rodadas com os nossos modelos gratuitos de desenvolvimento.

Cada resposta mostra os documentos de onde saiu.

O Corpus lê seus documentos em ordem, fica só com o que sustenta a pergunta e responde com a citação. Se nenhum documento diz, não responde nada, e esse é o ponto.

ilustração
  1. PerguntaQual é a diária de refeições em um dia completo de viagem?
  2. Documento lidoPolítica de viagens e despesas v1Diz USD 45, mas a v2 a substituiu. Não vale.
  3. Política de viagens e despesas v2Sustenta a resposta:A diária de refeições é de USD 55 por dia completo de viagem.
  4. RespostaUSD 55 por dia completo de viagemCom sua citação e a versão do documento, conferidas por código.

USD 55 por dia completo de viagem

Nada é editado no lugar.

Uma decisão antiga é reproduzida na versão que leu.

Política do deal deskexemplo

v2- Entre 10% e 25%: revisão, seja qual for o nível.

v3- Entre 10% e 25%, abaixo de $250.000: um cliente estratégico é aprovado automaticamente.

passosobre a v2sobre a 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

A mesma pergunta sobre a v3 diverge no passo 4.

Reproduzir a decisão da v2: {"matches":true,"divergedAt":null}

Especialistas, para a equipe que escreve regras.

Conceitos com tipo e regras que citam versões de documentos, montados com formulários e tabelas.

discount_decisionover_capauto_approvedlarge_deal_reviewstrategic_midstandard_mid_reviewdiscount_pctdeal_size_usdcustomer_tierPolítica do deal desk v3

exemplo

Toda publicação roda os testes
TesteEsperaObteveResultado
8% é aprovadoresolved: approvedresolved: approvedpassa
30% é recusadoresolved: refusedresolved: refusedpassa
18% sobre $300.000 vai para revisãoresolved: approved_with_reviewresolved: approved_with_reviewpassa
18% sem nível pede o nívelneeds_factsneeds_factspassa
Estratégico a 18% vai para revisão, como dizia a v2resolved: approved_with_reviewresolved: approvedfalha

Publicação recusada com tests_failed: 1 of 5 test(s) failed.

REST para o seu código, MCP para os seus agentes.

Um comando por trás dos dois; OpenAPI gerado dos schemas das rotas.

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

O escopo mora na key.

Uma key sk_corpus_ por agente ou script, mostrada uma vez, guardada com hash.

Especialistas
Só os especialistas que ela nomeia; qualquer outro devolve out_of_scope.
Tags
Só documentos sob as suas tags são recuperados ou citados.
Ritmo
Limite próprio por minuto. Revogue-a e as chamadas dela param.

Cobrado pelo que os seus agentes usam.

Uma decisão é uma chamada a query_expert, com qualquer resultado. Uma resposta é uma chamada a ask_corpus a cada duas partes da pergunta. Uma página são 3.000 caracteres indexados. Ler, buscar e reproduzir não contam.

Planos: decisões, respostas e páginas indexadas por mês, e preço em USD
BasicProEnterprise
Decisões por mês25.000250.000A combinar
Respostas por mês100400A combinar
Páginas indexadas por mês2501.000A combinar
MensalUS$ 49US$ 199A partir de US$ 799
Anual, dois meses grátisUS$ 490US$ 1.990Contrato anual
Obter uma API keyObter uma API keyFale conosco

Todos os recursos em todos os planos. Não há plano grátis. USD, sem impostos. Cancele quando quiser; o acesso segue até o fim do período.

Quanto custa o seu volume

Tokens por resposta, supostos
Decisões por mês
18.000
Plano
Basic US$ 49 por mês
Por decisão
US$ 0,0027
Mesmas respostas com anthropic/claude-opus-5.5
US$ 432 por mês
Mesmas respostas com google/gemini-3.1-flash-lite
US$ 28,80 por mês

Preços de tabela, 2026-09-27, USD por milhão de tokens. anthropic/claude-opus-5.5: US$ 4 entrada / US$ 20 saídagoogle/gemini-3.1-flash-lite: US$ 0,2500 entrada / US$ 1,50 saída

Um mês são 30 dias.

O que um desenvolvedor pergunta primeiro.

A mesma pergunta dá sempre a mesma resposta?
Para as decisões, sim: mesma versão do especialista e mesmos fatos, mesmo hash de rastro. As respostas sobre documentos mudam de redação; as citações são sempre verificadas.
Isso não é recuperação sobre um banco de dados vetorial?
As respostas usam busca de texto completo e vetorial com um reranker, e descartam toda afirmação cuja citação não passe pelo código ou pelo juiz. As decisões não usam recuperação nem modelo.
O que acontece quando falta um fato?
Você recebe needs_facts, e needs nomeia cada conceito que falta com o seu tipo. Decida pelo resultado, nunca pela prosa.
Existe um plano gratuito?
Não, nem teste. O playground e a documentação mostram cada requisição e resposta antes de pagar.

A sua primeira decisão, com o seu rastro.

Escreva uma política, publique um especialista, crie uma key e faça a sua primeira chamada.

Quer um agente rodando sobre isso? Line