Trabalhador Orquestrador de Consultores
Um modelo é um gargalo. Uma equipa com um cérebro, vinte mãos e um consultor não é.
- Claude
- Gemini
Skills de Agentes ·Médio
Otimize automaticamente as competências do seu agente usando um sistema multi-agente construído com o Google ADK e Gemini.
GOOGLE_API_KEYLicença Apache-2.0 · conteúdo curado, traduzido e mantido pelo Doutor AI.
Optimiza automaticamente as habilidades do teu agente utilizando um sistema multi-agente construído com Google ADK (Agent Development Kit) e Gemini. Carrega uma habilidade, deixa os agentes gerarem cenários de teste e critérios de avaliação, e depois observa como três agentes especializados do ADK colaboram para melhorar a tua habilidade através de otimização iterativa.
Esta aplicação implementa um ciclo automatizado de melhoria de habilidades inspirado na metodologia de autoresearch de Karpathy, alimentado por uma equipa de agentes ADK:
| Agente | Função | O Que Faz |
|---|---|---|
| Executor | Executor de Habilidade & Pontuador | Executa a habilidade contra cenários de teste, pontua as saídas de acordo com os critérios de avaliação e gera cenários de teste iniciais durante a análise |
| Analista | Diagnóstico de Falhas | Examina avaliações falhadas, identifica causas raiz e recomenda uma estratégia de mutação. Usa o output_schema do Pydantic para garantir JSON estruturado |
| Mutador | Editor de Prompt | Faz exatamente UMA alteração direcionada ao prompt da habilidade com base no diagnóstico do analista. Usa o output_schema do Pydantic para garantir JSON estruturado |
add_example, add_constraint, restructure, ou add_edge_case)self-improving-agent-skills/
├── backend/ # FastAPI server + ADK optimization engine
│ ├── app.py # REST API endpoints + SSE streaming
│ ├── adk_optimizer.py # Multi-agent optimizer (Executor, Analyst, Mutator)
│ └── requirements.txt
├── frontend/ # Next.js + React + Tailwind
│ ├── src/
│ │ ├── app/ # Main page + layout
│ │ └── components/ # Upload, Config, Running, Results steps
│ ├── package.json
│ └── *.config.ts
│ ├── code-reviewer/
│ └── content-writer/
└── README.md
gemini-3-flash-preview) - saída estruturada via output_schema nos agentes Analyst e Mutatorcd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set up environment (optional - the app will prompt for your API key in the UI)
cp .env.example .env
# Edit .env and add your GOOGLE_API_KEY
# Run server
python app.py
# Server runs on http://localhost:8891
Para configurar o frontend, segue os passos abaixo:
npm install
npm start
Abre o teu navegador e vai a http://localhost:3000.
A estrutura de ficheiros do projeto é a seguinte:
/src
/components
/pages
/styles
/utils
| Comando | Descrição |
|---|---|
npm start | Inicia o servidor de desenvolvimento |
npm run build | Cria uma versão otimizada para produção |
npm test | Executa os testes do projeto |
Se quiseres contribuir para o projeto, segue os passos abaixo:
git checkout -b minha-funcionalidade
git commit -m "Adiciona nova funcionalidade"
git push origin minha-funcionalidade
Este projeto está licenciado sob a Licença MIT. Para mais detalhes, consulta o ficheiro LICENSE.
cd frontend
# Install dependencies
npm install
# Run development server
npm run dev
# App runs on http://localhost:3000
As skills seguem a especificação de agentskills.io:
my-skill/
├── SKILL.md # Required: YAML frontmatter + instructions
├── scripts/ # Optional: executable code
├── references/ # Optional: additional docs
└── assets/ # Optional: templates, resources
SKILL
Introdução
Este documento descreve como utilizar a SKILL para realizar tarefas específicas.
Instalação
Para instalar a SKILL, utiliza o seguinte comando:
pip install skill
Configuração
Após a instalação, deves configurar a SKILL. Cria um ficheiro de configuração em ~/.config/skill/config.yml com o seguinte conteúdo:
api_key: "YOUR_API_KEY"
Substitui YOUR_API_KEY pela tua chave de API.
Uso
Para utilizar a SKILL, executa o seguinte comando:
skill run
Comandos disponíveis
skill run: Executa a SKILL.skill status: Mostra o estado atual da SKILL.skill help: Mostra a ajuda sobre os comandos disponíveis.Exemplos
Aqui estão alguns exemplos de como utilizar a SKILL:
Exemplo 1
Para executar a SKILL com um parâmetro específico, utiliza:
skill run --param value
Exemplo 2
Para verificar o estado da SKILL, utiliza:
skill status
Contribuição
Se desejas contribuir para a SKILL, por favor, cria um fork do repositório e envia um pull request com as tuas alterações.
Licença
Este projeto está licenciado sob a Licença MIT. Consulta o ficheiro LICENSE para mais informações.
name: my-skill
description: What this skill does and when to use it
license: MIT
metadata:
author: your-name
version: "1.0"
My Skill
Your skill instructions here...
Comprime qualquer pasta de skill e faz o upload - por exemplo, a própria pasta project-graveyard deste repositório:
cd agent_skills
zip -r project-graveyard.zip project-graveyard/
O agente Executor analisa a tua skill e gera:
Podes editar, adicionar ou remover cenários e critérios antes de a otimização começar.
O agente Executor executa a skill em todos os cenários e pontua cada saída em relação a todos os critérios de avaliação. Isto estabelece a pontuação inicial.
Para cada ronda, os três agentes colaboram:
output_schema)output_schema)| Método | Endpoint | Descrição |
|---|---|---|
POST | /api/upload | Carregar ficheiro zip da skill (máx 10MB, apenas ficheiros de texto) |
POST | /api/upload-files | Carregar múltiplos ficheiros (carregamento de pasta) |
POST | /api/analyze | Gerar cenários e avaliações (requer chave da API Gemini) |
POST | /api/regenerate | Regenerar cenários e avaliações |
POST | /api/update-config | Guardar a configuração selecionada/editada pelo utilizador |
POST | /api/start/{session_id} | Iniciar otimização |
GET | /api/stream/{session_id} | Stream SSE do progresso da otimização |
POST | /api/stop/{session_id} | Parar otimização |
GET | /api/download/{session_id} | Descarregar skill melhorada |
GET | /api/examples | Listar skills de exemplo disponíveis |
POST | /api/examples/{name}/load | Carregar uma skill de exemplo |
GET | /api/status/{session_id} | Endpoint de status baseado em polling |
GET | /health | Verificação de saúde |
A chave da API Gemini é passada do frontend com cada pedido. Opcionalmente, define GOOGLE_API_KEY em .env para desenvolvimento local. O servidor corre na porta 8891.
Limites de upload:
.md, .txt, .json, .yaml, .py, .js, .ts, etc.)As sessões expiram automaticamente após 1 hora.
A chave da API é introduzida na interface, armazenada no estado do componente (não persistente) e enviada com cada pedido. A chave é passada para o backend que define GOOGLE_API_KEY para autenticação do agente ADK.
Em RunningStep.tsx, ajusta max_rounds (limitado a 50):
body: JSON.stringify({
max_rounds: 20, // Default: 20, max: 50
}),
Ajustar o Modelo em adk_optimizer.py
Para ajustar o modelo em adk_optimizer.py, segue os passos abaixo:
Passo 1: Importar Bibliotecas Necessárias
Certifica-te de que importas as bibliotecas necessárias no início do teu ficheiro:
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
Passo 2: Carregar os Dados
Carrega os dados que pretendes utilizar para o ajuste do modelo:
data = pd.read_csv('caminho/para/o/teu/dataset.csv')
Passo 3: Pré-processar os Dados
Realiza o pré-processamento necessário nos dados:
X = data.drop('target', axis=1)
y = data['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Passo 4: Ajustar o Modelo
Agora, ajusta o modelo utilizando o RandomForestClassifier:
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
Passo 5: Avaliar o Modelo
Por fim, avalia o desempenho do modelo:
accuracy = model.score(X_test, y_test)
print(f'Acurácia do modelo: {accuracy:.2f}')
Seguindo estes passos, deves conseguir ajustar o modelo em adk_optimizer.py com sucesso.
def __init__(self, api_key: str, model: str = "gemini-3-flash-preview"):
cd backend
python -c "from adk_optimizer import SkillOptimizer; print('OK')"
Para construir o frontend, segue os passos abaixo:
npm install
Para construir o projeto, executa o seguinte comando:
npm run build
Para iniciar o servidor de desenvolvimento, utiliza:
npm start
A estrutura de diretórios do projeto é a seguinte:
/src
/components
/pages
/styles
/public
index.html
| Comando | Descrição |
|---|---|
npm start | Inicia o servidor de desenvolvimento |
npm run build | Cria uma versão otimizada para produção |
npm test | Executa os testes do projeto |
Se quiseres contribuir para o projeto, segue estas etapas:
git checkout -b minha-nova-funcionalidade
git commit -m 'Adiciona nova funcionalidade'
git push origin minha-nova-funcionalidade
cd frontend
npm run build
Ambos os servidores suportam recarregamento a quente. Edita o código e vê as alterações imediatamente.
Esta ferramenta aplica a metodologia de autoresearch de Andrej Karpathy (usando LLMs para melhorar iterativamente os seus próprios prompts) às habilidades dos agentes. A chave: em vez de ajustar manualmente os prompts, define critérios de sucesso e deixa a IA otimizar-se - agora potenciada por uma equipa de agentes ADK especializados.
Conceito original: https://github.com/karpathy/autoresearch
Um modelo é um gargalo. Uma equipa com um cérebro, vinte mãos e um consultor não é.
O git blame indica-lhe quem alterou uma linha pela última vez. O Commit Archaeologist reconstrói porque é que a linha existe.
O Dependency Doctor analisa um manifesto de dependências à procura de armadilhas superficiais no próprio manifesto. Deteta versões não fixadas, sombre…
Precisa de uma solução à medida?
Não sabe por onde começar a usar IA no seu negócio? Receba uma avaliação gratuita e um plano à medida - sem compromisso.
O Doutor AI dá-lhe 1859 prompts de IA prontos a copiar, por indústria e em português simples - mais uma biblioteca técnica completa para quem quer ir mais longe.