TEST/MYAGENT
A bancada de teste para os agentes que você constrói e roda todo dia. Saiba se cada mudança deixou o agente melhor.
A versão 1 registra a aparência do app como ela é hoje. O app não muda. Cada valor deste guia tem a linha de origem ao lado.
Fundação
TestMyAgent é a bancada de teste dos agentes que uma pessoa ou um time roda todo dia. A v1 deste guia só registra o que o produto diz e mostra hoje.
O que o produto é
Você troca um modelo, um prompt, uma skill ou um harness. O TestMyAgent diz se a troca deixou o agente melhor ou pior, em tarefas do seu próprio trabalho, com testes ocultos que o agente não vê. Você vê nota, tempo, tokens e custo de cada rodada. Depois fica com a configuração mais barata que passa na sua régua.
Os agentes rodam na sua máquina, com a sua chave de modelo. Só os números vão para o TestMyAgent. O Hosted LLM Infra, que rodaria tudo nos nossos servidores, está em acesso antecipado (early access).
Não é certificado. Um resultado local é autodeclarado (self-declared), e a página diz isso.
Como a landing se apresenta hoje
| Campo | Texto (em inglês, como no produto) | Fonte |
|---|---|---|
| title | TestMyAgent | AI agent evaluation and optimization | apps/web2/index.html |
| description | Test AI agents on real tasks, see if each change made them better, and find setups that cost less. Run on your own machine with your own keys. | apps/web2/index.html |
| og:title | TestMyAgent | Stop guessing. Start measuring your AI agents. | apps/web2/index.html |
| theme-color | #0a0908 | apps/web2/index.html (theme-color #0a0908); tokens.css:11 --tma-bg |
O logo
O símbolo tem 8 polígonos (6 de cor principal e 2 facetas). Existem três tons. Abaixo de 32 px, e no favicon, as facetas usam a cor principal (solid). O lockup horizontal é o wordmark 47×22, um divisor de 1 px e o texto testmyagent.com em 17/600.
Voz
A voz do TestMyAgent é a da landing web2 atual: direta, na segunda pessoa, e só promete o que está no ar. As regras vêm do plano de copy, não de uma lista nova.
Cinco regras que o plano de copy já aplica
| Regra | Na prática | Fonte |
|---|---|---|
| Fale com quem usa | O texto trata do "seu" agente, da "sua" máquina e das "suas" chaves. O autor do agente é você. | 20261027-testmyagent-web2-copy-repositioning, Hero e Header |
| Prometa só o que está no ar | Cada frase de capacidade corresponde a uma linha LIVE da tabela de claims. Recurso parcial diz o limite. Recurso futuro entra só como roadmap ou early access. | 20261027-testmyagent-web2-copy-repositioning, ADR-2 |
| Dado de exemplo diz que é exemplo | Números ilustrativos levam o rótulo Sample data. Os únicos números reais ficam na caixa de caso. | 20261027-testmyagent-web2-copy-repositioning, Proposed copy |
| Resultado local é autodeclarado | O texto nunca chama um resultado local de verificado. Ele diz Self-declared e que o resultado ajuda a decidir, mas não é certificado. | 20261027-testmyagent-web2-copy-repositioning, FAQ e Positioning |
| Sem marcas de texto de IA | A cópia passa pela skill humanizer: sem travessão longo, sem grupos de três forçados, sem "não X, mas Y", sem negação final, sem palavra promocional. | 20261027-testmyagent-web2-copy-repositioning, Proposed copy |
Como a voz soa (em inglês, como no produto)
| Onde | Texto |
|---|---|
| Hero H1 | Your agents change. Know if they're getting better. |
| Hero lead | Test your AI agents on real tasks, compare each version and each model, and find out where you can spend less. |
| CTA primário | Start evaluating |
| Rótulos sob o CTA | Your machine or VPS · Your own keys · Hidden tests on real tasks |
| Pergunta do FAQ | Are my results verified? No, and the page says so. A result you ran on your machine is marked self-declared. |
| Recurso em acesso antecipado | Hosted LLM Infra · Early access · Request access |
Cor
Escuro apenas, plano, sem gradiente. Toda cor do app vem de um token --tma-*. O verde é o único acento.
A regra que o arquivo de tokens declara
O cabeçalho de tokens.css diz: dark only, flat, no gradients. Toda cor do app vem de um token --tma-*. Não se coloca hex num componente: cria-se um token, e só se o design o tem. Cada hex da marca aparece uma única vez no arquivo.
12 amostras, na ordem do Brand Kit
Passos de texto fora das 12 amostras
Quatro conjuntos: fundo, texto e ponto
| Estado | Fundo | Texto | Ponto |
|---|---|---|---|
| success | #1C3A2A tokens.css:33 --tma-success-bg | #8FE9B1 tokens.css:34 --tma-success-text | #3FD17F tokens.css:35 --tma-success-dot |
| warning | #2A2418 tokens.css:36 --tma-warning-bg | #D8C193 tokens.css:37 --tma-warning-text | #D8B04A tokens.css:38 --tma-warning-dot |
| danger | #3A1C1C tokens.css:39 --tma-danger-bg | #F39595 tokens.css:40 --tma-danger-text | #E86A6A tokens.css:41 --tma-danger-dot |
| neutral | #1C1916 tokens.css:42 --tma-neutral-bg | #A2AAA1 tokens.css:43 --tma-neutral-text | #6E6A62 tokens.css:44 --tma-neutral-dot |
Valores usados nos mocks
| Token | Valor | Uso |
|---|---|---|
| --tma-scrim-modal | rgba(10, 9, 8, 0.72) | véu atrás do modal |
| --tma-scrim-panel | rgba(10, 9, 8, 0.6) | véu atrás do painel |
| --tma-nav-blur-bg | rgba(10, 9, 8, 0.85) | fundo da navegação com blur |
Tipo e forma
Geist para texto, Geist Mono para número e código. O arquivo de tokens não define uma escala de tamanhos: a v1 registra só o que existe.
Duas fontes, carregadas do Google Fonts
| Família | Token | Pesos | Fonte |
|---|---|---|---|
| Geist | --tma-font-sans = 'Geist', system-ui, sans-serif | 400, 500, 600 | tokens.css:62 --tma-font-sans; pesos em apps/web/index.html |
| Geist Mono | --tma-font-mono = 'Geist Mono', ui-monospace, monospace | 400, 500 | tokens.css:63 --tma-font-mono; pesos em apps/web/index.html |
O que o corpo da página define
| Propriedade | Valor | Fonte |
|---|---|---|
| font-size do body | 15px | tokens.css:95 |
| line-height do body | 1.55 | tokens.css:96 |
| Números | .tma-num usa tabular-nums | tokens.css:137 |
| Código e dados | .tma-mono usa Geist Mono | tokens.css:141 |
| Nome no lockup | 17px, peso 600 | apps/web/src/tma/ui/Logo.tsx, comentário do Lockup |
Raio, camadas e layout
| Token | Valor | Fonte |
|---|---|---|
| --tma-radius-xs | 4px | tokens.css:66 --tma-radius-xs |
| --tma-radius-sm | 6px | tokens.css:67 --tma-radius-sm |
| --tma-radius-md | 8px | tokens.css:68 --tma-radius-md |
| --tma-radius-lg | 12px | tokens.css:69 --tma-radius-lg |
| --tma-radius-pill | 999px | tokens.css:70 --tma-radius-pill |
| --tma-shadow-menu | 0 12px 32px rgba(0, 0, 0, 0.5) | tokens.css:55 --tma-shadow-menu |
| --tma-shadow-modal | 0 24px 64px rgba(0, 0, 0, 0.6) | tokens.css:56 --tma-shadow-modal |
| --tma-shadow-popover | 0 16px 40px rgba(0, 0, 0, 0.55) | tokens.css:57 --tma-shadow-popover |
| --tma-shadow-panel | -16px 0 40px rgba(0, 0, 0, 0.5) | tokens.css:58 --tma-shadow-panel |
| --tma-focus-ring | 0 0 0 3px var(--tma-primary-soft) | tokens.css:59 --tma-focus-ring |
| --tma-app-width | 1160px | tokens.css:73 --tma-app-width |
| --tma-app-gutter | 32px | tokens.css:74 --tma-app-gutter |
| --tma-nav-height | 56px | tokens.css:75 --tma-nav-height |