Como usar o Trae com sua chave CodeAll
O Trae é o agente de engenharia de software da ByteDance. Ele lê a base de código, edita arquivo e roda comando em passos, e aceita endereço de API próprio — então roda inteiro na CodeAll, pagando em reais.
Se você ainda não tem chave, escolha um plano ou peça um trial de 24h grátis.
O detalhe que mais gera chamado: o endereço da API termina em https://api.tn1.top/v1. O /v1 no fim não é opcional — sem ele o gateway responde 401 dizendo que a chave está inválida, e você vai procurar o problema no lugar errado.
1. Pré-requisitos
- Uma chave CodeAll ativa.
- O Trae instalado:
git clone https://github.com/bytedance/trae-agent && cd trae-agent && uv sync --all-extras
2. Configurar o Trae
Crie o trae_config.yaml na pasta do projeto. O campo que decide se funciona é o provider: ele precisa ser openrouter, e não openai — a explicação vem logo abaixo do exemplo.
| Sistema | Onde fica |
|---|---|
| Todos | trae_config.yaml (na pasta do projeto) |
agents:
trae_agent:
enable_lakeview: false
model: trae_agent_model
max_steps: 200
tools:
- bash
- str_replace_based_edit_tool
- task_done
model_providers:
codejato:
api_key: sua-chave
provider: openrouter
base_url: https://api.tn1.top/v1
models:
trae_agent_model:
model_provider: codejato
model: gpt-5.5
max_tokens: 4096
temperature: 0.5
top_p: 1
top_k: 0
max_retries: 3
parallel_tool_calls: true
- Use
provider: openrouter. No Trae,provider: openainão significa "formato da OpenAI": significa a Responses API (/v1/responses). Oopenrouteré o tipo que fala/v1/chat/completions, que é o que a CodeAll serve aqui. O nomecodejatona linha de cima é só um rótulo seu — quem escolhe o protocolo é oprovider:. - Mantenha os quatro campos
top_p,top_k,max_retrieseparallel_tool_calls. O exemplo curto do README do Trae os omite e o programa encerra comModelConfig.__init__() missing 4 required positional arguments. - Confira sem gastar chamada:
trae-cli show-configdeve mostrarBase URL: https://api.tn1.top/v1eAPI Key: Set. - Rode uma tarefa:
trae-cli run "sua tarefa" --working-dir .. - Para trocar de modelo sem editar o arquivo, use a opção
-m:trae-cli run "sua tarefa" -m "gpt-5.5". - Se preferir a chave fora do arquivo, exporte
OPENROUTER_API_KEY— o nome vem do tipo do provedor, não do rótulo que você escolheu.
Verificado nesta configuração. O comando abaixo foi rodado contra o gateway e respondeu OK:
trae-cli run "Crie um arquivo chamado ok.txt contendo exatamente a palavra OK. Depois chame task_done." -m "gpt-5.5"
3. Modelos disponíveis
O CodeAll junta as duas famílias na mesma chave: gpt-5.5 da OpenAI e os modelos da Anthropic (Opus 4.8, Sonnet, Haiku). Trocar de modelo é trocar uma linha do config.
No Trae o modelo é informado por campo model dentro de models:.
| Modelo | Como escrever |
|---|---|
gpt-5.5 | gpt-5.5 |
Opus 4.8 | Opus 4.8 |
Sonnet | Sonnet |
Haiku | Haiku |
4. O que funciona
| Recurso | Status | Observação |
|---|---|---|
| Tarefa completa no terminal (ler, editar, rodar comando) | Funciona | Rodamos uma tarefa de três passos que criou arquivo em disco e encerrou com task_done. |
| Chamada de ferramenta (tool calling) | Funciona | É o que sustenta os passos: o modelo pediu bash e str_replace_based_edit_tool, e o gateway repassou as chamadas. |
provider: openrouter com endereço próprio | Funciona | O cliente do openrouter só usa o endereço padrão dele quando base_url está vazio; preenchido, ele respeita o seu. |
provider: openai | Não | Encerra com 'NoneType' object has no attribute 'cached_tokens'. Ele chama a Responses API e espera campos de cache no relatório de uso que a CodeAll não devolve nessa superfície. Use openrouter. |
Endereço com /v1 | Funciona | O cliente monta /chat/completions em cima do que você escrever: o endereço correto é https://api.tn1.top/v1. |
| Chave fora do disco | Depende | Dá para exportar OPENROUTER_API_KEY em vez de escrever api_key no arquivo. Se deixar no arquivo, ele fica na pasta do projeto — o Trae já traz trae_config.yaml no .gitignore dele, mas confira o seu. |
| IDE Trae (o aplicativo, não a linha de comando) | Não testamos | A documentação da ByteDance descreve o caminho Settings > Models > Add Model > Custom Config, com formato OpenAI Chat Completions e a chave Full URL desligada para aceitar https://api.tn1.top/v1. Não abrimos a IDE para conferir. |
5. Troubleshooting
| Sintoma | O que fazer |
|---|---|
'NoneType' object has no attribute 'cached_tokens' | O provider está como openai. Troque para openrouter. A chamada até chega e o passo aparece como concluído, o que faz o erro parecer de rede — mas ele acontece depois da resposta, ao ler o relatório de uso da Responses API. |
ModelConfig.__init__() missing 4 required positional arguments | Faltam top_p, top_k, max_retries ou parallel_tool_calls no bloco models:. São obrigatórios, embora o exemplo curto do README do Trae os omita. |
401 dizendo que a chave está ausente ou inválida | Duas causas com a mesma mensagem: o base_url está sem o /v1 (o certo é https://api.tn1.top/v1), ou a chave não chegou. Rode trae-cli show-config: ele mostra o endereço em uso e se a chave foi lida. |
| Exportei a variável e ele continua sem chave | O nome da variável vem do tipo do provedor, não do rótulo. Com provider: openrouter a variável é OPENROUTER_API_KEY, mesmo que você tenha chamado o provedor de codejato. |
| O arquivo de configuração parece ser ignorado | O Trae procura trae_config.yaml na pasta de onde você rodou o comando, não na sua pasta pessoal. Use --config-file para apontar outro caminho. O YAML também não aceita tabulação: só espaços. |
6. FAQ
Preciso de conta na OpenRouter?
Não. openrouter aqui é só o nome do tipo de cliente que fala /v1/chat/completions. Nenhuma requisição sai para a OpenRouter: o base_url aponta para a CodeAll.
Qual é a diferença entre o Trae e a IDE Trae?
São dois programas. Este guia cobre o agente de linha de comando (trae-cli, do repositório bytedance/trae-agent), que foi o que executamos. A IDE é um aplicativo separado; o caminho de configuração dela está na tabela acima, vindo da documentação da ByteDance.
Posso configurar mais de um modelo?
Pode. Cada entrada em models: aponta para um provedor e um nome de modelo, e o -m na linha de comando troca na hora.
Dúvida que não está aqui? Fale com a gente em suporte@tn1.top.
7. A mesma chave na próxima ferramenta
A sua chave CodeAll não é só do Trae. Ela responde nos dois formatos — o da OpenAI e o da Anthropic — então a ferramenta que fala GPT e a que fala Claude usam a mesma chave e a mesma assinatura.
Na prática: você deixa o Trae no modelo que preferir para a tarefa de agora e abre outra ferramenta com o modelo nativo dela, sem trocar de chave, sem uma segunda mensalidade e sem refazer configuração.
Ferramentas próximas do Trae, cobertas pela mesma chave: