Чому новіші моделі Anthropic гірше справляються зі строгими схемами виклику інструментів
Новіші моделі, такі як Opus 4.8 та Sonnet 5, припускаються помилок у вкладених аргументах інструментів, вигадуючи зайві ключі. Це погіршення спричинене їхнім донавчанням під Claude Code, клієнт якого автоматично виправляє помилки.

Чому це важливо
Вам потрібно проектувати простіші та плоскіші схеми або впроваджувати гнучкі парсери у ваших фреймворках агентів для запобігання непередбачуваним збоям.
TL;DR
- 01Нові флагманські моделі оптимізовані під гнучкий клієнт Claude Code, який виправляє дрібні помилки.
- 02Розробникам агентів варто впровадити толерантне парсування JSON для уникнення збоїв виклику інструментів.
- 03Видалення блоків міркувань з історії перед викликом інструменту знижує частоту помилок удвічі.
Ключові факти
- Моделі під впливом
- Claude Opus 4.8, Sonnet 5
- Частота помилок у довгій історії
- Близько 20%
- Ефект видалення блоків міркувань
- Зниження помилок на 50%
Пастка вседозволеності Claude Code
Дослідження останніх флагманських моделей Anthropic, включаючи Opus 4.8 та Sonnet 5, виявило несподіване погіршення точності при виклику структурованих інструментів із вкладеними схемами (наприклад, масивом edits[]). Моделі схильні вигадувати додаткові ключі всередині JSON-об'єктів, такі як type, id, kind, unique, matchCase та in_file. Хоча сам контент залишається побайтово правильним, валідація схеми не проходить.
Ця поведінка сильно залежить від контексту. Вона не виникає в поодиноких запитах, але з'являється у довгих логах роботи агентів. Видалення блоків міркувань (thinking blocks) з історії знижує частоту помилок на 50%.
Як Claude Code обробляє неточності
Внутрішній клієнт Claude Code надзвичайно лояльний до помилок моделі. Аналіз його мініфікованого коду показує наступні механізми автокорекції:
- Виявлення витоку розмітки
<invoke>у тексті та автоматичний повтор. - Спеціальний кінцевий автомат для обробки некоректних викликів.
- Відновлення пошкоджених Unicode-послідовностей.
- Автоматичне мапування аліасів: приймає
old_strзамістьold_string, а такожnew_strзамістьnew_string. - Мовчазне фільтрування неочікуваних ключів без використання суворого режиму валідації.
Оскільки навчання з підкріпленням відбувається у такому середовищі, моделі звикають до того, що клієнт самостійно виправляє їхні помилки.
Спробуй за 2 хвилини
const cleanArgs = (args) => {
const path = args.path || args.file_path;
const old_string = args.old_str || args.old_string;
const new_string = args.new_str || args.new_string;
return { file_path: path, old_string, new_string };
};javascript
✓ Коли використовувати
- При створенні агентних систем, де стійкість виклику інструментів є критично важливою.
- При переході зі старих моделей Anthropic на нові Opus 4.8 та Sonnet 5.
✕ Коли НЕ варто
- Не актуально, якщо ваші агенти використовують лише прості текстові відповіді без виклику структурованих інструментів.
Що зробити сьогодні
- Спростіть схеми своїх інструментів, зробивши їх максимально плоськими без вкладених об'єктів.
- Додайте мовчазне ігнорування невідомих JSON-ключів у свій парсер відповідей агентів.
- Вимкніть строгий режим для викликів інструментів Anthropic у разі виникнення помилок складності.