Що саме робить агент AI? Повний аналіз витоку 500 000 рядків коду Claude Code

51,2 тис. рядків коду, 1906 файлів, 59,8 МБ source map. В ніч на 31 березня Чаофань Шоу з Solayer Labs виявив, що флагманський продукт Anthropic Claude Code розкрив повний вихідний код у публічному репозиторії npm. Протягом кількох годин код було віддзеркалено на GitHub, кількість fork’ів перевищила 4,1 тис.

Це не перший раз, коли Anthropic припускається такої помилки. Коли Claude Code уперше вийшов у лютому 2025 року, сталася аналогічна витікання того самого source map. Цього разу номер версії — v2.1.88, причина витоку та сама: інструмент збирання Bun за замовчуванням генерує source map, а в .npmignore цей файл було пропущено.

Більшість публікацій підраховують у витоках «пасхалки», наприклад, систему віртуальних домашніх тварин або «режим під прикриттям», який дозволяє Claude анонімно надсилати код в open-source проєкти. Але по-справжньому цікаве питання, яке варто розібрати, ось яке: чому той самий Claude-модель демонструє таку різницю між вебверсією та Claude Code? Що саме робить 51,2 тис. рядків коду?

Модель — лише верхівка айсберга

Відповідь захована в структурі коду. Згідно з реверс-аналізом витоку коду з GitHub-спільноти, із 51,2 тис. рядків TypeScript безпосередньо за виклик AI-моделі відповідає лише близько 8000 рядків, тобто 1,6% від загального обсягу.

То що робить решта 98,4%? Два найбільші модулі — пошуковий/запитувальний рушій (46 тис. рядків) і система інструментів (29 тис. рядків). Пошуковий рушій обробляє виклики LLM API, потоковий вивід (streaming), оркестрацію кешів і керування багатокроковими діалогами. Система інструментів визначає близько 40 вбудованих інструментів і 50 команд зі слешами, формуючи набір, схожий на плагінну архітектуру: кожен інструмент має власний незалежний контроль доступів.

Крім того, є ще 25 тис. рядків коду для рендерингу термінального UI (з них файл print.ts сягає 5594 рядків, а один єдиний функціонал — понад 3167 рядків), 20 тис. рядків коду безпеки та контролю прав (включно з 23 позиційними Bash-перевірками безпеки та 18 екранованими вбудованими командами Zsh), а також 18 тис. рядків системи оркестрації мультиагентів.

Дослідник машинного навчання Себастьян Расчка після аналізу витеклого коду зазначив, що Claude Code є сильнішим за вебверсію з тією ж моделлю не через саму модель, а через програмний «каркас» навколо неї: завантаження контексту репозиторію, планування спеціалізованих інструментів, стратегії кешування та співпрацю субагентів. Він навіть вважає, що якщо застосувати таку саму інженерну архітектуру до інших моделей — DeepSeek чи Kimi тощо — можна отримати майже такий самий приріст програмувальної продуктивності.

Інтуїтивне порівняння допомагає зрозуміти цю різницю. Ви вводите запит у ChatGPT або на вебсайті Claude — модель опрацьовує його й повертає відповідь, а на завершення діалогу нічого не залишається. Але підхід Claude Code зовсім інший: під час запуску він спочатку читає ваші файли проєкту, розуміє структуру вашої кодової бази, запам’ятовує ваші вподобання, наприклад «не макетувати базу даних у тестах». Він може напряму виконувати команди в вашому терміналі, редагувати файли, запускати тести; для складних задач він розбиває їх на кілька підзадач і розподіляє між різними субагентами для паралельного опрацювання. Іншими словами, вебверсія AI — це вікно запитань і відповідей, а Claude Code — співробітник, який живе на вашому комп’ютері.

Хтось порівняв цю архітектуру з операційною системою: 42 вбудовані інструменти — це системні виклики, система прав доступу — це управління користувачами, протокол MCP — драйвери пристроїв, а оркестрація субагентів — диспетчеризація процесів. Кожен інструмент за замовчуванням під час виходу з фабрики позначено як «небезпечний, придатний для запису», якщо тільки розробник явно не оголосив, що він безпечний. Інструменти для редагування файлів змушують перевіряти, чи читали ви цей файл: якщо ви не читали, змінювати його не дозволяється. Це не «чат-бот з кількома інструментами-плагінами», а середовище виконання, де ядро — LLM, а також вбудовані повні механізми безпеки.

Це означає одну річ: конкуренційний бар’єр для AI-продуктів, можливо, не на рівні моделей, а на рівні інженерії.

Кожен кеш-пробій — витрати зростають у 10 разів

У витеклому коді є файл promptCacheBreakDetection.ts, який відстежує 14 векторів, здатних призвести до втрати (失效) prompt cache. Чому інженери Anthropic витрачають стільки зусиль, щоб запобігти кеш-пробоям?

Подивіться на офіційні тарифи Anthropic — і все стане ясно. Наприклад, для Claude Opus 4.6 стандартна ціна для вхідних даних — 5 доларів за кожен мільйон токенів, але якщо спрацьовує кеш, ціна читання становить лише 0,5 долара, тобто на 90% дешевше. Натомість кожен кеш-пробій збільшує витрати на міркування (inferencing) у 10 разів.

Це пояснює велику кількість рішень в архітектурі, які у витеклому коді виглядають як «надмірна інженерність». Під час запуску Claude Code завантажує поточну git- гілку, останні записи commit і файл CLAUDE.md як контекст; ці статичні дані кешуються глобально, а межі позначаються маркерами, які розділяють динамічний контент, щоб кожна розмова не виконувала повторну обробку того, що вже є в контексті. У коді також є механізм sticky latches, який не дає перемиканням режимів зруйнувати вже встановлений кеш. Субагенти спроєктовані для повторного використання кешу батьківського процесу, а не для побудови власного контекстного вікна з нуля.

Є одна деталь, яку варто розгорнути. Користувачі AI-інструментів для програмування всі знають: чим довша розмова, тим повільніша відповідь AI, бо на кожному кроці всю попередню історію потрібно знову надсилати моделі. Типовий підхід — видаляти старі повідомлення, щоб звільнити місце, але проблема в тому, що видалення будь-якого повідомлення руйнує безперервність кешу, через що всю історію діалогу треба опрацьовувати заново: затримка і витрати ростуть одночасно.

У витеклому коді існує механізм cache_edits: він не видаляє повідомлення «по-справжньому», а на рівні API ставить старим повідомленням мітку «пропуск» (skip). Модель більше не бачить ці повідомлення, але безперервність кешу не руйнується. Це означає: для тривалої кількахгодинної розмови, після очищення сотень старих повідомлень швидкість наступної відповіді майже така сама, як у першій. Для звичайних користувачів це й є базова відповідь на «чому Claude Code підтримує нескінченно довгі діалоги і не сповільнюється».

Згідно з внутрішніми моніторинговими даними, що витекли (з коментарів у коді autoCompact.ts, із позначкою дати 10 березня 2026 року), до введення верхньої межі для автоматичного стискання, Claude Code щодня витрачав приблизно 250 тис. викликів API. У 1279 користувацьких session виникало 50+ випадків безперервного провалу автоматичного стискання; найгірший session безперервно провалювався 3272 рази. Виправлення було простим: додали одну стрічку обмеження — MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3.

Отже, для AI-продуктів витрати на інференс моделі можуть бути не найдорожчим шаром, а саме збої в керуванні кешами стають критичними.

44 перемикачі, спрямовані в один бік

У витеклому коді заховано 44 feature flags — вже скомпільовані перемикачі функцій, просто вони не були опубліковані назовні. Згідно з аналізом спільноти, ці flags розділені на п’ять категорій за функціональними доменами, причому найщільніша — клас «самостійних агентів» (12), що вказує на систему з назвою KAIROS.

KAIROS у вихідному коді згадується понад 150 разів: це режим постійно запущеного фоновго демона (background daemon). Claude Code більше не просто інструмент, який реагує лише тоді, коли ви самі його викликаєте — це агент, що постійно працює у фоновому режимі: безперервно спостерігає, веде записи і в потрібні моменти сам ініціює дії. Умовою є не переривати користувача: будь-які операції, що потенційно можуть блокувати користувача довше ніж 15 секунд, відкладатимуться.

KAIROS також вбудовує сприйняття фокусу термінала. У коді є поле terminalFocus, яке в реальному часі визначає, чи дивиться користувач на вікно термінала. Коли ви перемикаєтеся на браузер або інший застосунок, агент визначає, що «ви не в терміналі», і переходить у автономний режим: самостійно виконує задачі, напряму надсилає код, не чекаючи вашого підтвердження. Коли ви повертаєтеся до термінала, агент одразу повертається в режим співпраці: спочатку звітує, що саме щойно зробив, а потім запитує вашу думку. Рівень автономності не є фіксованим — він динамічно змінюється разом із вашою увагою. Це вирішує давню незручність AI-інструментів: повністю автономний AI викликає недовіру, а повністю пасивний AI працює надто низькоефективно. Вибір KAIROS полягає в тому, щоб активність AI динамічно регулювалася залежно від уваги користувача: ви на нього дивитесь — він чемно чекає, ви відволікаєтеся — він сам береться за роботу.

Ще один підсистемний блок KAIROS називається autoDream: після накопичення 5 сесій або через інтервал 24 години агент запускає у фоновому режимі процес «рефлексії» в чотири кроки. Спочатку він сканує наявні спогади, щоб зрозуміти, що саме наразі він знає. Потім витягує нові знання з логів діалогу. Далі він об’єднує нові й старі знання, виправляє суперечності та прибирає дублікати. В кінці він стисло переглядає індекси, видаляючи застарілі записи. Цей дизайн запозичує теорію з когнітивних наук про консолідацію пам’яті. Поки людина спить, вона впорядковує спогади про день; KAIROS робить те саме, коли користувач залишає систему: організовує контекст проєкту. Для звичайних користувачів це означає: чим довше ви використовуєте Claude Code, тим точніше він розуміє ваш проєкт — і не лише «пам’ятає, що ви казали».

Друга велика категорія — «анти-дистиляція та безпека» (8 flags). Найбільш помітний механізм — fake_tools: коли одночасно виконуються 4 умови (увімкнений flag під час компіляції, активний CLI-ентрі, використовується API першої сторони, а GrowthBook віддалений перемикач має значення true), Claude Code інжектує в API-запит фальшиві визначення інструментів. Мета — забруднити датасети, які можуть бути використані для запису API-трафіку та тренування конкуруючих моделей. Це абсолютно нова форма захисту в гонці озброєнь AI: це не перешкоджає вам копіювати, а змушує вас копіювати неправильні речі.

Крім того, в коді з’являються кодові назви моделі Capybara (три рівні: стандартна версія, fast-версія та версія з мільйонним контекстним вікном), і спільнота широко припускає, що це внутрішні кодові назви серії Claude 5.

Пасхалка: у 51,2 тис. рядків коду схована електронна домашня тварина

Поза всіма серйозними інженерними архітектурами та механізмами безпеки, інженери Anthropic тихенько зібрали ще й повноцінну систему віртуальних домашніх тварин: внутрішній код BUDDY.

Згідно з витеклим кодом та аналізом спільноти, BUDDY — це віртуальний (псевдоречовий) термінальний вихованець: він з’являється поруч із полем вводу у вигляді ASCII-пухирця. У нього 18 видів (зокрема водяний свиня, саламандра, гриб, привид, дракон, а також низка оригінальних істот на кшталт Pebblecrab, Dustbunny, Mossfrog). Види поділено на п’ять рівнів за рідкістю: звичайний (60%), рідкісний (25%), рідкісніший (10%), епічний (4%) і легендарний (1%). У кожного виду є «сяюча варіація» (shiny): найрідкісніший Shiny Legendary Nebulynx трапляється з імовірністю лише один на десять тисяч.

Кожен BUDDY має п’ять атрибутів: DEBUGGING (відлагодження), PATIENCE (витримка), CHAOS (хаос), WISDOM (мудрість) і SNARK (зла сатира/«отруйні» жарти). Також у нього є капелюхи: варіанти включають корону, циліндр, капелюх із гвинтами, сяйво/ореол (halo), капелюх чаклуна — і навіть мініатюрну качечку. Хеш значення user ID визначає, яку саме тваринку ви «виведете». Claude згенерує для неї ім’я й характер.

За планом запуску, BUDDY мав стартувати в інтенсивному тестуванні з 1 по 7 квітня, а офіційно вийти 5 травня — спочатку для співробітників Anthropic.

51,2 тис. рядків коду, 98,4% — це хардкорна інженерія, але в кінці хтось витратив час, щоб зробити електронну саламандру, яка буде носити капелюх із гвинтами. Можливо, саме ця — найлюдяніша стрічка коду серед усього витоку.

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
Додати коментар
Додати коментар
Немає коментарів
  • Закріпити