MELRA

Runtime de execução local para agentes MCP com verificações de política, aprovações escopadas, verificação, recibos duráveis e recuperação.

Documentação

MELRA logo

MELRA

Módulo de Execução em Layer para Robusta Autonomia

Seu agente de IA decide o que fazer. A MELRA garante que isso aconteça com segurança, exatamente uma vez e de forma comprovável.

Um kernel de autonomia de código aberto: a camada pela qual toda ação do agente passa a caminho de seus arquivos, terminal, navegador, desktop e APIs. Ela verifica cada ação contra suas regras, pede sua aprovação antes de qualquer coisa arriscada, executa exatamente uma vez, confirma que realmente funcionou e mantém um comprovante. Qualquer agente, qualquer modelo, as mesmas garantias.


CI status CodeQL status Dependency audit status Container build status

Latest release @melra/cli on npm Apache-2.0 license 52 of 52 deterministic evaluation scenarios passing Telemetry off

macOS Linux Windows Node.js 22 and 24 Python 3.11 to 3.14 Hardened Docker image



Funciona com   Claude Code Claude Desktop OpenAI Codex Cursor VS Code Gemini CLI Zed Windsurf OpenClaw Hermes Agent GitHub Copilot CLI and any MCP client



Início rápido  ·  Como funciona  ·  Veja o que está fazendo  ·  Documentação  ·  Discussões


MELRA governed execution flow

[!WARNING] A MELRA é um software alfa. O runtime local é testado de ponta a ponta, mas as APIs podem mudar antes do 1.0. Use um workspace isolado, mantenha as listas de permissões de domínio e comandos restritas e leia cada aprovação antes de concedê-la.


O que é a MELRA?

Os agentes de IA não apenas conversam mais. Eles editam arquivos, executam comandos, navegam por sites e chamam APIs em seu nome. Quatro perguntas vêm com isso, e a maioria dos agentes as responde de forma diferente, ou nem responde:

🛡️ É permitido?

Toda ação é verificada contra sua política e verificada novamente no momento em que é executada. Mudanças arriscadas aguardam sua aprovação exata.

✅ Realmente funcionou?

"Nenhum erro" não é sucesso. Uma ação conta apenas quando a evidência que você declarou se confirma: o arquivo existe, o código de saída é 0, a página diz o que deveria.

🔁 E se travar?

Toda ação é registrada antes de ser executada e é executada no máximo uma vez. Após uma falha, a MELRA resolve o que aconteceu em vez de repetir cegamente.

🧾 O que aconteceu?

Toda ação deixa um comprovante com hash e dados redigidos, para que você possa auditar o que foi executado, quem pediu e por que foi permitido.

A MELRA responde a essas perguntas uma vez, em um só lugar, para todos os agentes. Ela fica abaixo do seu agente, da mesma forma que um sistema operacional fica abaixo dos seus aplicativos:

Where MELRA sits: the model reasons, your agent runs the loop, MELRA owns every effect, and effect adapters do the work on your systems.

O LLM raciocina. O harness gerencia o loop. A MELRA controla o ciclo de vida do efeito. Troque o modelo ou o agente na sexta-feira; suas políticas, aprovações, credenciais, histórico e comprovantes continuarão lá na segunda-feira.


Início rápido

Você precisa do Node.js 22 ou mais recente. Um único comando configura tudo:

npx @melra/cli@alpha setup

Em um terminal, setup é um assistente curto. Ele escreve uma política local segura, encontra os aplicativos de agente na sua máquina, pergunta qual deve usar a MELRA e a escreve no arquivo de configuração do próprio aplicativo, preservando todo o resto (e salvando um .bak primeiro):

Which MCP client should use MELRA?

  1)   Claude Code                      detected: 'claude' on PATH
  2)   Cursor                           detected: config file found
  3)   Gemini CLI                       detected: config folder found
  ...

Choose 1-26 [1]: 1
Write it into ~/project/.mcp.json? [Y/n]

  ✓  Policy       ~/.melra/policy.json
  ✓  Claude Code  ~/project/.mcp.json

Next: Start claude in this workspace and approve the 'melra' server when it asks; 'claude mcp list' then shows it connected.

Em seguida, reinicie o aplicativo do seu agente (o Claude Code pede que você aprove o servidor de um projeto uma vez) e peça para ele fazer algo, por exemplo "use melra para mostrar as informações do sistema". É isso.

Prefere flags, um contêiner ou compilar a partir do código-fonte?
ComoComando
Um cliente, sem perguntasnpx @melra/cli@alpha setup --client cursor --write
Imprimir a configuração em vez de escrevê-lanpx @melra/cli@alpha setup --client codex
Instalar globalmentenpm install -g @melra/cli@alpha && melra setup
Contêiner (sem necessidade de Node)docker run --rm ghcr.io/xagi-lab/melra:alpha doctor
Versão pré-compiladabaixe de releases, verifique com SHA256SUMS, depois node melra/dist/bin.js doctor
A partir do código-fontegit clone https://github.com/XAGI-Lab/melra.git && cd melra && corepack enable && pnpm install --frozen-lockfile && pnpm build && pnpm melra setup
Um único arquivo, sem necessidade de Node (experimental)a partir de um checkout: pnpm build:sea, depois ./dist-sea/melra setup; veja executável único
Verifique o que você instalounpm audit signatures verifica as assinaturas do registro; a proveniência npm vinculando cada pacote à sua compilação chega com a próxima versão (veja pacotes npm)

Todo comando imprime uma saída legível em um terminal e JSON simples quando canalizado ou com --json, para que os scripts continuem funcionando. A MELRA cria <MELRA_HOME>/payload.key com permissões privadas na primeira inicialização; faça backup junto com os arquivos SQLite, pois perdê-lo torna os payloads persistidos ilegíveis. Veja instalação para todos os caminhos de instalação, variáveis de ambiente e a invocação Docker endurecida.

[!CAUTION] O pacote npm sem escopo melra e o pacote PyPI melra são projetos de terceiros não relacionados. Este projeto publica apenas sob o escopo npm @melra/: @melra/cli é a CLI. Instale a partir desse escopo, deste repositório ou das releases oficiais.


Funciona com seu agente

A MELRA fala o Model Context Protocol, então qualquer cliente MCP pode usá-la. Para estes, melra setup --client <name> escreve a configuração no formato e local do próprio cliente, e melra doctor informa se cada um está apontando para a MELRA:

Agente--clientConfiguração que ele escreve
Claude Codeclaude-code<project>/.mcp.json
Claude Desktopclaude-desktopclaude_desktop_config.json
OpenAI Codex CLIcodex~/.codex/config.toml
Cursorcursor~/.cursor/mcp.json
🟦 VS Code (modo agente do Copilot)vscode<project>/.vscode/mcp.json
Gemini CLIgemini~/.gemini/settings.json
Windsurfwindsurf~/.codeium/windsurf/mcp_config.json
ZedzedZed settings.json (comentários preservados)
🧩 ClineclineCline's cline_mcp_settings.json
⬛ OpenCodeopencode~/.config/opencode/opencode.json
👻 Kirokiro~/.kiro/settings/mcp.json
🪿 Goosegoose~/.config/goose/config.yaml
▶️ Continuecontinue<project>/.continue/mcpServers/melra.yaml
⚡ Ampamp~/.config/amp/settings.json
🦞 OpenClawopenclaw~/.openclaw/openclaw.json (mcp.servers)
⚕️ Hermes Agent (Nous Research)hermes~/.hermes/config.yaml (mcp_servers)
GitHub Copilot CLIcopilot~/.copilot/mcp-config.json
🐉 Qwen Codeqwen~/.qwen/settings.json
🅰️ Auggie (Augment)auggie~/.augment/settings.json
Warpwarp~/.warp/.mcp.json
Junie (JetBrains)junie~/.junie/mcp/mcp.json
🤖 Factory Droiddroid~/.factory/mcp.json
🌙 Kimi Codekimi~/.kimi-code/mcp.json
🪁 Kilo Codekilo~/.config/kilo/kilo.jsonc (comentários preservados)
🧪 LM Studiolmstudio~/.lmstudio/mcp.json
🔌 Qualquer outra coisagenericimprime o bloco mcpServers padrão

Construindo seu próprio agente? Use o TypeScript SDK ou o Python SDK. Ambos podem iniciar a MELRA ou conectar-se a uma já em execução via HTTP loopback ou um socket Unix privado. Para frameworks de agentes, veja os exemplos de frameworks: LangChain / LangGraph, o OpenAI Agents SDK, o Vercel AI SDK e os SDKs MCP oficiais.

[!NOTE] Um cliente nomeado é marcado como verificado apenas depois que o pacote publicado, não um checkout do código-fonte, passa por descoberta, planejamento, aprovação, execução, cancelamento e recuperação de comprovante nesse cliente. O status por cliente está em COMPATIBILITY.md.


Como funciona

Toda ação que um agente deseja realizar é chamada de efeito: file.write, terminal.run, browser.click, http.request e assim por diante. A MELRA faz exatamente nove coisas com cada efeito, divididas em duas chamadas para que nada seja executado no momento do planejamento:

The nine stages: melra_plan types, classifies, authorises, issues an approval challenge and records the task; melra_execute checks policy again, deduplicates, runs under a budget, verifies evidence and writes a receipt.

Aqui está uma alteração do início ao fim:

sequenceDiagram
    autonumber
    participant A as Your agent
    participant M as MELRA
    participant You
    participant W as Your system
    A->>M: melra_plan: write notes.md, evidence "file contains 'done'"
    M->>M: type, classify, check policy, record
    M-->>A: awaiting_approval + challenge "APPROVE 3f9c…"
    A->>You: May I write notes.md?
    You-->>A: yes
    A->>M: melra_execute with the exact phrase
    M->>M: policy again, not already done?
    M->>W: write the file (under a budget)
    M->>W: read it back, independently
    M-->>A: verified_success + receipt

O que o status final significa e o que um agente deve fazer em seguida:

StatusSignificadoPróximo passo
🟢 verified_successFoi executado e todas as verificações declaradas passaramConcluído
🟡 partialFoi executado, mas a evidência não se confirmouVeja a evidência e decida
🔴 policy_blockedRecusado antes de qualquer execuçãoLeia o motivo; a mesma solicitação será recusada novamente
🔵 awaiting_approvalUma alteração está aguardando sua frase exataAprove-a no agente que a planejou
🟣 recovery_requiredUma alteração pode ou não ter acontecidoVerifique o mundo primeiro; nunca reexecute cegamente
⚪ failed · cancelled · budget_exhaustedNão foi concluídoSeguro planejar novamente
Mostrar a solicitação que um agente realmente envia

O agente resolve "executar as verificações" em uma operação limitada, mais a evidência que provaria que funcionou:

{
  "goal": "Run the repository checks",
  "operation": { "kind": "terminal", "action": "run", "command": "pnpm", "args": ["check"] },
  "requiredEvidence": [{ "type": "exit_code", "value": 0 }]
}

A tarefa chega ao verified_success apenas se o processo sair com 0. Um processo que executa e sai com 1 concluiu a ação, mas falhou na evidência, então é relatado como partial. A MELRA nunca recebe um objetivo como "corrija o servidor de produção": isso exige julgamento, que pertence ao modelo. Um kernel que interpretasse frases seria um kernel cujas garantias dependessem de um modelo.

Quando um agente se conecta, a MELRA também envia a ele um guia curto sobre esse loop (o instructions do servidor MCP), para que um modelo saiba declarar evidências, ler o status e nunca tentar novamente cegamente um resultado desconhecido, sem que ninguém precise fazer engenharia de prompt.


Veja o que está fazendo

Você pode ver cada ação, sua decisão de política, sua evidência e seu comprovante, a partir do terminal ou do navegador. Nada aqui pode aprovar ou iniciar trabalho, e as frases de aprovação nunca são exibidas.

No terminal

$ melra status
MELRA 0.3.0-alpha.12  developer mode
  Tasks       3 total: 1 awaiting_approval,
              1 policy_blocked, 1 verified_success
  Waiting     1 waiting for approval
  HTTP        127.0.0.1:7457 not running

$ melra tasks
ID        STATUS             OPERATION     UPDATED
64199678  awaiting_approval  file.write    0s ago
ca4aec7a  policy_blocked     terminal.run  1s ago
a1285e0f  verified_success   system.info   1s ago

$ melra watch          # live, until Ctrl-C
6:07:21 PM  task 882cf55c  verified_success
6:07:22 PM  task f813364c  awaiting_approval

melra doctor verifica Node, SQLite, o navegador e a política, e informa quais dos seus aplicativos de agente apontam para a MELRA, com o único comando que corrige qualquer problema.

No navegador: melra serve --http --open

The MELRA console's Tasks view: a filterable list of tasks with status badges, and one task's policy decision, evidence and certificate.

Uma visão geral, uma lista de tarefas pesquisável e fluxos de trabalho duráveis com um stream de eventos ao vivo. Funciona em largura de celular e em claro e escuro, e é servido com uma Content-Security-Policy estrita.


Seguro por padrão

Padrão
🏠Somente local. stdio, HTTP em loopback atrás de um token, ou um socket Unix no modo 0600 que apenas o usuário do seu SO pode abrir. Sem conta e sem serviço hospedado.
📴Telemetria desativada.
✍️Mudanças exigem duas coisas: evidência declarada e uma frase de aprovação exata, expirável e com escopo de tarefa.
📁Caminhos permanecem dentro do seu workspace, incluindo diretórios de trabalho do terminal; escapes de symlink são recusados.
🚫Shells, sudo/su e nomes arbitrários de teclas de desktop são negados. Comandos de terminal devem estar na lista de permissões por nome.
🌐Endereços privados, link-local, loopback e de metadados de nuvem são bloqueados pelos próprios adaptadores de navegador e HTTP, após a resolução de DNS, antes de qualquer lista de permissões ser consultada.
⚠️O conteúdo de páginas da web é marcado como não confiável e nunca pode alterar políticas.
🔑Segredos são redigidos antes de qualquer armazenamento, e agentes recebem capacidades, nunca suas credenciais brutas.
⏱️Toda chamada é limitada por um orçamento e um sinal de cancelamento; um navegador travado falha com um erro claro em vez de travar indefinidamente.
Modo não seguro local e os dois modos de implantação

Cada linha acima pode ser desativada de uma vez com melra serve --unsafe-local (ou MELRA_UNHINGED=1): sem política, sem aprovações, sem exigência de evidência, sem confinamento de workspace, sem verificações de destino. O agente obtém exatamente o alcance que o usuário do seu SO tem. O modo se anuncia no stderr, em melra doctor e em melra_capabilities, e os recibos ainda registram o que foi executado. Veja modo não seguro local.

A lacuna honesta em uma instalação padrão é que o MELRA governa os efeitos para os quais é solicitado. Um agente que detém tanto um terminal MELRA quanto um nativo torna o kernel opcional. MELRA_MODE é onde você diz em qual situação está:

ModoSignificado
developer (padrão)O MELRA governa o que lhe é solicitado; o agente pode ter outro caminho, e você aceita isso. É por isso que o MELRA pode ser testado em trinta segundos.
enforcedVocê afirma que a alternativa desapareceu: o agente está em sandbox, não detém segredos privilegiados e alcança esses sistemas somente por aqui.

O MELRA não pode verificar essa afirmação de dentro do seu próprio processo, e não finge que pode; o isolamento é responsabilidade do sistema operacional. O que o modo reforçado faz é fechar todas as portas que o MELRA possui: --unsafe-local é recusado de imediato, nada vincula fora do loopback (um socket Unix 0600 é permitido), nenhum cliente pode se registrar e mode é carimbado em cada recibo. Para o lado do sistema operacional, examples/deploy tem um Docker run endurecido e uma unit do systemd, cada um verificado no CI, e melra doctor relata quais restrições estão realmente em efeito. Veja modos de implantação, o modelo de ameaças e a política de segurança.


Por que MELRA

Um LLM decide o que fazer. Um harness executa o loop que o leva até lá. Algo ainda precisa decidir se o efeito resultante é permitido, executá-lo exatamente uma vez, provar que funcionou e sobreviver a uma falha no meio. Hoje essa maquinaria é reconstruída dentro de cada harness de agente, e ela morre com o harness. O MELRA é essa maquinaria, extraída e tornada independente de agente.

🚫 Servidor de ferramentas típico✅ MELRA
  • Chamada de ferramenta executa imediatamente
  • Sucesso = nenhuma exceção lançada
  • Política, se houver, verificada uma vez
  • Mudanças parecem iguais a leituras
  • Saída é confiável
  • Sem registro durável
  • Regras vivem dentro de um agente
  • Planejar e executar são chamadas separadas
  • Sucesso = evidência declarada passou
  • Política verificada novamente no momento da execução
  • Mudanças exigem evidência e uma aprovação exata
  • Conteúdo de página é explicitamente não confiável
  • Recibo redigido + certificado de execução SHA-256
  • Regras sobrevivem ao agente que as usou

Ao lado das duas camadas com as quais é mais frequentemente confundido:

Harness de agenteServidor MCPMELRA
Loop de modelo e raciocínio✓✗✗
Ferramentas✓✓via adaptadores
Política independente de agentegeralmente ✗possívelnúcleo
Estado de efeito durávelàs vezesraramentenúcleo
Idempotência entre reinicializaçõesvariararonúcleo
Recuperação de falhas sem replayvariararonúcleo
Verificação independenteincomumpossívelnúcleo
Recibos de evidênciaincomumpossívelnúcleo
Funciona entre agentes✗✓✓
Isolamento de credenciaisvariavarianúcleo
Limite de capacidade rígidovariageralmente ✗parcialmente entregue

Muitos servidores MCP podem fazer essas coisas; isto não é uma afirmação de que nenhum deles faz. A diferença é que no MELRA elas são o contrato de execução, em vez de uma opção por ferramenta. O limite é parcialmente entregue: MELRA_MODE=enforced fecha todas as portas que o MELRA possui, mas o isolamento do SO que impede um harness de alcançar o sistema de arquivos ao redor do kernel é responsabilidade do operador; receitas de implantação endurecidas executáveis ainda estão por vir (#52).

O teste de recurso. Qualquer coisa que ainda faria sentido se a solicitação viesse de software determinístico comum pertence ao MELRA: autorização, idempotência, isolamento de credenciais, recuperação, verificação, histórico de efeitos. Otimização de prompt, memória de LLM, seleção de modelo, um planejador e personalidade de agente pertencem ao harness acima. É por isso que nada no caminho de execução do MELRA jamais chama um modelo.


O que ele pode fazer

Adaptadores de efeito

O kernel é o contrato; estas são suas implementações entregues. Cada uma passa pelo mesmo pipeline de política, aprovação, orçamento, verificação, recibo e certificado; um adaptador que o pulasse não seria um adaptador.

AdaptadorO que é implementado
🗂️ArquivosLeitura confinada à raiz, hash, escrita atômica, mover, mkdir e excluir, com defesas contra escape de symlink
💻TerminalProcessos em primeiro plano e em segundo plano supervisionados sem shell, com listas de permissões, características, timeouts, entrada interativa, cancelamento e redação
🌐NavegadorSessões Playwright isoladas, alvos DOM semânticos, artefatos limitados, política de rede e popup, perfis opcionais, estabilização baseada em condições, e toda chamada de navegador limitada para que uma página travada falhe claramente
🖥️ComputadorDescoberta de capacidades, inspeção de árvore de acessibilidade e OCR, e captura de tela, ponteiro, arrastar, teclado e rolagem governados em macOS, Windows e setups Linux/X11 suportados
📡HTTPGET/HEAD como leituras e todos os outros métodos como mutação no-máximo-uma-vez com aprovação, fixada ao endereço que a verificação de destino resolveu, com credenciais injetadas pelo kernel em vez de entregues ao chamador
🧠Memória operacionalUm serviço do kernel, não um adaptador: armazenamento SQLite com escopo do que o MELRA sabe sobre seus próprios efeitos, com classificação híbrida, frescor, expiração, substituição, proveniência e redação

Adaptadores de banco de dados, nuvem e SaaS estão projetados e no roadmap, não entregues hoje. Memória semântica sobre o usuário (preferências, histórico de conversa) pertence ao harness, não aqui.

Uma superfície de ferramentas deliberadamente pequena

Onze ferramentas na frente dos adaptadores e um controlador de workflow durável. A CLI, ambos os SDKs, HTTP em loopback e o socket Unix alcançam as mesmas onze operações; esta lista é o contrato do kernel, não uma API específica de MCP.

FerramentaPropósito
melra_capabilitiesDescobrir operações, suporte de plataforma, limites e postura de política
melra_planValidar, persistir e verificar política de uma operação limitada
melra_executeExecutar um plano aprovado e verificar o resultado declarado
melra_task_statusLer estado durável de tarefa
melra_task_cancelCancelar cooperativamente trabalho pendente ou em execução
melra_receiptRecuperar evidência redigida e o certificado de execução
melra_workflow_planValidar, pré-verificar, criptografar e persistir um workflow limitado
melra_workflow_advanceExecutar uma onda de agendamento pronta
melra_workflow_statusLer a projeção durável do workflow
melra_workflow_cancelCancelar cooperativamente trabalho de workflow não terminal
melra_workflow_controlPausar, retomar ou suspender uma execução sem perder seu lugar

Prefere nomes de ferramentas que seu modelo já conhece? Defina MELRA_HARNESS_TOOLS=1 e mais treze aparecem ao lado destas (read_file, write_file, run_command, browser_click, approve, …). Elas não são um segundo caminho: cada uma constrói uma tarefa comum e executa o mesmo pipeline. Veja nomes de ferramentas comuns.

Workflows duráveis e seguros contra reinicialização

Workflows compõem nós operation, approval, condition, parallel, bounded_loop, checkpoint, compensation, human_input e delegation, e todo efeito ainda viaja pelo pipeline de tarefas. Cada chamada de CLI abaixo é um novo processo, então isto exercita a persistência de reinicialização sem daemon:

melra workflow plan --definition examples/workflows/restart-safe.json   # save the id
melra workflow advance <workflow-id>
melra workflow advance <workflow-id>          # exits 3 with the write's approval challenge
melra workflow advance <workflow-id> --approval '<approval-id>:<exact phrase>'
melra workflow advance <workflow-id>
planned            stateVersion=2
running            stateVersion=4   inspect=verified_complete
awaiting_approval  stateVersion=7   phrase="APPROVE <digest prefix>"
running            stateVersion=10  write=verified_complete
verified_complete  stateVersion=14  checkpoint=verified_complete

Pare o processo após qualquer linha e o próximo comando retoma do mesmo MELRA_HOME. Leituras interrompidas podem tentar novamente; mudanças interrompidas nunca são silenciosamente repetidas. Elas são resolvidas por re-observação, ou estacionam em recovery_required.

Tudo entregue nesta versão
Entregue em 0.3.0-alpha.11 e 0.3.0-alpha.12Evidência
Workflows limitados seguros contra reinicialização em nove tipos de nósUm processo MCP real é interrompido, substituído e retomado em E2E
Payloads criptografados exatos de tarefa, workflow e resultadoArmazenamento AES-256-GCM mais verificações de vazamento de texto simples em SQLite/WAL e projeções públicas
Recuperação sem replay silencioso de mutação8/8 cenários de recuperação determinísticos, zero duplicatas, zero falso sucesso
HTTP em loopback, um socket Unix 0600, um fluxo de eventos e um console somente leituraMesmo runtime que stdio, token em cada rota, 405 em qualquer não-GET para a API JSON
Um cliente se autentica e é nomeado em cada reciboRegistro OAuth 2.1 desde a aprovação até um token
Dois modos de implantação--unsafe-local e um bind não-loopback são recusados sob MELRA_MODE=enforced
Chamadas HTTP e de API como efeito de primeira classeUma mutação cuja resposta nunca chegou é relatada como desconhecida, não como falha
Agentes recebem capacidades, não credenciaisO kernel detém o segredo e o escopa por host e capacidade; concessões carregam um tamanho e uma expiração
Evidência diz como é conhecidaForça execution / state / independent / semantic em cada item de evidência
Verificação por canal independentehttp_resource_matches executa através de POST e verifica através de um GET separado
Seus próprios tipos de evidênciaUm verificador registrado responde à evidência { "type": "custom" }; o planejamento recusa um não registrado, e evidência personalizada é sempre a força mais fraca
Configuração para 26 aplicativos de agentemelra setup escreve o formato de cada aplicativo; Claude Code, OpenCode e Hermes Agent conectados a uma versão empacotada em um Mac real
Isolamento de SO que você pode verificarmelra doctor relata capacidades, no_new_privs, seccomp e uma raiz somente leitura; CI o executa sob as receitas endurecidas de Docker e systemd
Um benchmark de governança autoralGovBench: 362 casos através do runtime real, segurança 312/312, utilidade 50/50

Veja o CHANGELOG completo.


Evidência e benchmarks

Os números vêm de scripts commitados e artefatos JSON, com hashes de conjuntos de dados e limites de reivindicações. Eles são medições de componentes, não uma afirmação de que o MELRA é "o melhor" ou que benchmarks diferentes são comparáveis.

O quêResultadoO que significa
✅Avaliações de segurança e execução52/52Cenários determinísticos de política, concessão de capacidade, escopo de credenciais, travessia, terminal, memória, computador, HTTP, cancelamento e verificação
🔁Avaliação de núcleo durável8/8100% de recuperação esperada, 0 execução duplicada, 0 sucesso falso, 100% de consistência de eventos
🛡️GovBench (autoral)312/312 segurança, 50/50 utilidade362 casos sem modelo através do runtime real: contenção, integridade de aprovação, honestidade de verificação, exatamente-uma-vez, redação e falsos positivos em trabalho legítimo. Sua primeira execução encontrou dois bugs reais (293/307), ambos corrigidos; a governança adiciona cerca de 0,5–1,4 ms por ação
🧠Recuperação LoCoMo0,7597 cobertura@201.982 perguntas com evidências, com zero chamadas de modelo, incorporação ou rede; reexecutado em 2026-10-14 e idêntico em todas as métricas
🧠Recall sintético100/100 Recall@1Regressão de fatos plantados em 1.000 registros
🌐Assentamento de página estática183,7 ms p50 vs 301,3 ms39% menos espera com leituras corretas idênticas de 10/10
🌐Assentamento de renderização lenta10/10 vs 0/10 corretosEspera baseada em condição vê o DOM final; uma espera fixa de 300 ms lê cedo demais
💻Terminal30/30 verificadoLançamento de processo sem shell, 48,1 ms p50 na máquina medida
🖥️Plano de controle de computador30/30 sondasDescoberta de adaptador p50 de 0,032 ms; isso não é uma pontuação de sucesso de tarefa de desktop

Artefatos brutos: microbenchmarks do núcleo, LoCoMo e GovBench.

O repositório também contém um harness de agente de navegador pré-registrado (MiniWoB-125 e o subconjunto registrado WebArena-Verified Hard-30) cujos IDs de tarefa, revisões upstream e hashes de conjuntos de dados estão congelados. Sua pontuação ainda não é reivindicada: será publicada apenas após uma execução completa de denominador fixo passar pelo portão de publicação. O MELRA não executou uma submissão oficial OSWorld, WebArena ou LongMemEval.

Reproduza as pontuações
# the full validation gate
pnpm check && pnpm evals && pnpm e2e && pnpm pack:check && pnpm security:audit
pnpm --filter @melra/evals evaluate:durable-core -- --publishable

# memory, browser, terminal and computer microbenchmarks
pnpm benchmark:core

# governance benchmark: 362 model-free cases, loopback fixtures only
pnpm benchmark:govbench

# LoCoMo (dataset not vendored: CC BY-NC 4.0)
git clone https://github.com/snap-research/locomo.git /tmp/locomo
pnpm benchmark:locomo -- --dataset /tmp/locomo/data/locomo10.json \
  --output docs/research/results/locomo-retrieval.json

# browser-agent harness contract checks (no model, no network)
pnpm benchmark:browser:check
pnpm benchmark:browser:verify-upstream

# hardened container and a real MCP smoke test
docker build -t melra:local . && docker run --rm melra:local doctor && pnpm docker:smoke

O conjunto MiniWoB também precisa dos ativos MiniWoB++ fixados e de uma configuração de agente; veja o índice de pesquisa e a metodologia. Saídas de execução (HAR, capturas de tela, vídeo, transcrições) são ignoradas pelo git e nunca devem ser commitadas.


Para desenvolvedores

SDKs

Pacote
TypeScript@melra/sdk
Pythonmelra (tipado, 3.11–3.14)
📜 Contratos JSON@melra/protocol, @melra/receipt-schema

Ambos os SDKs iniciam um servidor local ou conectam-se a um servidor em execução via HTTP ou socket Unix. O token é sempre passado explicitamente, e HTTP simples para um host remoto é recusado a menos que você opte por isso.

CLI em resumo

ObjetivoComando
Configuração guiadamelra setup
Verificar esta máquinamelra doctor
Servir (stdio / HTTP / socket)melra serve · --http --open · --socket <path>
Ver atividademelra tasks · watch · status
Executar uma tarefamelra run --request task.json
Aprovar uma tarefa planejada por um agentemelra approve <task-id>
Inspecionar um recibomelra inspect <task-id>
Testar uma políticamelra policy test --request task.json
Verificar conformidademelra conformance
Mapa do repositório
apps/cli/                   CLI and stdio entrypoint

kernel services
packages/protocol/          strict task, workflow, event and operation schemas
packages/runtime-core/      task/workflow lifecycle, events, recovery
packages/policy-core/       local policy and scoped approvals
packages/storage-sqlite/    transactional tasks, workflows, events, evidence
packages/verifier-core/     deterministic evidence predicates
packages/receipt-schema/    receipts and execution certificates
packages/memory/            operational memory: scoped retrieval and lifecycle
packages/server/            runtime composition, MCP, loopback HTTP and Unix socket

reference effect adapters
packages/file-runtime/      confined filesystem operations
packages/terminal-runtime/  shell-free process supervision
packages/browser-runtime/   isolated browser automation and stable-DOM wait
packages/computer-runtime/  governed local computer-use adapters
packages/http-runtime/      governed HTTP and API calls

clients and evidence
packages/sdk-ts/            TypeScript client SDK
sdk-py/                     Python client SDK
benchmarks/browser-agent/   pre-registered browser-agent evaluation harness
evals/                      safety and durable crash-recovery evaluations
scripts/                    benchmark and release checks
docs/research/              methods, findings and raw results
examples/                   runnable task examples

O MELRA é orientado por capacidades, não restrito a linguagens: Rust, Go, Swift, C# ou outra linguagem pode ser adicionada quando a medição mostrar um benefício real e o mesmo conjunto de conformidade passar.

Exemplos executáveis cobrem uma tarefa de sistema somente leitura, uma escrita de arquivo verificada, uma verificação de terminal, inspeção de navegador, memória com escopo, descoberta de capacidade de computador, uma chamada de API governada, verificação independente e um fluxo de trabalho seguro contra reinicializações.


Documentação

📦 Instalação e configuração do cliente🧭 Capacidades e limites🏛️ Arquitetura
🔬 Pesquisa e benchmarks🔗 Compatibilidade✅ Evidências de validação
🛡️ Modelo de ameaças🎖️ Níveis de conformidade🗺️ Roteiro
📝 Changelog🤝 Guia de contribuição🔐 Política de segurança

Contribuindo

Código, adaptadores, integrações de clientes, harnesses de benchmark, predicados de verificador, documentação e análise de ameaças são todos bem-vindos.

Comece aquiO que é
good first issueEscopado, com os arquivos a tocar nomeados na issue
help wantedMaior, ainda bem definido
Guia de contribuiçãoComo o pipeline se encaixa e quais arquivos uma mudança toca
  1. Leia CONTRIBUTING.md e o Código de Conduta.
  2. Assine seus commits sob o DCO (git commit -s).
  3. Execute pnpm check antes de abrir um pull request; ele também verifica links, a tabela de variáveis de ambiente e a forma do CHANGELOG.
  4. Reporte vulnerabilidades através do relatório privado de vulnerabilidades, nunca em uma issue pública.

Licença

Software e documentação são licenciados sob a Apache License 2.0. O logotipo oficial e a arte de destaque são licenciados sob CC BY-ND 4.0. Conjuntos de dados de benchmarks de terceiros mantêm suas próprias licenças e não estão incluídos neste repositório.


Construído abertamente por XAGI Labs.

Ativos da marca MELRA © XAGI Labs Private Limited, licenciados CC BY-ND 4.0.