---
description: >-
  Агент принимает за данность всё, что ему дали: как мы семь недель считали
  его ошибки на ревью.
date: 2026-10-26
author: vova
---

# Пять процентов

Почти во всём, что делает агент, он разбирается лучше меня. Последние семь
недель мы с Клодом считали, что включают в себя остающиеся на долю человека
пять процентов, и получили достаточно однозначный ответ.

## Что я считал

В репозитории этого сайта с 7 сентября лежал файл с мало что говорящим названием «пять процентов» (так исторически сложилось).
Правило было простое: после каждого раза, когда я ревьюил код агента, тот
дописывал туда запись: в чём ошибся, сколько раз уже так ошибался за всё время, и короткое описание наиболее показательных примеров.

Цель была примерно: накопить достаточно случаев, чтобы сделать выводы, а потом, собственно, написать про это статью.

К 27 октября [накопилось](https://github.com/vzakharov/vovazakharov.com/blob/362e3560f2e560660abf1357e7cea6e634cee6da/writing/notes/the-five-percent.md) 219 случаев и четырнадцать видов ошибок — так, как их распределяли сами агенты.

## Главная ошибка

Самый толстый раздел — 93 случая, 42% всех, получил заголовок «What it was handed, it treats as fixed»: что дали, то и данность. Причём он был настолько назойливым, что я написал про него в
[«Агентской библии»](https://agentic.bible/precedent-fallacy), не дожидаясь завершения эксперимента.

Вот несколько характерных примеров:

- Агент выбирал префикс для коммита из списка: `feat`, `fix`, `docs` и так далее. Изменение не подходило ни под один, и он выбрал наименее неподходящий. Моё волевое решение: завести префикс `content:`.
- Девять мест в коде открывали ссылку в новой вкладке, и агент предложил завести для этого отдельный параметр. Моё решение: во всех остальных местах «та же вкладка» сложилась исторически и была ни к чему, так что параметр не нужен — всё просто должно всегда открываться в новой вкладке.
- Роль `artist` в учёте часов он прочитал как «художник» и записал на неё эмблемы для сайта. Artist — это про музыканта.
- Правило «опубликованный адрес страницы не меняется» он применил к переименованной песне и оставил ей старый адрес. Хотя поменять его вместе с названием было бы ничего страшного.

Ирония в том, что в каждом случае рассуждение внутри рамки корректно. Второй
агент, которого попросят проверить первого, его одобрит. Поймать это можно,
только сдвинув саму рамку.

## И остальные тоже

Тринадцать других разделов агент завёл как отдельные ошибки, и названия у них
разные. Но если спросить про каждый, что именно агент принял за данность,
ответ находится почти всегда:

- **Объяснение того, как работает код, подменяет запуск кода** (28) —
  данностью стало его собственное объяснение. Он трижды написал, что GitHub
  отмечает сборку готовой «через несколько минут»; один запрос к API показал
  три секунды.
- **Правит копию перед глазами, а не факт за ней** (19) — данность: копия
  одна, та, что открыта.
- **Просишь источник — получаешь его версию источника** (16) — данность: как
  он помнит текст, так текст и выглядит.
- **Дали форму — заполнит форму** (14) — данность: раз формат позволяет,
  значит, так и надо. Агенту разрешили пометить, кто поёт какой куплет, — он
  построил реестр исполнителей и четыре проверки при сборке. Мне нужно было
  «просто for reference».
- **Текст отвечает на его вопрос, а не на вопрос читателя** (10) — данность:
  как понял он, так поймёт и читатель.
- Ещё три поменьше (8, 6 и 2) — его собственное прошлое решение, его замысел
  вместо отрисованной страницы, его прочтение вместо текста автора.

Вместе с главной это 196 случаев из 219, 89%; остальные подробно расписывать не буду — можно посмотреть [в самом файле](https://github.com/vzakharov/vovazakharov.com/blob/362e3560f2e560660abf1357e7cea6e634cee6da/writing/notes/the-five-percent.md).

К слову, тут ирония выходит и на мета-уровень: например, список буллитов выше написал агент. Ему, думаю, понятно, что он написал.
При этом я читаю это снова и снова, и у меня как белое пятно — будто мы в каких-то вещах вообще на разных языках говорим.
Я чувствую здесь какой-то урок, который нам ещё предстоит вынести.

## Оговорки

Эксперимент далёк от чистого: один агент, на одном фреймворке (Claude Code), один
проект, причём довольно странный — личный сайт, на котором живут ещё четыре
сайта, [игра про грибы](https://vovazakharov.com/mushrooms), [песни](https://vovazakharov.com/music) и ИИ-персона, которая [ходит и удивляется](https://mayawonders.com). Ну и подсчёт тоже, думаю, хромал, потому что считающий уже видел категории, а богатые, как известно, всегда богатеют.

Так что на это стоит смотреть как на интересный сигнал, а не какое-то строгое заключение. Тем не менее.

## Что из этого вышло

Файл я закрыл... И открыл новый.

Во-первых, теперь «сделай шаг назад и посмотри, а не являются ли сами рамки
задачи кривыми» — это [отдельный скилл](https://github.com/vzakharov/vovazakharov.com/blob/main/.claude/skills/five-percent/procedure.md), который так и называется, «пять процентов».

Первый же его прогон, правда, показал, что, возможно, мы имеем дело с системной
проблемой, а не проблемой постановки задачи. Агент нашёл, что
один и тот же текст перефразируется в разных местах на сайте, и задался вопросом,
не стоит ли их унифицировать.

То, что он это нашёл, — хорошо (нехорошо, что этого не нашёл отдельный скилл [/dry](https://github.com/vzakharov/vovazakharov.com/blob/main/.claude/skills/dry/SKILL.md)),
но вот одно из тех мест, где это повторялось, оказалось вообще устаревшим, и ему
нет места на сайте:

![Страница /writing на vovazakharov.com: три статьи из Glitchporn и карточка этой статьи](./assets/writing-page.png)

Весь «writing», который там был, — это атавизм, оставшийся от поза-поза-прошлой версии сайта,
когда я временно возомнил себя [крутым блогером](https://glitchporn.substack.com/). На сайте Fractional CTO ему не место,
по крайней мере не в таком виде точно.

Так что скилл, найдя узкое место, не увидел, в чём оно действительно узкое.

При этом агент тут не виноват: он не знает, что у вас в голове, — хотите ли вы, например, впихнуть изменение в существующие префиксы коммитов или придумать новый. Решить за вас то, что является _вашим_, он не может.

Пойдёт ли это дальше так же — не знаю, но теперь мы ведём новый учёт:
сколько оставленных Клодом комментариев в рамках нового скилла оказались по делу 🙈

Сработает или нет — не буду предсказывать, хотя интуиция подсказывает ответ. Но в курсе держать буду.
