0Pricing
AI Agents · Aula

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.0

Validate 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 results

Listas 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 v

Rigoroso 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'   # fallback

Validar 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 v1

Gerar 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

  1. Ferramentas idempotentes e efeitos colaterais
  2. Novas tentativas com recuo exponencial
  3. Limites de tempo e disjuntores
  4. Validando saídas de ferramentas (Pydantic)
← Voltar para AI Agents