Инструменты без состояния
Инструменты для AI должны быть stateless — каждый вызов независим, без состояния между вызовами. Проблема в том, что shell — очень популярный инструмент, но у него есть коварная фича: current working directory. Sonnet 3.7 ужасно плохо отслеживает, в какой папке он сейчас находится. Поэтому лучше настроить проект так, чтобы все команды работали из одной директории.
В идеале модели нужно было бы обучить избегать команд, которые меняют состояние, даже если они доступны. Если состояние все-таки нужно, то постоянное напоминание модели о текущем состоянии поможет сохранить связность. У RP-сообщества (role-playing) наверняка есть полезный опыт в этой области.
Примеры
- У меня был TypeScript проект, разбитый на три части: common, backend и frontend. Каждая часть — отдельный NPM пакет. Cursor, запущенный из корня проекта, должен был бы переходить в нужную папку для тестирования, но постоянно терялся в current working directory. Намного лучше работало просто открыть конкретный компонент как workspace и работать оттуда.