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
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.
Funciona com
Início rápido · Como funciona · Veja o que está fazendo · Documentação · Discussões
[!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:
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?
| Como | Comando |
|---|---|
| Um cliente, sem perguntas | npx @melra/cli@alpha setup --client cursor --write |
| Imprimir a configuração em vez de escrevê-la | npx @melra/cli@alpha setup --client codex |
| Instalar globalmente | npm 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é-compilada | baixe de releases, verifique com SHA256SUMS, depois node melra/dist/bin.js doctor |
| A partir do código-fonte | git 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ê instalou | npm 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
melrae o pacote PyPImelrasã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 | --client | Configuração que ele escreve |
|---|---|---|
claude-code | <project>/.mcp.json | |
claude-desktop | claude_desktop_config.json | |
codex | ~/.codex/config.toml | |
cursor | ~/.cursor/mcp.json | |
| 🟦 VS Code (modo agente do Copilot) | vscode | <project>/.vscode/mcp.json |
gemini | ~/.gemini/settings.json | |
windsurf | ~/.codeium/windsurf/mcp_config.json | |
zed | Zed settings.json (comentários preservados) | |
| 🧩 Cline | cline | Cline's cline_mcp_settings.json |
| ⬛ OpenCode | opencode | ~/.config/opencode/opencode.json |
| 👻 Kiro | kiro | ~/.kiro/settings/mcp.json |
| 🪿 Goose | goose | ~/.config/goose/config.yaml |
| ▶️ Continue | continue | <project>/.continue/mcpServers/melra.yaml |
| ⚡ Amp | amp | ~/.config/amp/settings.json |
| 🦞 OpenClaw | openclaw | ~/.openclaw/openclaw.json (mcp.servers) |
| ⚕️ Hermes Agent (Nous Research) | hermes | ~/.hermes/config.yaml (mcp_servers) |
copilot | ~/.copilot/mcp-config.json | |
| 🐉 Qwen Code | qwen | ~/.qwen/settings.json |
| 🅰️ Auggie (Augment) | auggie | ~/.augment/settings.json |
warp | ~/.warp/.mcp.json | |
junie | ~/.junie/mcp/mcp.json | |
| 🤖 Factory Droid | droid | ~/.factory/mcp.json |
| 🌙 Kimi Code | kimi | ~/.kimi-code/mcp.json |
| 🪁 Kilo Code | kilo | ~/.config/kilo/kilo.jsonc (comentários preservados) |
| 🧪 LM Studio | lmstudio | ~/.lmstudio/mcp.json |
| 🔌 Qualquer outra coisa | generic | imprime 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:
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:
| Status | Significado | Próximo passo |
|---|---|---|
🟢 verified_success | Foi executado e todas as verificações declaradas passaram | Concluído |
🟡 partial | Foi executado, mas a evidência não se confirmou | Veja a evidência e decida |
🔴 policy_blocked | Recusado antes de qualquer execução | Leia o motivo; a mesma solicitação será recusada novamente |
🔵 awaiting_approval | Uma alteração está aguardando sua frase exata | Aprove-a no agente que a planejou |
🟣 recovery_required | Uma alteração pode ou não ter acontecido | Verifique o mundo primeiro; nunca reexecute cegamente |
⚪ failed · cancelled · budget_exhausted | Não foi concluído | Seguro 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
|
No navegador:
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á:
| Modo | Significado |
|---|---|
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. |
enforced | Você 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 |
|---|---|
|
|
Ao lado das duas camadas com as quais é mais frequentemente confundido:
| Harness de agente | Servidor MCP | MELRA | |
|---|---|---|---|
| Loop de modelo e raciocínio | ✓ | ✗ | ✗ |
| Ferramentas | ✓ | ✓ | via adaptadores |
| Política independente de agente | geralmente ✗ | possível | núcleo |
| Estado de efeito durável | às vezes | raramente | núcleo |
| Idempotência entre reinicializações | varia | raro | núcleo |
| Recuperação de falhas sem replay | varia | raro | núcleo |
| Verificação independente | incomum | possível | núcleo |
| Recibos de evidência | incomum | possível | núcleo |
| Funciona entre agentes | ✗ | ✓ | ✓ |
| Isolamento de credenciais | varia | varia | núcleo |
| Limite de capacidade rígido | varia | geralmente ✗ | 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.
| Adaptador | O que é implementado | |
|---|---|---|
| 🗂️ | Arquivos | Leitura confinada à raiz, hash, escrita atômica, mover, mkdir e excluir, com defesas contra escape de symlink |
| 💻 | Terminal | Processos em primeiro plano e em segundo plano supervisionados sem shell, com listas de permissões, características, timeouts, entrada interativa, cancelamento e redação |
| 🌐 | Navegador | Sessõ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 |
| 🖥️ | Computador | Descoberta 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 |
| 📡 | HTTP | GET/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 operacional | Um 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.
| Ferramenta | Propósito |
|---|---|
melra_capabilities | Descobrir operações, suporte de plataforma, limites e postura de política |
melra_plan | Validar, persistir e verificar política de uma operação limitada |
melra_execute | Executar um plano aprovado e verificar o resultado declarado |
melra_task_status | Ler estado durável de tarefa |
melra_task_cancel | Cancelar cooperativamente trabalho pendente ou em execução |
melra_receipt | Recuperar evidência redigida e o certificado de execução |
melra_workflow_plan | Validar, pré-verificar, criptografar e persistir um workflow limitado |
melra_workflow_advance | Executar uma onda de agendamento pronta |
melra_workflow_status | Ler a projeção durável do workflow |
melra_workflow_cancel | Cancelar cooperativamente trabalho de workflow não terminal |
melra_workflow_control | Pausar, 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.12 | Evidência |
|---|---|
| Workflows limitados seguros contra reinicialização em nove tipos de nós | Um processo MCP real é interrompido, substituído e retomado em E2E |
| Payloads criptografados exatos de tarefa, workflow e resultado | Armazenamento 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ção | 8/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 leitura | Mesmo 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 recibo | Registro 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 classe | Uma mutação cuja resposta nunca chegou é relatada como desconhecida, não como falha |
| Agentes recebem capacidades, não credenciais | O 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 é conhecida | Força execution / state / independent / semantic em cada item de evidência |
| Verificação por canal independente | http_resource_matches executa através de POST e verifica através de um GET separado |
| Seus próprios tipos de evidência | Um 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 agente | melra 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 verificar | melra 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 autoral | GovBench: 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ê | Resultado | O que significa | |
|---|---|---|---|
| ✅ | Avaliações de segurança e execução | 52/52 | Cená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ável | 8/8 | 100% 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 utilidade | 362 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 LoCoMo | 0,7597 cobertura@20 | 1.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ético | 100/100 Recall@1 | Regressão de fatos plantados em 1.000 registros |
| 🌐 | Assentamento de página estática | 183,7 ms p50 vs 301,3 ms | 39% menos espera com leituras corretas idênticas de 10/10 |
| 🌐 | Assentamento de renderização lenta | 10/10 vs 0/10 corretos | Espera baseada em condição vê o DOM final; uma espera fixa de 300 ms lê cedo demais |
| 💻 | Terminal | 30/30 verificado | Lançamento de processo sem shell, 48,1 ms p50 na máquina medida |
| 🖥️ | Plano de controle de computador | 30/30 sondas | Descoberta 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
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
|
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
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 aqui | O que é |
|---|---|
| good first issue | Escopado, com os arquivos a tocar nomeados na issue |
| help wanted | Maior, ainda bem definido |
| Guia de contribuição | Como o pipeline se encaixa e quais arquivos uma mudança toca |
- Leia CONTRIBUTING.md e o Código de Conduta.
- Assine seus commits sob o DCO (
git commit -s). - Execute
pnpm checkantes de abrir um pull request; ele também verifica links, a tabela de variáveis de ambiente e a forma do CHANGELOG. - 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.