Os agentes personalizados estão em beta. O comportamento e as telas ainda podem mudar.
Skills & docs
Skills e docs são guias que já existem no seu repositório. A Kodus não copia esses arquivos: ela lê da branch de destino do pull request em toda revisão. Assim, edições nessa branch valem sem voltar às configurações, e um pull request não consegue mudar a regra que o avalia.
Scripts dentro de uma skill chegam ao agente como texto e nunca são executados.
Onde a Kodus encontra
Skills são detectadas em:.claude/skills/*/SKILL.md.claude/agents/*.md.agents/skills/*/SKILL.md.github/skills/*/SKILL.md
SKILL.md começa com um frontmatter YAML com name (letras minúsculas, dígitos e hífens, igual ao nome da pasta) e description. Uma skill sem eles aparece como “Not a valid skill”, com o motivo. O agente lê o SKILL.md (até 500 linhas, cerca de 5.000 tokens) e os arquivos ao lado dele, até uma pasta abaixo, como references/payments.md.
.claude/skills/ledger-rules/SKILL.md
CONTRIBUTING.md, ARCHITECTURE.md, CONVENTIONS.md, STYLEGUIDE.md e docs/**/*.md (até 30). Você também pode adicionar qualquer caminho à mão: um arquivo com extensão é um doc; uma pasta (ou um SKILL.md dentro dela) é uma skill.
Vincular
Há dois lugares para vincular uma skill ou doc:- Na página do agente, em Files & knowledge → Skills & docs: Add skill or doc lista o que o agente pode seguir, ou use Add by path.
- Na página Skills & docs (o link ao lado de Custom agents em What to review): todas as skills e docs cadastradas, com uma caixa de seleção para Main review e para cada agente. Vincular a Main review entrega o guia à revisão da própria Kody.
Orçamentos
Por agente, e para a revisão principal:
A página Skills & docs avisa quando um agente ou a revisão principal passa de um limite. Na revisão, os docs que passam do orçamento são cortados ou pulados, e a revisão registra um aviso.
Como os apontamentos usam esses guias
Um apontamento de convenção precisa citar a regra que aplica. A Kodus confere a citação no guia como ele está na branch de destino e descarta o apontamento quando a citação não está lá. O comentário publicado cita a regra:Plugins (MCP)
Os agentes podem consultar os plugins instalados no seu workspace: um gerenciador de tarefas, uma wiki, o monitoramento. Em Tools → Plugins, ligue um plugin para o agente e mantenha Use every tool, ou use Customize para escolher as ferramentas. Só ferramentas de leitura são oferecidas; ferramentas de escrita nunca são. Um plugin que marca as ferramentas como somente leitura é levado ao pé da letra. Para um que não marca, a ferramenta só entra quando o nome tem um verbo de leitura (get, list, search, read, find…) e nenhum verbo de escrita. Uma revisão nunca cria um ticket nem posta uma mensagem em nome do seu time. O agente consulta um plugin quando a mudança aponta para algo registrado ali, como um ticket na descrição do pull request, e cita o que encontrou. Veja Plugins para instalar um.CLIs do time
Um agente pode rodar até 3 ferramentas de linha de comando do seu time: um detector de código duplicado, um verificador de schema, um linter interno. As CLIs rodam só no sandbox isolado da E2B, dentro do checkout do repositório. Em qualquer outro sandbox a CLI não é instalada e o agente roda sem ela. Em Tools → CLIs, clique em Add CLI:
Regras de instalação. Instaladores aceitos:
npm, pnpm, yarn, pip, pip3, pipx, uv, go, cargo. Todo pacote precisa estar fixado (tool@1.2.3, tool==1.2.3 ou tool@sha256:…). Tags como @latest, faixas de versão, URLs, fontes Git, caminhos locais e sintaxe de shell são recusados.
printenv, env, set, export, declare, qualquer coisa em /proc), comandos comuns que imprimem tokens (auth token, auth status --show-token, auth:token, config get, configure get, print-access-token, get-access-token), um shell ou interpretador como binário (bash, node, python, npx, …) e argumentos que citam um dos seus secrets como $NOME ou ${NOME}. Os argumentos nunca passam por um shell, então o próprio Kodus nunca os expande.
Rede. A allowlist vale pelo nome do host. As conexões HTTPS da CLI passam por um proxy que só encaminha uma conexão quando o nome de servidor pedido está na lista (nome exato, sem subdomínios) e que resolve esse nome por conta própria, recusando endereços privados e internos. A CLI não tem outro acesso à rede: nem DNS, nem HTTP sem TLS, nem outras portas. Um host permitido ainda recebe o que a CLI enviar, credenciais incluídas, e a rede não distingue leitura de escrita. Use tokens somente leitura, com o menor privilégio possível, e permita só hosts em que você confia.
Como os secrets são guardados. Um secret é criptografado ao salvar (AES-256-GCM, vinculado ao agente, à CLI e ao nome da variável) e nunca volta para o navegador, que mostra Stored · hidden. Ele fica vinculado à CLI para a qual foi salvo, naquele nível de configuração: qualquer mudança na CLI (nome, instalação, binário, prefixos permitidos, domínios permitidos, Runs project code ou os nomes dos seus secrets) pede todos os secrets de novo, ao salvar e no Try it. Só as notas de uso e o timeout mudam sem isso. Um secret guardado que não pode mais ser lido também precisa ser digitado de novo. O Try it usa só os secrets guardados no nível que você está editando, nunca os herdados. Um secret chega só ao processo daquela CLI, nunca à instalação, às outras CLIs ou ao prompt do agente. Na saída da CLI, todo secret é trocado por ***, também quando impresso em base64, codificado em URL, em hex ou escapado em JSON, antes que o agente, o Try it, um comentário no pull request ou um log o vejam. O mascaramento não reconhece toda transformação (um valor partido ou parcial), e é por isso que os comandos acima são bloqueados.
Quando um apontamento vem de uma CLI, o comentário mostra as linhas da saída que citam o arquivo:
Se a instalação falha, o agente roda sem aquela CLI e a execução registra o aviso. O Try it mostra isso em Warnings.
Regras do ast-grep
Em Tools → Advanced → Structural search (ast-grep rules), dê ao agente regras do ast-grep, de um destes jeitos:- Inline: o YAML da regra. Separe várias regras com
---. Cada uma precisa deiderule. - Um arquivo de regras: uma única linha com o caminho de um arquivo
.ymlou.yamldo repositório, lido da branch de destino do pull request.
id ou sem rule.
O agente também tem busca estrutural avulsa pelo repositório, mesmo sem nenhuma regra configurada.
Veja também
Agentes Personalizados
Níveis, a página do agente, Try it e como os agentes rodam numa revisão.
Código duplicado com jscpd
Um agente completo com uma CLI do time.