Кодинг-агенти добре пишуть Swift, але не можуть довести справу до кінця

Я витратив місяці на тестування ШІ-кодинг-агентів на реальних завданнях Swift та Xcode. Я не використовував прості демо-версії. Я давав їм справжні завдання з цілями збірки (build targets) та тестами.

Перша чернетка зазвичай непогана. Здатна модель пише код, який виглядає правильним. Типи збігаються. View мають сенс. Якби написання Swift було єдиною проблемою, ці інструменти вже були б досконалими.

Справжня проблема виникає після першої чернетки. Це розрив між кодом, який виглядає завершеним, і кодом, який є насправді правильним.

Сучасні інструменти, такі як Claude Code або Codex, добре справляються з помилками компіляції. Вони не видають вам код, який не збирається. Справжні невдачі — це ті, які компілятор не може побачити.

Ці невдачі марнують мій час:

• Невідповідність намірам (Intent mismatch): Код компілюється, а тести проходять. Проте поведінка неправильна. Агент слідує «зеленому світлу» успішного тесту замість вашої справжньої мети. У нього немає способу перевірити намір.

• Race conditions у паралельних обчисленнях (Concurrency races): Код збирається без помилок, але має data races. Вони з'являються лише під час виконання (runtime). Агент бачить успішну збірку і рухається далі. Виправлення таких проблем зазвичай потребує перепроектування, з чим агент не справляється.

• Цикли регресії: Агент виправляє один баг, але створює інший. Виправляючи другий баг, він скасовує перше виправлення. Він потрапляє в цикл, коли коливається між двома зламаними станами. Йому бракує пам'яті про те, що не спрацювало раніше.

• Погана архітектура: Агент пише код, який суперечить фреймворку. Він ігнорує структуру вашого додатка. Це працює для тимчасового скрипта, але не працює в реальній кодовій базі.

Це не проблеми мови. Модель знає Swift. Вона пропускає те, чого не бачить компілятор. Вона не знає, чи відповідає результат вашому наміру і чи є структура професійною.

Це перекладає витрати з токенів на увагу. Агент, який вимагає вашого нагляду кожні кілька кроків, не економить вашу роботу. Він перетворив написання коду на процес нагляду.

Я покращую свої результати, змінюючи цикл навколо моделі. Я зосереджуюсь на тому, що агент перевіряє та запам'ятовує.

Чи збігається це з вашим досвідом? Коли ви запускаєте агентів на платформах Apple, де саме стаються збої? Це невідповідність намірам, runtime races чи щось інше?

Джерело: https://dev.to/jbrackin/coding-agents-are-good-at-writing-swift-theyre-bad-at-finishing-it-md3

Додаткова спільнота для навчання: https://t.me/GyaanSetuAi