AI-разработка

AI Coding Agent меняет разработку: как Claude Code и GPT Agent вызывают инструменты и выполняют код через JSON

Около 15 мин

Разработка в 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 проверил». Чаще так:

  1. Человек пишет намерение: починить этот упавший тест или добавить поле в этот API.
  2. Агент крутит цикл: читает репозиторий, ищет символы, правит файлы, гоняет тесты, оставляет след вызовов инструментов.
  3. Люди смотрят diff и след: не каждый удар по клавише, но типы, тесты и права остаются.

Это не «ИИ делает вашу работу». Первый черновик теперь из цикла; люди держат форму и побочные эффекты. Собрать инструменты и потоки в Schema — см. JSON Schema и потоки AI Agent.

Цикл делает одно: заполняет JSON, затем читает JSON

Страницы продукта пишут «пишет код автономно». В инженерии один ход обычно четыре прыжка:

  1. Наблюдение: рабочая область, вывод тестов и последний результат инструмента входят в контекст.
  2. Предложение: модель выдаёт имя инструмента и объект аргументов — сама не вызывает open().
  3. Выполнение: хост проверяет, гоняет команду или правит файл. Побочные эффекты здесь.
  4. Обратная запись: 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-цепочка вызова должна стабилизироваться первой.

Дальше почитать

Журнал: Первая публикация