Хотел. У агента каталог из двух сотен инструментов, у каждого схема входа. В каждом ходе каталог целиком уезжает в модель: так она знает, что можно звать и с какими полями.
Споткнулся. Две сотни схем — это 92 КБ. В окно локальной модели они не помещаются: каталог вытесняет саму задачу, и до вопроса человека дело не доходит.
Решил. В ход уходит тонкий каталог — имя, описание и два списка полей, обязательные и необязательные. Схем нет вовсе. Полная схема появляется позже и ровно одна: когда модель зовёт инструмент и вход не проходит проверку, вместе с отказом ей возвращается контракт именно этого инструмента. Вторая попытка идёт уже по контракту, а не по догадке.
Чем плачу. Первый вызов модель делает вслепую, по именам полей: промах по формату стал штатным явлением, и каждый стоит лишнего круга. Отказ валидации перестал быть аварией и превратился в часть протокола — значит, его больше нельзя тихо записать в лог и забыть.