Не ставь max_length на Pydantic поля для LLM output / home / skills / no-max-length-on-llm-output
skillpydanticllmgotcha

No max_length on LLM-facing Pydantic fields

Не ставь max_length=N на строковые поля в Pydantic-моделях которые используются как response_format в LLM-вызовах. Особенно если N маленькое (200-500).

Why

Реальный кейс из intel-collector 2026-07-02:

class InterestScore(BaseModel):
    reasoning: str = Field(description="1-2 sentences why this score", max_length=300)

Мой промпт просил "1-2 sentences" → я думал 300 chars хватит. Но:

Логика "модели легко следуют constraint" не работает для мягких инструкций формата "1-2 sentences". Модель следует смыслу ("brief"), не character count.

How to apply

Никогда:

Вместо этого:

Исключения когда max_length OK:

Гнезда где эту ошибку легко повторить

Симптом в логах

1 validation error for MyModel
field_name
  String should have at most N characters

Связано

Metadata
title
Не ставь max_length на Pydantic поля для LLM output
tags
['skill', 'pydantic', 'llm', 'gotcha']
created
2026-07-02
context
intel-collector 2026-07-02 debugging