Validando saídas de ferramentas (Pydantic)
Analise cada saída de ferramenta por meio de um modelo Pydantic — falhe explicitamente quando a resposta estiver malformada.
Validando saídas de ferramentas (Pydantic) é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Confie, mas verifique
As saídas das ferramentas vêm do mundo externo — APIs, páginas da web e modelos. Uma resposta malformada ou inesperada pode fazer seu agente falhar ou, pior ainda, inserir dados incorretos silenciosamente no LLM.
Valide todas as saídas das ferramentas usando um esquema.
Modelos Pydantic
Defina os formatos esperados:
from pydantic import BaseModel, HttpUrl
class SearchResult(BaseModel):
title: str
url: HttpUrl
snippet: str
score: float = 0.0Validate at the Boundary
from pydantic import ValidationError
def search(query):
raw = requests.post('https://api.tavily.com/search', json={'query': query}).json()
results = []
for r in raw.get('results', []):
try:
results.append(SearchResult.model_validate(r))
except ValidationError as e:
log.warning('Bad search result skipped: %s', e)
return resultsListas com validação de modelo
Valide a resposta inteira:
from pydantic import BaseModel
class SearchResponse(BaseModel):
results: list[SearchResult]
response = SearchResponse.model_validate(raw)Validadores de campos
Verificações personalizadas dentro dos campos:
from pydantic import field_validator
class SearchResult(BaseModel):
score: float
@field_validator('score')
@classmethod
def score_in_range(cls, v):
if not 0 <= v <= 1:
raise ValueError('score out of [0,1]')
return vRigoroso versus flexível
Por padrão, o Pydantic converte tipos (texto -> inteiro quando possível). Para verificações rigorosas:
from pydantic import StrictInt
class User(BaseModel):
age: StrictInt # rejects '25' (string)Default Values for Missing Fields
class Tool(BaseModel):
name: str
description: str = 'No description provided' # fallbackValidar saídas estruturadas do LLM
Force o modelo a retornar JSON compatível com um esquema Pydantic — consulte a lição sobre saídas estruturadas. Valide novamente no limite como uma camada adicional de defesa.
Validar argumentos das ferramentas
Valide os argumentos de tool_call.arguments do modelo antes de executar:
class SearchArgs(BaseModel):
query: str
k: int = 5
args = SearchArgs.model_validate_json(tool_call.function.arguments)
results = search(args.query, args.k)Erros de validação como resultados de ferramentas
Se a validação falhar, retorne o erro ao modelo para que ele possa fazer uma nova tentativa com argumentos corrigidos:
try:
args = SearchArgs.model_validate_json(...)
except ValidationError as e:
return {'error': f'Invalid arguments: {e}'}Versionamento de esquemas
Quando o esquema de saída de uma ferramenta mudar, crie uma nova versão:
class SearchResultV2(BaseModel):
title: str
url: HttpUrl
relevance: float # was 'score' in v1Gerar esquema JSON a partir do Pydantic
Para definições de esquemas de ferramentas, derive o esquema da sua classe do Pydantic:
schema = SearchArgs.model_json_schema()
# Use directly as the 'parameters' for an OpenAI tool definition.Objetivo da validação
Por que usar Pydantic em todas as saídas das ferramentas?
Recapitulação
Pydantic em todos os limites: argumentos das ferramentas na entrada, saídas das ferramentas na saída e saídas estruturadas do LLM. Falhas explícitas são melhores que corrupção silenciosa.
Perguntas Frequentes
A aula “Validando saídas de ferramentas (Pydantic)” é grátis?
Sim — o texto completo de “Validando saídas de ferramentas (Pydantic)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.
O que vou aprender em “Validando saídas de ferramentas (Pydantic)”?
Analise cada saída de ferramenta por meio de um modelo Pydantic — falhe explicitamente quando a resposta estiver malformada. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Agents?
Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Validando saídas de ferramentas (Pydantic)”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Agents?
Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Ferramentas idempotentes e efeitos colaterais
- Novas tentativas com recuo exponencial
- Limites de tempo e disjuntores
- Validando saídas de ferramentas (Pydantic)