Модель предлагает данные, executor принимает решение
Tool call — структурированное предложение вызвать именованную операцию. Executor проверяет allowlist, schema, типы, диапазоны, authorization, timeout и размер результата до side effect. JSON, сгенерированный моделью, остаётся недоверенным input. F14.
Для pure tool add(a,b) контракт можно записать как частичную функцию: только object с точными keys и конечными numbers переходит в result. В Python bool является subtype int, поэтому validator должен отклонять его отдельно, если schema требует число, но не boolean.
Что показывает модель. Trace разделяет model output, parser, validator, authorization, execution и observation. Ошибка tool возвращается как typed result, а не маскируется выдуманным успехом. Операции записи получают idempotency key, confirmation и audit event; read-only и write permissions не смешиваются.
Граница применимости. Schema validation не предотвращает вредную, но формально корректную команду. Tools могут возвращать prompt injection или секреты. Нельзя давать модели shell/network/filesystem по умолчанию; sandbox, least privilege, rate limit и human approval определяются threat model конкретной системы.