CommunityPesquisa e Análise de Dadosgithub.com

primexiao/agent-skills

Habilidades da comunidade para agentes, incluindo model-radar para seleção de modelos LLM no OpenRouter.

O que é agent-skills?

O Model Radar é uma habilidade de agente especializada em selecionar modelos de linguagem de grande escala (LLMs) no OpenRouter. Ele traduz requisitos de usuário expressos em linguagem natural para argumentos no formato `token:valor`, consulta um cache local de metadados e rankings dos modelos, e emite JSON que o agente renderiza como uma tabela markdown. Isso permite que desenvolvedores e agentes de IA escolham rapidamente o modelo ideal com base em critérios como preço, contexto, capacidades (tool use, reasoning, visão) e popularidade. A habilidade suporta comandos como `list` (filtrar e ordenar), `recommend` (pontuação ponderada contra predefinições como `coding`, `batch`, `chat`) e `compare` (comparação lado a lado de modelos). Ela inclui um sistema de auto-atualização que busca atualizações do GitHub automaticamente a cada 24 horas, sem exigir chave de API, e funciona com Node.js 18+ sem dependências npm. Os resultados são sempre apresentados como tabelas markdown, facilitando a visualização e comparação direta no chat do agente. A ferramenta é ideal para equipes que precisam otimizar a escolha de modelos para diferentes cargas de trabalho, como agentes de codificação, processamento em lote ou análise de imagens, garantindo que a seleção seja rápida, precisa e baseada em dados atualizados sem custos extras.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add primexiao/agent-skills

Installed? Explore more Pesquisa e Análise de Dados skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Model Radar

CLI de seleção de modelos do OpenRouter. Interpreta restrições em linguagem natural como argumentos token:valor, consulta um cache local de metadados e rankings dos modelos, e emite JSON para o agente renderizar como uma tabela markdown.

Configuração

  • Ambiente de execução: Node.js 18+ (sem etapa de instalação e sem dependências npm)
  • Sem chave de API — usa endpoints públicos do OpenRouter
  • Execute todos os comandos a partir deste diretório da habilidade (o que contém este arquivo)
  • A primeira execução popula o cache a partir da rede; chamadas subsequentes usam o cache local (TTL de modelos: 6h, TTL de rankings: 24h)
  • Auto-atualização está habilitada por padrão. Cada execução da CLI verifica a fonte fixa do GitHub no máximo uma vez a cada 24h e aplica atualizações automaticamente para cópias instaladas. Defina MODEL_RADAR_AUTO_UPDATE=0 para desabilitar.

Fluxo de Trabalho

  1. Execute node scripts/self-update.js auto antes de usar a habilidade. Se stderr imprimir MODEL_RADAR_UPDATED, releia este SKILL.md antes de continuar.
  2. Analise a solicitação do usuário em argumentos token:valor usando o mapeamento Intenção → Token abaixo
  3. Escolha o comando: list (filtrar+ordenar), recommend (pontuação ponderada contra uma predefinição), compare (lado a lado)
  4. Execute a partir do diretório da habilidade. scripts/main.js também executa a mesma verificação prévia de auto-atualização automaticamente, então o uso direto da CLI permanece atualizado.
  5. Renderize a saída JSON como uma tabela markdown (veja Saída)
  6. Termine com Dados de {fetched_at}; sugira refresh se mais antigo que 12h

Comandos

node scripts/main.js list      [tokens...]    # filtrar + ordenar
node scripts/main.js recommend [tokens...]    # pontuação ponderada contra uma predefinição
node scripts/main.js compare   <id|nome>...   # comparação lado a lado
node scripts/main.js refresh                  # forçar atualização de ambos os caches
node scripts/self-update.js status            # inspecionar estado da atualização
node scripts/self-update.js check             # verificar GitHub por atualizações
node scripts/self-update.js apply             # aplicar a atualização mais recente da habilidade

Auto-Atualização

  • A fonte é fixada por package.json.repository: primexiao/agent-skills, caminho skills/model-radar.
  • Cópias instaladas são atualizadas automaticamente. Checkouts da fonte ignoram auto-atualização a menos que MODEL_RADAR_AUTO_UPDATE_SOURCE=1 esteja definido.
  • Alterações locais não commitadas sob o diretório da habilidade fazem com que a auto-atualização seja ignorada.
  • O uso direto de scripts/main.js reinicia o comando atual após uma auto-atualização bem-sucedida, para que o resultado seja produzido pelo código atualizado.
  • As atualizações usam um checkout temporário, validam arquivos necessários, fazem backup da habilidade atual, substituem arquivos não relacionados ao runtime e revertem em caso de falha.
  • Atualizações bem-sucedidas limpam cache/raw.json, cache/models.json e cache/rankings.json para que o novo código não se misture com o cache de dados antigo.
  • Status e avisos da auto-atualização vão para stderr. O JSON do comando permanece no stdout.

Sintaxe de Token

Argumentos posicionais token:valor inspirados no Tailwind. A ordem não importa.

TokenSignificadoFormato do valorExemplos
sortdimensão de ordenaçãopalavra predefinida (veja abaixo)sort:cheap sort:popular
price$/MTok combinado..max / min.. / min..max / bare= maxprice:..10 price:5..20
ctxtamanho do contextomesmo, sufixo k/m, bare= minctx:128k ctx:128k..1m
outmáximo de tokens de saídamesmo, bare= minout:32k
capcapacidades (E)separados por vírgulacap:tool_use,reasoning
inmodalidades de entrada (E)separados por vírgulain:image in:audio,image
genmodalidades de saída (E)separados por vírgulagen:image gen:audio
openfiltro de código abertotrue / falseopen:true
toplimite de resultadosnúmero (padrão: list=20, recommend=3)top:5
presetpredefinição de pontuação (apenas recommend)nome da predefiniçãopreset:coding

Valores de sort: cheap expensive new (padrão) ctx popular throughput latency

Capacidades: tool_use reasoning structured_output vision long_output prompt_caching web_search audio_input video_input file_input image_generation audio_output

Modalidades de entrada: text image audio video file Modalidades de saída: text image audio

Predefinições de recomendação: coding batch chat vision (veja config/presets.json para pesos e capacidades necessárias)

Intenção → Token

Usuário dizToken(s)
"orçamento $X" / "abaixo de $X"price:..X
"pelo menos $X" / "nível premium"price:X..
"pelo menos Nk de contexto"ctx:Nk
"precisa de tool use / visão / raciocínio"cap:tool_use / cap:vision / cap:reasoning
"saída estruturada" / "modo JSON"cap:structured_output
"pode receber entrada de áudio / imagem"in:audio / in:image
"pode gerar imagens / áudio"gen:image / gen:audio
"apenas código aberto"open:true
"mais barato" / "mais acessível"sort:cheap
"mais popular" / "em tendência"sort:popular
"mais novo" / "mais recente"sort:new
"mais rápido" / "menor latência"sort:latency
"maior taxa de transferência"sort:throughput
"agente de codificação"recommend preset:coding
"trabalho em lote / em massa"recommend preset:batch
"agente de visão"recommend preset:vision

Correspondência de Modelos (compare)

Prioridade de correspondência para cada argumento de compare:

  1. ID exato — anthropic/claude-sonnet-4-5
  2. Sufixo exato — claude-sonnet-4 → anthropic/claude-sonnet-4 (nunca a variante -fast)
  3. Substring parcial no ID/nome, versão mais recente vence — claude-sonnet → Sonnet mais recente

Saída

Sempre renderize a saída JSON como uma tabela markdown — tabelas são o formato principal de exibição.

list

| # | Modelo | $/MTok (P/C/Combinado) | Ctx | Saída | Caps | Pop# |
  • $/MTok: preços de prompt / conclusão / combinados
  • Caps: tags curtas (tool reason vision …)
  • Pop#: classificação de popularidade se o cache de rankings estiver atualizado, senão —

recommend

| Classif. | Modelo | Pontuação | Custo↑ | Ctx↑ | Saída↑ | Cap↑ | $/MTok | Caps |

Adicione uma linha de justificativa por modelo. Pontuação e pontuações por dimensão estão em [0, 1].

compare

Tabela vertical — uma coluna por modelo, uma linha por dimensão:

| Dimensão           | Modelo A | Modelo B | Modelo C |
| ------------------ | -------- | -------- | -------- |
| Preço (P/C/Combinado)|   …     |   …      |   …      |
| Contexto           |   …      |   …      |   …      |
| Máx. saída         |   …      |   …      |   …      |
| Modalidades de entrada | …    |   …      |   …      |
| Modalidades de saída  | …    |   …      |   …      |
| Capacidades        |   …      |   …      |   …      |
| Classif. popularidade | …    |   …      |   …      |
| Solicitações semanais | …    |   …      |   …      |

Sempre termine com: Dados de {fetched_at}. Se mais antigo que 12h, sugira ao usuário executar node scripts/main.js refresh.

Cache

cache/
  raw.json       — dados do cartão frontend do OpenRouter adaptados ao esquema raw local (TTL 6h)
  models.json    — enriquecido: precificação normalizada + rótulos de capacidade (TTL 6h)
  rankings.json  — popularidade / taxa de transferência / latência + análises de uso (TTL 24h)
config/
  presets.json
  tier1-categories.json
  • Os arquivos de cache residem em cache/ e não são commitados — a primeira execução acessa a rede
  • Na expiração do TTL, a CLI faz nova busca com timeout de 10s
  • Em caso de falha na busca, utiliza o cache desatualizado e emite [warn] no stderr — assim, sandboxes somente leitura / offline ainda respondem (possivelmente desatualizados)
  • Uma auto-atualização bem-sucedida da habilidade exclui os arquivos de cache de dados do modelo. O próximo comando de modelo os repopula.

Notas sobre Sandbox

  • Codex CLI: precisa de -s workspace-write (CLI escreve em cache/) e saída de rede para openrouter.ai. Dentro do TTL, não há chamadas de rede.
  • Primeira chamada em um checkout novo é a única que exige rede estritamente.
  • Auto-atualização precisa de acesso de escrita ao sistema de arquivos neste diretório da habilidade e acesso de rede ao GitHub. Se indisponível, avisa ou ignora e o comando do modelo ainda executa com a cópia local atual.

Problemas Conhecidos

  • A API frontend do OpenRouter (/api/frontend/v1/models/find?active=true&fmt=cards) é não oficial; se falhar, a CLI usa o cache desatualizado quando disponível e emite [warn].

Fontes de Dados

  • Modelos: https://openrouter.ai/api/frontend/v1/models/find?active=true&fmt=cards
  • Rankings: mesmo endpoint com order=top-weekly, order=throughput-high-to-low e order=latency-low-to-high

Habilidades Relacionadas