LangSmith Evals
Missao
Transformar requisitos de comportamento em evidencias reproduziveis. O LangSmith e o control plane de evals agenticos: Dataset, Examples, Experiments, Traces e Feedback. O repositorio continua contendo codigo, pytest, fixtures de bootstrap e oraculos deterministicos.
Roteamento
- Prompt Engineer: criar, versionar e comparar candidatos de prompt com baseline e Experiments pareados.
- Engineer: desenhar ou alterar dataset/evaluators, instrumentar target, executar experiments, backtests e implementar gates.
- Auditor: revisar evidencias existentes e emitir
GO, NO-GO ou BLOCKED; nao corrigir a propria evidencia.
- No Codex, prefira os custom agents
langsmith_prompt_engineer, langsmith_evals_engineer e langsmith_evals_auditor quando instalados.
A separacao e intencional: quem escolhe rubricas e implementa o target nao deve ser o unico aprovador da promocao.
Contrato nao negociavel
- Todo eval que execute LLM, node agentico, trajetoria ou grafo MUST produzir um LangSmith Experiment real.
- Tracing isolado, stdout, screenshot ou JSON local nao equivalem a Experiment.
- Numeros, schema, DAX/SQL, argumentos de tool, artefatos, seguranca e invariantes usam oraculos deterministicos; LLM-as-judge avalia apenas criterios semanticos.
- Baseline e candidato usam o mesmo Dataset, split, evaluators e condicoes comparaveis.
- Outputs historicos nao sao automaticamente ground truth. Use referencia validada, avaliador sem referencia ou revisao humana.
- Evals nao podem causar side effects reais. Use adapters fake, sandbox, dry-run, mocks contratuais ou test mode explicitamente verificado.
- Nenhum resultado e inventado. Sem credencial/rede/evidencia:
BLOCKED, nunca PASS ou SKIP silencioso.
- Casos criticos sao gates individuais; media agregada nao pode esconder regressao critica.
- Segredos e PII nao entram em dataset, metadata, trace ou prompt do judge sem sanitizacao e politica aprovada.
Fluxo obrigatorio do Engineer
1. Descobrir o sistema
Leia constituicao/AGENTS/CLAUDE, codigo do target, State, tools, testes, tracing, config e evals existentes. Reaproveite harness valido; nao crie runner paralelo sem necessidade comprovada.
Classifique o target:
| Target |
O que medir |
| Chatbot |
resposta final, aderencia, seguranca |
| RAG |
retrieval, relevancia, groundedness, resposta |
| Agent/ReAct |
resposta, tool calls, trajetoria, side effects |
| LangGraph node |
transformacao de State e contrato do node |
| Grafo completo |
outcome, trajetoria, custo, latencia, robustez |
2. Escrever o eval contract
Antes do codigo, registre:
- comportamento e risco da mudanca;
- unidade de avaliacao: response, retrieval, step/node, trajectory ou graph;
- segmentos e casos criticos;
- dataset/split/version;
- baseline e candidatos;
- evaluators, rubricas e thresholds;
- metadata obrigatoria;
- regra de promocao e rollback.
Se o criterio nao puder ser transformado em exemplo, evaluator ou gate, ele ainda nao e criterio de aceite.
3. Construir o Dataset
Inclua happy paths, edge cases, regressions, adversarial/safety e casos reais sanitizados. Use splits como smoke, regression, critical, adversarial e production-backtest quando fizer sentido.
Cada Example deve ter input minimo, reference output somente quando confiavel e metadata para segmentacao. Versione semanticamente por metadata/manifest e registre a origem dos casos.
4. Implementar evaluators
Ordem de preferencia:
- deterministico: igualdade/tolerancia, schema, regex, AST, parser, tool args, invariantes e ausencia de side effects;
- heuristico: regras explicitas e auditaveis;
- LLM-as-judge: somente semantica, com rubric atomica, structured output e evidencias citadas;
- humano: ambiguidade de dominio, calibracao e casos de alto risco.
Um evaluator retorna nome estavel, score/label e comentario util. Nao combine criterios independentes em uma unica nota opaca. Calibre judges contra exemplos rotulados e teste vies de ordem, verbosidade, self-preference e prompt injection.
5. Instrumentar o target
O target deve aceitar o formato do Example e retornar output avaliavel. Para nodes/grafos, capture estado relevante e trajetoria sem acoplar o evaluator a detalhes irrelevantes. Em test mode, substitua ferramentas destrutivas e prove que nenhum side effect real ocorreu.
6. Executar Experiment
Use evaluate/aevaluate; registre experiment_prefix, descricao e metadata. No minimo:
git_sha, branch e versao do runtime;
- modelo, provider e parametros;
- reasoning effort/budget;
- versao de prompt, tools e graph;
- dataset, split e versao;
- baseline/candidate e motivo da mudanca.
Guarde URL/ID do Dataset e Experiment. O relatorio local e apenas exportacao derivada.
7. Comparar e decidir
Compare por evaluator e segmento, nao apenas pela media. Relate qualidade, custo, latencia, tokens, erros e incerteza. Para mudancas de modelo, prompt, tools ou graph, execute baseline e candidatos pareados.
Gate recomendado:
GO = todos os casos critical passam
AND nenhum contrato deterministico regride
AND thresholds semanticos passam
AND custo/latencia ficam dentro do budget
AND side effects permanecem isolados
8. Backtest e producao
Para sistemas em producao, converta traces representativos sanitizados em Dataset e rode o candidato offline. Nao use output historico como verdade por padrao. Depois da promocao, configure online evaluators/amostragem e alertas para drift, erros, custo, latencia e regressao por segmento.
9. Verificar
Rode testes locais, execute o Experiment e leia o resultado real. A entrega deve conter comandos executados, IDs/URLs, scores segmentados, failures, decisao e limitacoes.
Fluxo obrigatorio do Prompt Engineer
- Ler
references/prompt-engineering.md e inspecionar prompts, datasets e evals existentes.
- Registrar prompt baseline, versao do modelo, settings, Dataset/split e gates antes de editar.
- Comecar com instrucao simples; adicionar contexto, formato ou few-shot somente para corrigir failure observado.
- Criar candidatos versionados, alterando uma variavel significativa por iteracao.
- Comparar
temperature ou top_p, nunca ambos na mesma iteracao.
- Executar baseline e candidatos no mesmo Dataset, split, evaluators e condicoes.
- Entregar diff, hipotese, IDs/URLs dos Experiments, resultados por gate/segmento, failures, custo e latencia.
- Recomendar o candidato, sem aprovar a propria promocao; solicitar o Auditor para o gate final.
Fluxo obrigatorio do Auditor
- Confirmar identidade e versionamento do Dataset/Experiment.
- Verificar comparabilidade baseline-candidato e metadata.
- Revisar adequacao dos evaluators e calibracao do judge.
- Inspecionar failures e casos criticos, nao somente agregados.
- Verificar isolamento de side effects e ausencia de leakage/PII.
- Validar thresholds contra config/constituicao, sem inventar criterio retroativo.
- Emitir:
GO: evidencia completa e gates aprovados;
NO-GO: evidencia real mostra regressao/violacao;
BLOCKED: evidencia ausente, incomparavel ou inacessivel.
Formato de saida
# LangSmith Eval Report
## Decisao
GO | NO-GO | BLOCKED
## Escopo
- Target:
- Mudanca:
- Dataset/split/version:
- Baseline Experiment:
- Candidate Experiment:
## Evidencias
| Evidencia | ID/URL/comando | Resultado |
|---|---|---|
## Resultados por gate
| Gate | Baseline | Candidate | Threshold | Status |
|---|---:|---:|---:|---|
## Casos criticos e regressions
- ...
## Custo, latencia e confiabilidade
- ...
## Findings / acoes
1. ...
Referencias do plugin
Leia references/prompt-engineering.md para design e iteracao de prompts, references/patterns.md para exemplos de implementacao e references/audit-checklist.md para criterios de promocao e links oficiais. Consulte a documentacao oficial atual antes de assumir assinatura de SDK.
1---2name: langsmith-evals3description: Especialista LangSmith-first para projetar, implementar, executar e auditar evals de chatbots, RAG, agentes, nodes e grafos; criar datasets/evaluators/experiments/backtests; comparar modelos e aplicar gates de promocao com evidencia. Use em qualquer mudanca de modelo, prompt, tool, retrieval, LangGraph ou comportamento agentico que precise de qualidade mensuravel.4---56# LangSmith Evals78## Missao910Transformar requisitos de comportamento em evidencias reproduziveis. O LangSmith e o **control plane** de evals agenticos: Dataset, Examples, Experiments, Traces e Feedback. O repositorio continua contendo codigo, pytest, fixtures de bootstrap e oraculos deterministicos.1112## Roteamento1314- **Prompt Engineer**: criar, versionar e comparar candidatos de prompt com baseline e Experiments pareados.15- **Engineer**: desenhar ou alterar dataset/evaluators, instrumentar target, executar experiments, backtests e implementar gates.16- **Auditor**: revisar evidencias existentes e emitir `GO`, `NO-GO` ou `BLOCKED`; nao corrigir a propria evidencia.17- No Codex, prefira os custom agents `langsmith_prompt_engineer`, `langsmith_evals_engineer` e `langsmith_evals_auditor` quando instalados.1819A separacao e intencional: quem escolhe rubricas e implementa o target nao deve ser o unico aprovador da promocao.2021## Contrato nao negociavel22231. Todo eval que execute LLM, node agentico, trajetoria ou grafo MUST produzir um LangSmith Experiment real.242. Tracing isolado, stdout, screenshot ou JSON local nao equivalem a Experiment.253. Numeros, schema, DAX/SQL, argumentos de tool, artefatos, seguranca e invariantes usam oraculos deterministicos; LLM-as-judge avalia apenas criterios semanticos.264. Baseline e candidato usam o mesmo Dataset, split, evaluators e condicoes comparaveis.275. Outputs historicos nao sao automaticamente ground truth. Use referencia validada, avaliador sem referencia ou revisao humana.286. Evals nao podem causar side effects reais. Use adapters fake, sandbox, dry-run, mocks contratuais ou test mode explicitamente verificado.297. Nenhum resultado e inventado. Sem credencial/rede/evidencia: `BLOCKED`, nunca PASS ou SKIP silencioso.308. Casos criticos sao gates individuais; media agregada nao pode esconder regressao critica.319. Segredos e PII nao entram em dataset, metadata, trace ou prompt do judge sem sanitizacao e politica aprovada.3233## Fluxo obrigatorio do Engineer3435### 1. Descobrir o sistema3637Leia constituicao/AGENTS/CLAUDE, codigo do target, State, tools, testes, tracing, config e evals existentes. Reaproveite harness valido; nao crie runner paralelo sem necessidade comprovada.3839Classifique o target:4041| Target | O que medir |42|---|---|43| Chatbot | resposta final, aderencia, seguranca |44| RAG | retrieval, relevancia, groundedness, resposta |45| Agent/ReAct | resposta, tool calls, trajetoria, side effects |46| LangGraph node | transformacao de State e contrato do node |47| Grafo completo | outcome, trajetoria, custo, latencia, robustez |4849### 2. Escrever o eval contract5051Antes do codigo, registre:5253- comportamento e risco da mudanca;54- unidade de avaliacao: response, retrieval, step/node, trajectory ou graph;55- segmentos e casos criticos;56- dataset/split/version;57- baseline e candidatos;58- evaluators, rubricas e thresholds;59- metadata obrigatoria;60- regra de promocao e rollback.6162Se o criterio nao puder ser transformado em exemplo, evaluator ou gate, ele ainda nao e criterio de aceite.6364### 3. Construir o Dataset6566Inclua happy paths, edge cases, regressions, adversarial/safety e casos reais sanitizados. Use splits como `smoke`, `regression`, `critical`, `adversarial` e `production-backtest` quando fizer sentido.6768Cada Example deve ter input minimo, reference output somente quando confiavel e metadata para segmentacao. Versione semanticamente por metadata/manifest e registre a origem dos casos.6970### 4. Implementar evaluators7172Ordem de preferencia:73741. **deterministico**: igualdade/tolerancia, schema, regex, AST, parser, tool args, invariantes e ausencia de side effects;752. **heuristico**: regras explicitas e auditaveis;763. **LLM-as-judge**: somente semantica, com rubric atomica, structured output e evidencias citadas;774. **humano**: ambiguidade de dominio, calibracao e casos de alto risco.7879Um evaluator retorna nome estavel, score/label e comentario util. Nao combine criterios independentes em uma unica nota opaca. Calibre judges contra exemplos rotulados e teste vies de ordem, verbosidade, self-preference e prompt injection.8081### 5. Instrumentar o target8283O target deve aceitar o formato do Example e retornar output avaliavel. Para nodes/grafos, capture estado relevante e trajetoria sem acoplar o evaluator a detalhes irrelevantes. Em test mode, substitua ferramentas destrutivas e prove que nenhum side effect real ocorreu.8485### 6. Executar Experiment8687Use `evaluate`/`aevaluate`; registre `experiment_prefix`, descricao e metadata. No minimo:8889- `git_sha`, branch e versao do runtime;90- modelo, provider e parametros;91- reasoning effort/budget;92- versao de prompt, tools e graph;93- dataset, split e versao;94- baseline/candidate e motivo da mudanca.9596Guarde URL/ID do Dataset e Experiment. O relatorio local e apenas exportacao derivada.9798### 7. Comparar e decidir99100Compare por evaluator e segmento, nao apenas pela media. Relate qualidade, custo, latencia, tokens, erros e incerteza. Para mudancas de modelo, prompt, tools ou graph, execute baseline e candidatos pareados.101102Gate recomendado:103104```text105GO = todos os casos critical passam106 AND nenhum contrato deterministico regride107 AND thresholds semanticos passam108 AND custo/latencia ficam dentro do budget109 AND side effects permanecem isolados110```111112### 8. Backtest e producao113114Para sistemas em producao, converta traces representativos sanitizados em Dataset e rode o candidato offline. Nao use output historico como verdade por padrao. Depois da promocao, configure online evaluators/amostragem e alertas para drift, erros, custo, latencia e regressao por segmento.115116### 9. Verificar117118Rode testes locais, execute o Experiment e leia o resultado real. A entrega deve conter comandos executados, IDs/URLs, scores segmentados, failures, decisao e limitacoes.119120## Fluxo obrigatorio do Prompt Engineer1211221. Ler `references/prompt-engineering.md` e inspecionar prompts, datasets e evals existentes.1232. Registrar prompt baseline, versao do modelo, settings, Dataset/split e gates antes de editar.1243. Comecar com instrucao simples; adicionar contexto, formato ou few-shot somente para corrigir failure observado.1254. Criar candidatos versionados, alterando uma variavel significativa por iteracao.1265. Comparar `temperature` ou `top_p`, nunca ambos na mesma iteracao.1276. Executar baseline e candidatos no mesmo Dataset, split, evaluators e condicoes.1287. Entregar diff, hipotese, IDs/URLs dos Experiments, resultados por gate/segmento, failures, custo e latencia.1298. Recomendar o candidato, sem aprovar a propria promocao; solicitar o Auditor para o gate final.130131## Fluxo obrigatorio do Auditor1321331. Confirmar identidade e versionamento do Dataset/Experiment.1342. Verificar comparabilidade baseline-candidato e metadata.1353. Revisar adequacao dos evaluators e calibracao do judge.1364. Inspecionar failures e casos criticos, nao somente agregados.1375. Verificar isolamento de side effects e ausencia de leakage/PII.1386. Validar thresholds contra config/constituicao, sem inventar criterio retroativo.1397. Emitir:140 - `GO`: evidencia completa e gates aprovados;141 - `NO-GO`: evidencia real mostra regressao/violacao;142 - `BLOCKED`: evidencia ausente, incomparavel ou inacessivel.143144## Formato de saida145146```markdown147# LangSmith Eval Report148149## Decisao150GO | NO-GO | BLOCKED151152## Escopo153- Target:154- Mudanca:155- Dataset/split/version:156- Baseline Experiment:157- Candidate Experiment:158159## Evidencias160| Evidencia | ID/URL/comando | Resultado |161|---|---|---|162163## Resultados por gate164| Gate | Baseline | Candidate | Threshold | Status |165|---|---:|---:|---:|---|166167## Casos criticos e regressions168- ...169170## Custo, latencia e confiabilidade171- ...172173## Findings / acoes1741. ...175```176177## Referencias do plugin178179Leia `references/prompt-engineering.md` para design e iteracao de prompts, `references/patterns.md` para exemplos de implementacao e `references/audit-checklist.md` para criterios de promocao e links oficiais. Consulte a documentacao oficial atual antes de assumir assinatura de SDK.