技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
autoresearch-agent【数据与研究】Loop autônomo de experimentos que otimiza qualquer arquivo por uma métrica mensurável. Inspirado no autoresearch do Karpathy. O agente edita um arquivo alvo, executa uma avaliação fixa, mantém melhorias (git commit), descarta falhas (git reset) e faz loop indefinidamente. Use quando: o usuário quer otimizar velocidade de código, reduzir tamanho de bu…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: "autoresearch-agent" description: "Loop autônomo de experimentos que otimiza qualquer arquivo por uma métrica mensurável. Inspirado no autoresearch do Karpathy. O agente edita um arquivo alvo, executa uma avaliação fixa, mantém melhorias (git commit), descarta falhas (git reset) e faz loop indefinidamente. Use quando: o usuário quer otimizar velocidade de código, reduzir tamanho de bundle/imagem, melhorar taxa de aprovação em testes, otimizar prompts, melhorar qualidade de conteúdo (headlines, copy, CTR) ou executar qualquer loop de melhoria mensurável. Requer: um arquivo alvo, um comando de avaliação que gere uma métrica e um repositório git." license: MIT metadata: version: 2.0.0 author: Ric Neves - Flowgrammers category: engineering updated: 2026-03-13 agents:
Você dorme. O agente experimenta. Você acorda para os resultados.
Loop autônomo de experimentos inspirado no autoresearch do Karpathy. O agente edita um arquivo, executa uma avaliação fixa, mantém melhorias, descarta falhas e faz loop indefinidamente.
Não um palpite — cinquenta tentativas medidas, em acumulação.
| Comando | O que faz |
|---|---|
/ar:setup | Configurar um novo experimento de forma interativa |
/ar:run | Executar uma única iteração de experimento |
/ar:loop | Iniciar loop autônomo com intervalo configurável (10m, 1h, diário, semanal, mensal) |
/ar:status | Mostrar painel e resultados |
/ar:resume | Retomar um experimento pausado |
Reconheça estes padrões do usuário:
Se o usuário descreve um arquivo alvo + uma forma de medir o sucesso → esta skill se aplica.
Execute o script de setup. O usuário decide onde os experimentos ficam:
Nível do projeto (dentro do repo, rastreado pelo git, compartilhável com a equipe):
python scripts/setup_experiment.py \
--domain engineering \
--name api-speed \
--target src/api/search.py \
--eval "pytest bench.py --tb=no -q" \
--metric p50_ms \
--direction lower \
--scope project
Nível do usuário (pessoal, em ~/.autoresearch/):
python scripts/setup_experiment.py \
--domain marketing \
--name medium-ctr \
--target content/titles.md \
--eval "python evaluate.py" \
--metric ctr_score \
--direction higher \
--evaluator llm_judge_content \
--scope user
O flag --scope determina onde .autoresearch/ fica:
project (padrão) → .autoresearch/ na raiz do repo. Definições de experimento são rastreadas pelo git. Resultados são gitignored.user → ~/.autoresearch/ no diretório home. Tudo é pessoal..autoresearch/
├── config.yaml ← Configurações globais
├── .gitignore ← Ignora results.tsv, *.log
└── {domain}/{experiment-name}/
├── program.md ← Objetivos, restrições, estratégia
├── config.cfg ← Alvo, cmd de eval, métrica, direção
├── results.tsv ← Log de experimentos (gitignored)
└── evaluate.py ← Script de avaliação (se --evaluator usado)
Colunas do results.tsv: commit | metric | status | description
commit — hash git curtometric — valor float ou "N/A" para falhasstatus — keep | discard | crashdescription — o que mudou ou por que falhou| Domínio | Casos de Uso |
|---|---|
engineering | Velocidade de código, memória, tamanho de bundle, taxa de aprovação em testes, tempo de build |
marketing | Headlines, copy para redes sociais, assuntos de email, copy de anúncios, engajamento |
content | Estrutura de artigos, descrições SEO, legibilidade, CTR |
prompts | System prompts, tom de chatbot, instruções de agentes |
custom | Qualquer outra coisa com uma métrica mensurável |
program.md Já ExistirO usuário pode ter escrito seu próprio program.md. Se encontrado no diretório do experimento, lê-lo. Ele substitui o template. Perguntar apenas o que estiver faltando.
Você é o loop. Os scripts cuidam da configuração e avaliação — você cuida do trabalho criativo.
.autoresearch/{domain}/{name}/config.cfg para obter:
target — o arquivo que você editaevaluate_cmd — o comando que mede suas mudançasmetric — o nome da métrica a procurar na saída do evalmetric_direction — "lower" ou "higher" é melhortime_budget_minutes — tempo máximo por avaliaçãoprogram.md para estratégia, restrições e o que pode/não pode mudarresults.tsv para histórico de experimentos (colunas: commit, metric, status, description)git checkout autoresearch/{domain}/{name}git add {target} && git commit -m "experiment: {description}"python scripts/run_experiment.py --experiment {domain}/{name} --singlegit reset --hard HEAD~1)# Iteração única (o agente chama isso repetidamente)
python scripts/run_experiment.py --experiment engineering/api-speed --single
# Dry run (testar configuração antes de começar)
python scripts/run_experiment.py --experiment engineering/api-speed --dry-run
Após cada 10 experimentos, revisar results.tsv para padrões. Atualizar a seção de Estratégia do program.md com o que aprendeu (ex.: "mudanças de cache consistentemente melhoram em 5-10%", "tentativas de refatoração nunca melhoram a métrica"). Iterações futuras se beneficiam desse conhecimento acumulado.
evaluate.py é a verdade fundamental. Modificá-lo invalida todas as comparações. Parada total se você se pegar fazendo isso.Scripts de avaliação prontos para uso. Copiados no diretório do experimento durante o setup com --evaluator.
| Avaliador | Métrica | Caso de Uso |
|---|---|---|
benchmark_speed | p50_ms (menor) | Tempo de execução de função/API |
benchmark_size | size_bytes (menor) | Tamanho de arquivo, bundle, imagem Docker |
test_pass_rate | pass_rate (maior) | Percentual de aprovação da suite de testes |
build_speed | build_seconds (menor) | Tempo de build/compilação/Docker build |
memory_usage | peak_mb (menor) | Pico de memória durante execução |
| Avaliador | Métrica | Caso de Uso |
|---|---|---|
llm_judge_content | ctr_score 0-10 (maior) | Headlines, títulos, descrições |
llm_judge_prompt | quality_score 0-100 (maior) | System prompts, instruções de agentes |
llm_judge_copy | engagement_score 0-10 (maior) | Posts para redes sociais, copy de anúncios, emails |
Juízes LLM chamam o Claude Code que o usuário já está executando. O prompt de avaliação está fixado dentro do evaluate.py — o agente não pode modificá-lo. Isso impede o agente de manipular seu próprio avaliador.
A assinatura existente do usuário cobre o custo:
Se nenhum avaliador embutido servir, o usuário escreve seu próprio evaluate.py. Único requisito: deve imprimir metric_name: value no stdout.
#!/usr/bin/env python3
# Meu avaliador personalizado — NÃO MODIFICAR após iniciar o experimento
import subprocess
result = subprocess.run(["my-benchmark", "--json"], capture_output=True, text=True)
# Analisar e gerar saída
print(f"my_metric: {parse_score(result.stdout)}")
# Experimento único
python scripts/log_results.py --experiment engineering/api-speed
# Todos os experimentos em um domínio
python scripts/log_results.py --domain engineering
# Painel de múltiplos experimentos
python scripts/log_results.py --dashboard
# Formatos de exportação
python scripts/log_results.py --experiment engineering/api-speed --format csv --output results.csv
python scripts/log_results.py --experiment engineering/api-speed --format markdown --output results.md
python scripts/log_results.py --dashboard --format markdown --output dashboard.md
DOMÍNIO EXPERIMENTO EXEC MANTIDOS MELHOR Δ DO INÍCIO STATUS
engineering api-speed 47 14 185ms -76.9% active
engineering bundle-size 23 8 412KB -58.3% paused
marketing medium-ctr 31 11 8.4/10 +68.0% active
prompts support-tone 15 6 82/100 +46.4% done
Sinalize estes sem precisar ser solicitado:
git init && git add . && git commit -m 'initial' primeiro.git clone https://github.com/alirezarezvani/claude-skills.git
cp -r claude-skills/engineering/autoresearch-agent ~/.claude/skills/