Pular para o conteúdo
Para empresas que querem crescer com controle

Um sistema para operar sua empresa com IA.

Vendas, marketing, atendimento, operação, financeiro e inteligência trabalhando sobre o mesmo contexto — para sua empresa ganhar escala sem perder controle.

Sua empresa inteira. Uma operação. IA trabalhando.

Para empresas de qualquer setor que querem crescer com estrutura, controle e inteligência.

Painel ilustrativo do Sistema Centriu com sete frentes trabalhando: atendimento, comercial, operação, agentes, inteligência, conteúdo e marketing. Cada frente mostra o trabalho concluído ou o próximo passo.

Representação ilustrativa do trabalho em execução

O problema

Sua empresa não deveria operar em pedaços

Não é falta de ferramenta. É que cada ferramenta resolve um pedaço, e ninguém é dono do todo. O custo disso não aparece numa fatura — aparece no mês seguinte.

  • Sistemas que não se falam

    O mesmo dado é digitado de novo — e cada cópia conta uma história diferente.

  • Dados duplicados

    Ninguém sabe qual versão é a verdadeira na hora de decidir.

  • Conversas perdidas

    O cliente repete o contexto a cada canal e a cada pessoa.

  • Tarefas espalhadas

    O trabalho vive em planilhas, mensagens e na memória de alguém.

  • Decisões sem contexto

    A escolha é feita com o recorte que estava à mão, não com o que importava.

  • Automações desconectadas

    Cada ferramenta automatiza um pedaço e ninguém enxerga o todo.

Nenhum desses problemas se resolve comprando mais um software. Eles se resolvem quando a operação inteira passa a trabalhar sobre o mesmo contexto.

A resposta

Tudo trabalha sobre o mesmo contexto.

A Centriu não é uma coleção de produtos. É uma plataforma em que clientes, áreas e agentes leem e escrevem no mesmo lugar.

Cliente 360

Um contexto, não vários cadastros

Cada conversa, tarefa, campanha, cobrança e decisão fica ligada ao cliente e à operação — não a um sistema isolado.

  • Clientes
  • Comercial
  • Atendimento
  • Operação
  • Financeiro
  • Marketing
  • Inteligência
  • Agentes
  • Consultoria

As áreas abaixo são partes da mesma operação, não produtos separados. Elas compartilham conta, permissões e histórico.

IA que trabalha — não um chatbot ao lado

A inteligência artificial da Centriu participa da operação: entende contexto, prepara trabalho, executa rotinas e pede aprovação quando importa.

Entende o contexto

Lê a operação, o cliente e o histórico antes de propor qualquer coisa.

Prepara o trabalho

Redige, organiza, calcula e deixa pronto para revisão humana.

Executa rotinas

Roda o que é repetitivo dentro dos limites definidos pela empresa.

Recomenda a próxima ação

Cruza áreas, identifica prioridade e mostra o motivo da recomendação.

Pede aprovação

O que é sensível passa por uma pessoa antes de valer. Sem exceção silenciosa.

Mantém histórico e aprende

Registra o que aconteceu e usa o resultado para melhorar a próxima decisão.

O que a Centriu faz

Uma plataforma, várias frentes de trabalho. Tudo no mesmo contexto, com a IA participando do que dá para acelerar.

Comercial

CRM, pipeline, oportunidades, propostas, follow-up e automações.

Atendimento

WhatsApp, Instagram, Messenger, chat do site e e-mail no mesmo contexto.

Operação

Tarefas, responsáveis, prazos, aprovações, agenda e capacidade.

Financeiro

Contas, cobranças, caixa, fiscal, margem, IR, orçamento e inteligência econômica.

Marketing

Planejar, produzir, aprovar, publicar e medir conteúdo e campanhas.

Inteligência

Painéis, alertas, previsões, recomendações e leitura executiva.

Agentes

Rotinas executadas continuamente pela IA com controle e aprovação.

Consultoria

Diagnóstico, estratégia, transformação, acompanhamento e especialistas.

Para quem é

Para empresas que querem crescer — e crescer certo.

A Centriu faz sentido quando o volume aumenta e a estrutura precisa acompanhar. Não é sobre setor nem tamanho: é sobre a operação conseguir sustentar o próximo estágio.

As vendas crescem, mas o processo não acompanha.

As áreas trabalham separadas e o cliente sente.

A operação depende de pessoas específicas.

O financeiro ficou complexo e o caixa perde visibilidade.

O atendimento cresce em volume e em canais.

A IA entra sem contexto, controle ou histórico.

Se a empresa ainda não começou a crescer, a Centriu também ajuda a preparar a estrutura para o primeiro salto.

Ver a Centriu funcionando
Consultoria

Tecnologia sozinha não resolve uma operação mal desenhada.

A Centriu combina tecnologia, inteligência, método e acompanhamento. A consultoria diagnostica, desenha, implanta e acompanha — com evidências, não com apresentação.

A participação de especialistas depende da solução e do contrato. Não é um item incluído automaticamente em toda contratação, e não prometemos acompanhamento humano ilimitado.

Veja a Centriu funcionando na sua operação

Uma conversa para entender onde a sua operação perde tempo, dinheiro ou capacidade — e o que a Centriu faria primeiro.

Pular para o conteúdo

problema

AI Skill Test-Execution Integrity Automation: A Coin Flip Decided Pass or Fail, Then Copied the Answer Key

Centriu Axiom's Skill Library lets an organization define reusable AI "skills". These are versioned prompt templates. Each has defined test cases. They pair a sample input against an expected JSON output. This is meant to certify that a skill version behaves as intended before anyone trusts it in production. An internal audit found that running a test never actually executed anything. The pass/fail result was decided by `Math.random() > 0.2`. This was an unconditional 80% chance of passing. It did not matter what the prompt said or what a model would have produced. On a randomly-decided "pass," the code copied the test's own expected answer directly into the field meant to record what was actually obtained. The "result" was always a mirror of the answer key. Each of these fake runs was still logged to the audit trail as a genuine test execution. The fix makes `runTest` genuinely execute. It renders the skill version's real prompt template with the test's actual input values. It sends it to the same AI proxy the rest of the product uses at a deterministic temperature of zero. It compares the real response against the expected output field by field. It refuses with a specific, honest reason at every dead end. This includes no version, no prompt, an unparseable response, or an unreachable AI backend. It never fabricates a result.

AI Skill Test-Execution Integrity Automation: A Coin Flip Decided Pass or Fail, Then Copied the Answer Key

A pass/fail badge only means what the code behind it actually checked

A test suite with a green pass badge next to a version number is one of the most trusted signals in software. It's the kind of evidence a team relies on to decide whether something is safe to promote or ship. That trust is only as sound as what the code labeled "test" actually does the moment it runs. Nothing about a badge, a percentage, or a run-history entry can, by itself, distinguish a genuine comparison of a real output against a real expectation from a function that simply decided the outcome in advance and recorded a result to match. The entire value of a test suite lives in the gap between "looks like a test ran" and "a test genuinely ran." That gap is invisible from every normal vantage point except reading the function itself.

  • A test suite with a green pass badge next to a version number is one of the most trusted signals in software. It's the kind of evidence a team relies on to decide whether something is safe to promote or ship. That trust is only as sound as what the code labeled "test" actually does the moment it runs. Nothing about a badge, a percentage, or a run-history entry can, by itself, distinguish a genuine comparison of a real output against a real expectation from a function that simply decided the outcome in advance and recorded a result to match. The entire value of a test suite lives in the gap between "looks like a test ran" and "a test genuinely ran." That gap is invisible from every normal vantage point except reading the function itself.

How Centriu Axiom made the skill test actually test something

This gap surfaced from the same internal audit that rewrote Axiom's proof-of-action mechanism and its safety-scanner enforcement. This feature was not yet fully built but presented itself as complete. For the Skill Library specifically, the prior code inside `runTest` was, quoted directly: `const passed = Math.random() > 0.2`. This was an unconditional 80% pass rate. It had no relationship whatsoever to the skill's actual prompt, its version, or the specific test case being run. Worse, when that random roll happened to land on "pass," the code copied the test's own `expected_json`. This was the answer key. It copied it directly into `actual_json`, the field meant to record what the skill actually produced. The "obtained" result displayed to anyone reviewing that test run was, by construction, always identical to the expected result. It was never anything else. This didn't stay confined to the screen. Every run — genuine or not — was logged to the audit trail as a `skill_test_run` event carrying `passed: true`. This was a permanent record asserting that an evaluation had occurred and succeeded when nothing had been evaluated at all. Anyone deciding whether to promote a skill version to production based on that run history would have been deciding based on statistical noise dressed up as measurement.

The fix replaces the entire decision with a real execution path. `runTest` now looks up the actual skill version being tested and its real `prompt_template`. If that version doesn't exist, it fails immediately with an explicit message that nothing was executed. It does this rather than reporting any pass/fail result at all. If the version exists but its prompt template is empty, the function explicitly refuses. It says, "there is nothing to execute; define the prompt before testing." This is because reporting a pass or fail for a test with no defined behavior would recreate the exact failure mode this fix exists to eliminate. When a real prompt does exist, it's rendered by substituting each double-brace placeholder name with the corresponding value from the test's own `input_json`. Then it is sent to the same AI proxy the rest of the product already uses. It is explicitly configured for a temperature of zero and a JSON response format. This means deterministic, real generation, not a simulated one. If the AI backend itself fails to respond, that's recorded as an infrastructure failure with its own specific message. This is honestly distinguished from a skill genuinely failing its test. A temporary outage in the underlying AI proxy says nothing about whether the skill's own prompt is any good. If the response comes back but isn't valid JSON, the function fails with a message saying so. It still records the first 500 characters of what was actually returned for debugging. It does this rather than discarding it. Only once a real, parsed JSON response exists does the function compare it against the expected output. It uses a canonical, key-order-independent comparison. This walks every expected field and reports the specific ones that are missing or mismatched. It does this rather than a single undifferentiated "didn't match."

Critically, the recorded `actual_json` now always holds the real response the model produced. This includes on a pass, which is the exact case the old code fabricated by copying the answer key instead. The audit log entry logged for every run now reflects a genuine outcome. A real pass only happens when a real comparison found no divergence. A real failure has the real, specific reason otherwise. Confirmed directly against the current source: `Math.random()` is gone from the function entirely. `proxyGemini` is genuinely imported and called at temperature zero. A real, wired button in `SkillLibrary.tsx` (`handleRunAllTests`) still calls this exact path today. It runs every defined test case for a skill version in sequence.

What is actually built today

  • A real prompt-rendering step that substitutes each test's actual input values into the skill version's own prompt template. This is instead of deciding an outcome without ever constructing a prompt.

  • A genuine call to the same AI proxy the rest of the product uses. This is at a deterministic temperature of zero. It replaces an unconditional 80% random pass rate.

  • A field-by-field, key-order-independent comparison between the real response and the expected output. It reports the specific fields that diverge rather than a single pass/fail bit.

  • The recorded "obtained" result is always the model's real response. This includes on a pass, correcting the prior behavior of copying the expected answer into that same field whenever the random roll happened to succeed.

  • Explicit, honestly-labeled refusals for every dead end. This includes a missing skill version, an empty prompt template, a non-JSON response, or an unreachable AI backend. Each is distinguished from an actual skill failure.

  • An audit trail that only ever records a genuine pass or a genuine, specifically-explained failure. It never records a fabricated outcome for a test that did not execute.

What changes operationally

A pass recorded against a skill version now means a real prompt was rendered. It was sent to a real model. Its real response genuinely matched the expected output field by field. This is not that a random number happened to clear a fixed threshold. Anyone reviewing a skill's test history or deciding whether to trust a version in production is now reading a record of what actually happened. This includes the model's real output on every run. It is not a copy of the answer key standing in for it.

  • A pass recorded against a skill version now means a real prompt was rendered. It was sent to a real model. Its real response genuinely matched the expected output field by field. This is not that a random number happened to clear a fixed threshold. Anyone reviewing a skill's test history or deciding whether to trust a version in production is now reading a record of what actually happened. This includes the model's real output on every run. It is not a copy of the answer key standing in for it.

A prompt that was never actually checked, then genuinely was (illustrative scenario, not a real client)

A skill's test expects a JSON object with three specific fields. Before the fix, running that test would report passing roughly four times out of five. This was no matter how the prompt was worded. Nothing had ever actually asked a model to produce anything. After the fix, the same test genuinely sends the rendered prompt to the AI. If the response is missing one of the three expected fields, the test fails. The run's error message names exactly which field was absent. It does this rather than a generic "didn't match."

A prompt that was never actually checked, then genuinely was (illustrative scenario, not a real client)

How to start

Frequently asked questions

Did skill tests ever actually run before this fix?

No. The pass/fail outcome was decided by `Math.random() > 0.2`. This was an unconditional 80% pass rate. It had no relationship to the skill's actual prompt or the AI's actual behavior.

What happened to the "obtained result" field when a test randomly passed?

It was overwritten with the test's own expected answer. The field meant to show what the skill actually produced always mirrored the answer key on a "pass."

How does the comparison work now?

The skill version's real prompt is rendered with the test's actual input. It is sent to the AI proxy at temperature zero. The real JSON response is compared field by field against the expected output. It uses a canonical, key-order-independent comparison.

What happens if the AI backend itself fails during a test?

It's recorded as an infrastructure failure with its own distinct message. It is explicitly not counted as the skill itself failing its test.

What happens if a skill version has no prompt template defined yet?

The test explicitly refuses rather than reporting a pass or fail. There is nothing to execute, and the function says so directly.

What does Centriu Axiom cost?

It is sold by subscription with a published starting price. Exact current values are on the central pricing page.

See how Centriu Axiom actually certifies an AI skill before you trust it

Centriu Axiom's Skill Library lets an organization define reusable AI "skills". These are versioned prompt templates. Each has defined test cases. They pair a sample input against an expected JSON output. This is meant to certify that a skill version behaves as intended before anyone trusts it in production. An internal audit found that running a test never actually executed anything. The pass/fail result was decided by `Math.random() > 0.2`. This was an unconditional 80% chance of passing. It did not matter what the prompt said or what a model would have produced. On a randomly-decided "pass," the code copied the test's own expected answer directly into the field meant to record what was actually obtained. The "result" was always a mirror of the answer key. Each of these fake runs was still logged to the audit trail as a genuine test execution. The fix makes `runTest` genuinely execute. It renders the skill version's real prompt template with the test's actual input values. It sends it to the same AI proxy the rest of the product uses at a deterministic temperature of zero. It compares the real response against the expected output field by field. It refuses with a specific, honest reason at every dead end. This includes no version, no prompt, an unparseable response, or an unreachable AI backend. It never fabricates a result.