Длинные цепочки инструментов упираются в таймауты, а не в ограничения модели
Идеальный агент выполнит задачу за несколько вызовов инструментов подряд. На практике каждый вызов имеет задержку: модель обрабатывает результат, решает, что делать дальше, формирует следующий запрос. Если инструменты работают по сети, к этому добавляется сетевая задержка. Цепочка из десяти шагов может занять не секунды, а минуты.
Проблема в том, что сеансы имеют тайм-ауты. Если агент не завершил работу за отведённое время, соединение разрывается и требуется восстановление контекста. Восстановление означает, что модель должна снова прочитать весь предыдущий диалог и понять, на каком шаге она была. Это добавляет токены и задержку.
Пакетирование и аварийные выходы
Выход в том, чтобы сократить количество вызовов. Разработчики переделывают инструменты так, чтобы каждый вызов делал больше: один инструмент вместо трёх отдельных. Это противоречит принципу маленьких инструментов, но экономит время.
Второй подход — явное ограничение глубины цепочки. Агенту разрешают максимум пять вызовов, и если задача не решена за пять, она откатывается как невыполнимая. Это может показаться жёстким, но на практике хорошо спроектированные задачи решаются за два-три шага.
Третий подход — асинхронные инструменты. Вместо того чтобы ждать результата, агент может запустить инструмент и перейти к следующему, а результаты приходят по мере готовности. Это требует того, чтобы модель удерживала в контексте несколько параллельных операций одновременно, и не все модели это хорошо делают.