AI Coding Agent меняет разработку: как Claude Code и GPT Agent вызывают инструменты и выполняют код через JSON
Разработка в 2026 всё меньше похожа на набор автодополнений в IDE. Claude Code читает репозиторий, правит файлы и гоняет тесты в терминале; GPT Agent / Codex открывает песочницу, пишет патч и возвращает результат. Оболочки разные. Каркас один: модель только заполняет JSON; выполняет хост. Этот текст раскрывает цепочку вызова — и то, как она переписывает обычный день.
Коротко
| Идея | Одной строкой | Куда падает |
|---|---|---|
| Coding Agent | Рантайм, который читает репозиторий, правит файлы и гоняет команды | Agent loop |
| Claude Code | Локальный Coding Agent в терминале | tool_use JSON |
| GPT Agent | Код и computer use в сессии / песочнице | tool_calls / code |
| JSON | Контракт имён, аргументов и результатов | Schema / payload |
Сначала разделение: модель заполняет объекты, хост выполняет, цикл делает патчи и тесты непрерывными. Смените бренд — JSON-цепочка вызова останется.
Coding Agent — не чат-окно, которое пишет код
Модель автодополнения заполняет следующую строку. Чат-модель объясняет функцию. Coding Agent — третье: рантайм, который ставит модель в цикл — наблюдать состояние репозитория, предложить шаг, вызвать внешний инструмент, переварить результат, затем продолжить, остановиться или передать человеку.
Поставляемый Coding Agent в 2026 обычно тройка:
- Модель: выдаёт только текст или структурированный объект. Диска не касается.
- Каталог инструментов: читать, править, запускать, искать; иногда браузер или MCP.
- Хост: разобрать JSON, провести ворота, реально выполнить, записать результат в следующий ход.
Если вы всё ещё склеиваете Agent, Tool Calling и Function Calling в одно слово, начните с Полный гид по AI Agent. Эта статья про одну форму продукта: Coding Agent, который работает против настоящего репозитория.
Изменился цикл, не редактор
Десять лет IDE-автодополнение укорачивало набор. Два года чат-окна приблизили дефекты. Coding Agent меняет третье: кто пишет первый запускаемый патч.
Типичный день больше не «люди дописали, потом CI проверил». Чаще так:
- Человек пишет намерение: починить этот упавший тест или добавить поле в этот API.
- Агент крутит цикл: читает репозиторий, ищет символы, правит файлы, гоняет тесты, оставляет след вызовов инструментов.
- Люди смотрят diff и след: не каждый удар по клавише, но типы, тесты и права остаются.
Это не «ИИ делает вашу работу». Первый черновик теперь из цикла; люди держат форму и побочные эффекты. Собрать инструменты и потоки в Schema — см. JSON Schema и потоки AI Agent.
Цикл делает одно: заполняет JSON, затем читает JSON
Страницы продукта пишут «пишет код автономно». В инженерии один ход обычно четыре прыжка:
- Наблюдение: рабочая область, вывод тестов и последний результат инструмента входят в контекст.
- Предложение: модель выдаёт имя инструмента и объект аргументов — сама не вызывает
open(). - Выполнение: хост проверяет, гоняет команду или правит файл. Побочные эффекты здесь.
- Обратная запись: stdout, патч и код выхода становятся следующим видимым объектом.
Пропустите ворота — и JSON станет командой. Держите все четыре прыжка — и получите воспроизводимую сессию. Зачем ИИ нужен JSON Schema уже писал: Schema — это калибр, не «пожалуйста, верни JSON» в промпте.
Claude Code: поверхность инструментов в терминале
Claude Code — локальный Coding Agent Anthropic: он бежит в вашем терминале против текущего репозитория. Со стороны модели — блоки контента Messages API. То, что вы видите каждый день, — поток tool_use.
Поверхность инструментов по умолчанию узкая — и именно поэтому её можно ревьюить:
- Read / Glob / Grep: сначала смотреть, потом править.
- Edit / Write: менять репозиторий точной заменой или записью целого файла.
- Bash: гонять тесты, ставить зависимости, выполнять скрипты.
- MCP: сложить внешние системы в ту же JSON-таблицу инструментов. Подробности в MCP Tool Schema vs Function Calling.
Модель не шлёт абзац «пожалуйста, поправь этот файл». Она шлёт проверяемый объект:
{
"type": "tool_use",
"id": "call_read_1",
"name": "Read",
"input": {
"path": "src/billing/refund.py"
}
}
Когда хост закончил, он тоже пишет объект. stdout может быть длинным; вход всё равно tool_result, не пузырь чата:
{
"type": "tool_result",
"tool_use_id": "call_bash_4",
"content": {
"stdout": "12 passed, 1 failed",
"exit_code": 1
}
}
Auto-mode и ворота подтверждения решают, ждёт ли этот прыжок человека. Выключите ворота — и цикл сам догонит Bash. Поэтому разработка ускорилась, и поэтому вырос радиус аварии. Про поверхность безопасности — Инциденты Claude и JSON инструментов и Безопасность агентов и проверка JSON.
GPT Agent: сессии, песочницы и Function Calling
У стороны OpenAI больше имён: ChatGPT Agent, Codex, Responses API, GPT-6 Astra. Оболочки разные; форма вызова всё ещё Function Calling: объявить tools[], предложить tool_calls, положить строковый объект в arguments.
Вызов, связанный с кодом, выглядит так:
{
"tool_calls": [{
"id": "call_7f2a",
"type": "function",
"function": {
"name": "run_code",
"arguments": "{\"language\":\"python\",\"code\":\"from pathlib import Path\\nprint(Path('src').exists())\"}"
}
}]
}
Разница с Claude не в «умеет ли писать код». В том, как собрана поверхность инструментов:
- Интерпретатор кода / песочница: сложить многошаговый расчёт в один
run_codeили python, чтобы сократить круги. - Computer use: действия браузера и рабочего стола — другой набор структурированных ходов.
- Codex / CLI: ближе к Coding Agent уровня репозитория; таблица снова становится читать, править, запускать.
Гид по GPT-6 Astra уже назвал ту же дисциплину: надёжнее доводить «выбрать инструмент → вызвать → вернуть объект». Для разработчиков это значит: патчи и вывод тестов должны восстанавливаться из JSON-следа, а не из фразы «я уже починил».
Где код реально бежит? Не внутри модели
Это предложение чаще всего пишут неверно. Большая модель не выполняет Python и не spawn-ит процесс. Она только выдаёт:
- Имя инструмента: Bash, Read, python,
apply_patch. - Объект аргументов:
command,path,old_string,code. - Иногда текст патча: сначала поле, потом хост пишет его на диск.
Код реально гоняет хост: локальный процесс, контейнер или облачная песочница. Права файловой системы и сети — политика хоста, не веса модели. Сжатая Schema инструмента выглядит так:
{
"name": "Bash",
"description": "Run a shell command in the workspace",
"inputSchema": {
"type": "object",
"properties": {
"command": { "type": "string" },
"timeout_ms": { "type": "integer", "maximum": 120000 }
},
"required": ["command"],
"additionalProperties": false
}
}
additionalProperties: false — не педантизм. Широкий object даёт модели протащить целевой хост или лишний скрипт. Секреты, cookie и внутренние базы остаются на хосте. В объект аргументов они не входят.
Claude Code против GPT Agent: вы покупаете не одну оболочку
Не умнее / глупее — куда вы вешаете цикл:
| Измерение | Claude Code | GPT Agent / Codex |
|---|---|---|
| Вход | Локальный терминал, против репозитория | Сессия, песочница или CLI |
| Форма вызова | tool_use / tool_result | tools[] / tool_calls |
| Инструменты по умолчанию | Read, Edit, Bash, Grep, MCP | Функции, интерпретатор кода, computer use |
| Мир выполнения | Ваша машина или песочница, которую вы монтируете | Песочница вендора или локальный Codex |
| Что вы поддерживаете | Ворота прав, MCP, след сессии | Schema инструментов, след Responses |
Смените бренд — цикл останется. Стабилизируйте контракт инструментов и мир выполнения, не кожу чата. DeepSeek сделал хост заменяемой инфраструктурой — см. DeepSeek Harness и инфраструктура Coding Agent.
Смотреть след, не пузырь
После того как агент написал код, смотрите его как PR коллеги: diff, тесты, права. Лишний слой — след инструментов.
- форматировать
tool_use/tool_callsи проверьте, что имя и аргументы — тот прыжок, который вы думали. - Вытащите извлечь JSONPath поля
name,commandиpath. Не сканируйте прозу глазами. - JSON Diff со вчерашним зелёным следом. Если цикл поплыл, смотрите таблицу инструментов и форму аргументов, прежде чем винить модель.
- stdout упавшего теста должен быть в следе. «Я починил» — не запись.
- Не вставляйте прод-секреты, дампы клиентов или внутренние URL в публичный форматтер. JSONSort бежит в браузере без загрузки — подходит для этих объектов.
Если след можно собрать заново, сессию можно разобрать. Это цена ввода Coding Agent в командный процесс, не приятный бонус.
Типичные ошибки
- Считать Coding Agent более умным автодополнением. Автодополнение правит строку; агент правит цикл.
- Верить, что модель сама выполнила код. Право выполнения у хоста.
- Смотреть только файловый diff, не JSON инструментов. Команда могла уже выполниться.
- Дать Bash незаполненный чек. Нет cwd, таймаута или сетевых ворот — и цикл есть прод-инцидент.
- Заменять Schema промптом. Контракт должен проверяться.
- Хранить сессию как пузыри чата. Без
tool_resultнет воспроизводимой записи разработки.
FAQ
Что лучше команде: Claude Code или GPT Agent?
Смотрите мир выполнения. Если репозиторий на вашей машине и нужны MCP плюс локальные тесты, ближе Claude Code или Codex CLI. Если нужны песочные вычисления или computer use в сессии — GPT Agent / Responses. Сначала зафиксируйте Schema инструментов, потом выбирайте оболочку.
Может ли модель тайно выполнить команду, которую я не одобрил?
Модель может только предложить. Выполнится ли — зависит от ворот подтверждения, allowlist и сетевой изоляции на хосте. Auto-mode значит: вы заранее одобрили класс JSON.
Чем это отличается от обычного Function Calling?
Та же форма, другой радиус. Поиск заказа в поддержке обычно только чтение. Инструменты Coding Agent могут менять диск и порождать процессы. Schema, таймауты и аудит должны быть жёстче.
Почему JSON, а не лучший промпт?
Побочные эффекты случаются после разбора объекта. Промпт влияет на то, что заполнит модель; Schema и хост решают, что можно выполнить. При отладке объекты дороже прилагательных.
Пускать ли агента сразу в прод?
Нет. Пусть откроет ветку, прогонит тесты и оставит след. Слияние и релиз остаются человеческими стратегическими воротами. Цикл пишет черновик; ворота выпускают.
Вывод
AI Coding Agent меняет разработку не тем, что редактор лучше угадывает следующую строку, а тем, что «прочитать репозиторий → заполнить JSON инструмента → хост выполняет → записать результат» становится циклом по умолчанию. Claude Code и GPT Agent — две оболочки.
С сегодняшнего дня меньше спорьте, какая модель лучше пишет код. Сначала положите в репозиторий Schema инструментов, мир выполнения и след сессии. Модели сменятся; эта JSON-цепочка вызова должна стабилизироваться первой.
Дальше почитать
- Что такое AI Agent? Полный гид Рантайм, Tool Calling и JSON-контракт
- Что изменил DeepSeek Harness От фреймворка к заменяемому хосту Coding Agent
- MCP Tool Schema vs Function Calling Границы протокола JSON инструментов
- Зачем ИИ нужен JSON Schema Schema / Function Calling / Structured Output
- Безопасность агентов и проверка JSON Что валидация может остановить — и чего нет
- Локальный ящик JSONSort Формат, проверка, Diff
- Все статьи Ещё заметки про JSON и AI-разработку
Журнал: Первая публикация