Esta página é uma tradução da documentação em inglês. Comandos, identificadores e exemplos permanecem iguais. Runtime 7.24.5 · SDK 2.6.9. Original em inglês
Reteste de clientes AX Code e OpenCode: 19 de setembro de 2026
Status: Ativo Escopo: instantâneo diagnóstico medido Última revisão: 2026-09-19 Responsável: runtime do ax-code
Este reteste usa o código-fonte do AX Code 62895cf40a39e0ebd4afec0afa21044e9871aa0b, depois da correção local de prefixo (42908b46a) e das adições de provedor MTPLX/oMLX. Todas as seis combinações de cliente e backend usam o mesmo artefato Qwen3.8 27B AXQ de 6 bits com MTP ativado em um Apple M3 Max, 128 GiB. As medições anteriores permanecem evidência histórica; os pacotes de modelo, os prompts, os limites de token e as condições de cache diferem. Isto não é uma estimativa controlada de antes e depois da aceleração da correção de prefixo.
Velocidade da saída entregue
Cada célula é primeira tarefa / tarefa repetida, em tokens/s. São observações únicas, não medianas. A tarefa repetida inicia uma nova sessão de CLI contra o mesmo processo de backend; não se assume que ela acerte um cache. A carga e a espera pela primeira saída ficam fora desta taxa.
| Cliente | AX Engine | MTPLX | oMLX |
|---|---|---|---|
| AX Code | 11.73 / 13.60 | 18.73 / 19.69 | 17.48 / 16.60 |
| OpenCode | 22.49 / 18.98 | 27.91 / 26.35 | 20.33 / 20.64 |
A estimativa é (completion tokens - 1) / (last output payload time - first output payload time). A decodificação especulativa pode emitir vários tokens em uma carga, então isto é uma estimativa de entrega do cliente, não o contador nativo de decode do backend. Também não mede a vazão do pedido completo.
Tempo de pedido, carga e aceitação
NR significa que o servidor não relatou uso de tokens em cache; não afirma zero. O tempo da primeira carga começa quando o proxy local de gravação recebe o pedido do modelo. O tempo de parede da CLI também inclui a inicialização e a conclusão do cliente. A tarefa pede um cache LRU genérico e independente em TypeScript com get, set, delete e clear, sem execução de ferramenta nem edições de arquivo.
| Backend | Cliente | Tarefa | Tokens de entrada | Tokens de saída | Tokens em cache | Primeira carga (s) | Parede da CLI (s) | Verificações de código |
|---|---|---|---|---|---|---|---|---|
| AX Engine | AX Code | Primeira | 29,896 | 268 | NR | 197.78 | 231.58 | Aprovada |
| AX Engine | AX Code | Repetição | 29,896 | 268 | 29696 | 7.22 | 33.34 | Aprovada |
| AX Engine | OpenCode | Primeira | 17,316 | 216 | NR | 100.86 | 112.83 | Aprovada |
| AX Engine | OpenCode | Repetição | 17,316 | 228 | NR | 116.03 | 129.90 | Aprovada |
| MTPLX | AX Code | Primeira | 36,708 | 285 | 0 | 246.67 | 269.43 | Aprovada |
| MTPLX | AX Code | Repetição | 36,708 | 285 | 36708 | 0.04 | 20.48 | Aprovada |
| MTPLX | OpenCode | Primeira | 18,729 | 276 | 0 | 108.67 | 121.00 | Aprovada |
| MTPLX | OpenCode | Repetição | 18,729 | 276 | 18729 | 0.08 | 12.77 | Aprovada |
| oMLX | AX Code | Primeira | 33,124 | 275 | 0 | 212.25 | 235.62 | Aprovada |
| oMLX | AX Code | Repetição | 33,124 | 232 | 32768 | 4.41 | 23.34 | Aprovada |
| oMLX | OpenCode | Primeira | 17,316 | 213 | 0 | 118.03 | 130.88 | Aprovada |
| oMLX | OpenCode | Repetição | 17,316 | 261 | 16384 | 7.73 | 22.91 | Aprovada |
As verificações de aceitação de código cobrem chaves ausentes, busca de valor, despejo LRU, entradas retidas, atualização de recência, exclusão de chaves existentes e ausentes, limpeza, identidade de chave de objeto e valores falsos. Os arquivos gerados também recebem verificação estrita de TypeScript. Estas verificações limitadas não estabelecem qualidade ampla de programação. Todas as linhas de medição retêm a saída gerada e o resultado de validação; falhas não são substituídas em silêncio por novas tentativas mais rápidas.
Condições de MTP e de runtime
- AX Engine 7.4.0:
--mlx-mtp-policy required, indicadores do runtime local administrado, aceleração n-gram e empilhamento n-gram desativados. As métricas do processo ao vivo mostramax_engine_mlx_mtp_model_policy_active=1com contadores de tokens de rascunho e aceitos diferentes de zero. O instantâneo do AX Code segue o aquecimento; o instantâneo do OpenCode segue a primeira tarefa. Ambos incluem o aquecimento e não são totais de aceitação por tarefa. As contagens de rascunho por tarefa do AX Code não foram retidas. - MTPLX 2.11.3 / MLX 0.32.2:
--generation-mode mtp --depth 3explícito; a saúde ao vivo relatageneration_mode: mtperuntime_mode: Sustained MTP. Reescritas de agente e o cache de sessão em SSD estão desligados; o banco de sessão nativo em memória permanece ativado. Aquecimentos nativos de inicialização e de kernel são retidos e ficam fora do tempo. O aquecimento de carga não relacionado concluiu; o status do aquecimento em segundo plano na admissão fica retido nos dados, em vez de ser assumido como concluído. - oMLX 0.6.4 / MLX 0.32.0: Lightning MTP ativado, profundidade 3, carga de modelo somente texto, concorrência um. Os logs por geração registram aceitação de rascunho e execução por profundidade para o aquecimento e as duas tarefas. O importador de sidecar a montante renomeia 15 tensores; o dtype, a forma e os bytes de carga permanecem idênticos ao sidecar AXQuant original. Os pesos do backbone permanecem sem alteração.
- Artefato:
AutomatosX/AX-Qwen3.8-27B-MLX-AXQ-6bit-MTP, revisão4d36d652c21590f6813495351c3baf5fca5b3831. Os metadados do artefato declaram profundidade MTP 1; a profundidade recorrente 3 aqui segue a política de runtime selecionada ou o experimento explícito e não estende a certificação do artefato. O pacote de modelo Optimized-Speed não é usado neste reteste. - A versão do OpenCode é 1.18.31. Todos os backends e clientes rodam em série. Cada par de cliente e backend inicia um processo novo e um cache de tarefa isolado, seguido de um aquecimento de carga de modelo não relacionado, limitado a 64 tokens de saída. A carga do modelo e esse aquecimento ficam fora da tabela; a primeira tarefa ainda paga o prefill frio. O controle do ventilador permanece no padrão, e os arquivos do backbone residem em armazenamento SMB.
O que está alinhado e o que permanece diferente
Os dois clientes recebem as mesmas instruções completas e congeladas do projeto, a mesma tarefa do usuário e quatro ferramentas permitidas (glob, grep, read, skill). A CLI de código-fonte do AX Code usa os IDs reais de provedor ax-engine, mtplx e omlx; o AX Engine usa o contrato verificado de anexação em loopback, com um backend iniciado à parte que carrega indicadores administrados. Isto não mede o tempo da interface administrada de download e inicialização. O OpenCode usa o caminho de provedor compatível com OpenAI. A configuração de projeto fica desativada e cada cliente tem ajustes e estado isolados. Prompts nativos do cliente, esquemas de ferramenta e cabeçalhos de sessão permanecem intactos; portanto as contagens de tokens renderizados e o comportamento de cache diferem.
Um proxy local de gravação alinha temperature 0.55, top-p 1, top-k/min-p 0, penalidade de repetição 1, penalidades de presença e de frequência 0, seed 0, thinking desligado e um teto de saída de 1,024 tokens. Ele força tool_choice: none para esta tarefa sem ferramenta. Os dois clientes estão configurados para um contexto de 65,536 tokens. Cada linha é conferida quanto ao instantâneo completo de instruções, aos quatro nomes de ferramenta, à amostragem comum, a um pedido, à saída bem-sucedida da CLI, à parada natural e à ausência de execução de ferramenta.
Os prompts mais longos do AX Code podem aumentar tanto o prefill quanto o trabalho de atenção durante a geração. Comprimentos de resposta, conteúdo, templates de runtime, kernels e políticas de cache diferentes impedem tratar estas tabelas como um benchmark de sobrecarga de cliente com tokens iguais. MTP ativo não garante 30–40 tokens/s para um contexto completo de programação. Para isolar a sobrecarga do cliente ou o efeito da correção de prefixo, reproduza à parte pedidos serializados e IDs de token idênticos, com saída e condições de cache controladas.
Este relatório não altera comportamento de nuvem, de GPU privada, de provedor de CLI nem do AX Trust. Veja o guia de configuração do runtime local para as instruções de conexão e os dados de medição higienizados para tempos exatos, contagens, hashes, resultados de validação e evidência de MTP. Instruções privadas do projeto, respostas do modelo, caminhos locais e cabeçalhos de sessão ficam retidos localmente e não são publicados. Em consequência, a carga completa de contexto privado não é reproduzível de forma independente apenas a partir do relatório público.