Evaluations Framework — Avaliação sistemática de recursos com IA
Apple Evaluations Framework (WWDC26)
O que é: Framework Swift da Apple para medir sistematicamente a qualidade de recursos alimentados por IA em aplicativos—usando datasets + métricas + agregação integrado diretamente no fluxo de desenvolvimento e testes. Corre dentro do Swift Testing (permitindo gates de CI), suportando verificações simples de aprovação/falha e padrões mais sofisticados de “modelo como juiz” para avaliação qualitativa.
Acesse a documentação da Apple
Por que não usar unit tests tradicionais
Recursos com IA quebram o contrato fundamental dos testes de software: a mesma entrada pode produzir saídas diferentes. Você não pode usar #expect(output == "exact string") em modelos generativos. O Evaluations framework trata a qualidade de IA como algo a medir estatisticamente em vez de afirmar exatamente—mais como benchmarking de performance do que testes unitários.
Os 5 passos para construir uma avaliação
- Subject: Defina qual código está sendo medido
- Dataset: Use array de
ModelSamplecom inputs (e opcionalmente valores esperados/referência) - Metrics & Evaluators: Defina o que medir (contagem de tags, comprimento, sentimento) e como pontuar (pass/fail)
- AggregateMetrics: Resuma os resultados em estatísticas resumidas (média, desvio padrão, taxa de aprovação)
- Test com Swift Testing: Execute a avaliação como
@Testcom o trait.evaluates, use#expectem valores agregados para criar um gate de CI
Assistir Meet the Evaluations framework
Como integrar com Swift Testing e CI
As avaliações se integram ao Swift Testing através de um trait de teste. Durante o teste, você acessa os resultados da avaliação e usa assertions #expect em valores agregados (ex: pontuação média ou taxa de aprovação) para criar um gate de execução em CI. Exemplo de gate:
@Test(.evaluates(evaluation, info: evaluationInfo))
func expenseTagsStayAccurate() async throws {
let result = EvaluationContext.current.result
let score = result.aggregateValue(.mean(of: tagCountMetric))
#expect(score >= 0.85)
}
Ver documentação de Swift Testing com .evaluates trait
Componentes-chave na prática
ModelSample
Representa um input para avaliação (e opcionalmente um valor esperado/referência). É a unidade básica do seu dataset.
ModelJudgeEvaluator
Um modelo como juiz—um modelo de linguagem que pontua as saídas com uma escala de pontuação configurável (numérica, pass/fail, customizada) e opcionalmente instruções específicas do domínio. Aplica julgamentos subjetivos de forma consistente em todo o dataset.
Customizing the Pointwise Model-as-Judge Prompt
SampleGenerator
Ajuda a evitar datasets apenas com autoria manual sintetizando mais amostras de um conjunto seminal usando o modelo de sua escolha. Datasets robustos têm milhares de amostras com variedade; a mão não escala, então SampleGenerator sintesiza mais amostras a partir de alguns seeds.
Meet the Evaluations framework — SampleGenerator
ToolCallEvaluator (para apps agentic)
Para aplicativos que usam agent e tool-calling, você pode verificar se um agent produz a trajetória esperada de chamadas de ferramentas usando TrajectoryExpectation e ToolCallEvaluator. Isto combina uma LanguageModelSession com as ferramentas, captura a transcrição estruturada e relata junto com outras avaliações no Xcode.
Create robust evaluations for agentic apps (Session 299)
Quando usar vs evitar
Use quando:
- ✅ Capturando regressões de prompt/modelo em CI—detectar degradação antes do envio
- ✅ Avaliação fuzzy/qualitativa—pontuação de saída com model-as-judge
- ✅ Validação de comportamento de tool-calling do agente—verificar que ferramentas corretas são chamadas
- ✅ Comparação de estratégias de prompt—rodar duas avaliações lado a lado
Evite quando:
- ❌ Lógica determinística—já coberta por assertions simples de Swift Testing
- ❌ Datasets minúsculos—hand-picked com poucas amostras (resultados podem não ser significativos)
- ❌ XCTest targets—o trait
.evaluatesé específico de Swift Testing - ❌ Em lugar de testes unitários básicos
Meet the Evaluations framework — Avoid cuando section
Tip: SampleGenerator não é treinável manualmente
Use SampleGenerator para sintetizar mais amostras automaticamente de um conjunto seminal. Não tente calibrar/treinar o gerador manualmente—use worked examples para calibrar o model judge (o avaliador), não o gerador de amostras.
Improve your prompts by hill-climbing with Evaluations (Session 335)
Avaliação de model judge com Cohen’s κ
Ao usar um model judge, compare suas pontuações com as de um avaliador humano especialista usando Cohen’s κ (kappa) em vez de precisão simples quando distribuições de score são irregulares. Isso valida que o juiz está alinhado com o padrão ouro humano.
WWDC 2026: Improve your prompts by hill-climbing with Evaluations
Framework disponível em
- iOS 27
- iPadOS 27
- macOS 27
- watchOS 27
- visionOS 27
- Não em tvOS
É um framework de tempo de desenvolvimento/teste—você o vincula a partir do seu alvo de teste, não é distribuído dentro da app.
Axiom — Claude Code Agents for iOS Development
Recursos adicionais
- Documentação oficial: Apple Developer Documentation — Evaluations
- Meet the Evaluations framework (298): Vídeo WWDC26
- Create robust evaluations for agentic apps (299): Vídeo WWDC26
- Improve your prompts by hill-climbing (335): Vídeo WWDC26
- Axiom Reference: Foundation Models & Evaluations
- ByteIOTA Article: Apple Evaluations Framework: Measure iOS AI Feature Quality
- Blake Crosley Blog: Evaluations: XCTest for Model Quality (iOS 27)