Сначала вывод
- Стек ИИ-агента 2026 года выбирают не по тому, «кто сильнее — GPT, Gemini или Claude», а по тому, можно ли повторно использовать контракт инструментов между моделями.
- JSON Schema — настоящий кросс-вендорный контракт; Function Calling — лишь акцент, которым каждая модель произносит вызов.
- MCP превращает схему в обнаруживаемый
tools/listи исполняемыйtools/call. Без MCP схема остаётся документацией. - GPT, Gemini и Claude — взаимозаменяемые движки рассуждения на стороне Host. MCP-серверы, валидаторы и worktree должны жить на машине, которая не закрывает крышку.
- Сначала заморозьте одну схему, затем подключите MCP, потом меняйте модели. Обратный порядок навсегда разъедет три каталога tools.
Способности модели — не водораздел. Водораздел — контракт инструментов: JSON Schema + Function Calling + MCP.
0. Сначала вывод
Если вы собираете стек ИИ-агента 2026 года, зафиксируйте фразу: GPT, Gemini и Claude — заменяемые слои рассуждения. Сдача системы зависит от того, проходят ли аргументы Function Calling через одну JSON Schema и выставлена ли эта схема стабильным MCP-сервером. Сначала выбрать модель и потом «прикрутить» инструменты — самая дорогая ошибка порядка за последние два года.
1. Почему проблема есть: выбор модели первым проваливается
В тикете обычно написано: «перешли на новейший GPT / Claude / Gemini, агент всё равно не работает». Узкое место редко в модели. Команды держат четыре дрейфующих контракта: OpenAI tools, Gemini functionDeclarations, Claude tools / tool_use плюс MCP inputSchema. Снаружи всё похоже на Function Calling. В рантайме это не один протокол.
Старый подход ломается конкретно: Prompt считают процессом, модель — ОС, MCP — «ещё одним плагином». Чат выглядит гладким, пока tools/call не упрётся в пути, enum или обязательные поля и не вернёт 400. Тогда спорят, какая модель послушнее, вместо того чтобы diff-ить схему. Более умная модель не лечит расколотый контракт.
- Host живёт в IDE, MCP-сервер — на ноутбуке, который засыпает: Function Calling крутится вхолостую.
- GPT видит
repoPath, Claude —repo_path; в JSON Schema нет единого источника истины. - В декларациях Gemini нет
additionalProperties: false, модель начинает выдумывать поля. tools/listотдаёт схему, которая не совпадает с git SHA валидатора в проде.
Правильное разделение: «умеет ли рассуждать?» отдельно от «умеет ли безопасно исполнять?». Рассуждение можно крутить между GPT, Gemini и Claude. Исполнение должно сидеть на одной схеме и одном всегда включённом процессе MCP. Выбор машины — в развёртывании MCP: Cloud Mac vs VPS vs локально.
2. Пять слоёв
Не раскладывайте эти слова энциклопедией. Рабочий агент 2026 года — пять слоёв. Если одного нет, другой слой притворится компенсацией — и упадёт в проде.
2.1 Рассуждение: GPT / Gemini / Claude
GPT, Gemini и Claude читают контекст, решают, вызывать ли инструмент, выдают аргументы, валидные по схеме, и вкладывают результат в следующий ход. Это не файловая система и не Git. Выбирайте по задержке, окну контекста, цене и политике безопасности — не потому, что кто-то похож на ОС. Документация: OpenAI Function Calling, Gemini function calling, Claude tool use.
2.2 Function Calling: акцент, не шина
Function Calling — как модель говорит, какую функцию запустить и с какими аргументами. GPT использует tool_calls, Claude — блоки tool_use, Gemini — functionCall. Акценты разные, смысл один: структурированный вызов, связанный схемой. Три отдельных handler за квартал разъедутся. Оставьте тонкий переводчик; бизнес-логика должна видеть только нормализованный JSON.
2.3 JSON Schema: кросс-вендорный контракт
JSON Schema задаёт типы, обязательные поля, enum, диапазоны и additionalProperties. OpenAI parameters, Claude input_schema и MCP inputSchema должны быть проекциями одного файла. Контракт — в git. Тестируйте легальными и нелегальными payload. Не просите модель Prompt-ом «пожалуйста, соблюдай формат».
2.4 MCP: сделать контракт обнаруживаемым и исполняемым
Model Context Protocol описывает, как Host выполняет tools/list и tools/call. MCP-сервер — процесс, который трогает диск, секреты и сеть. Cursor, Claude Code и самописные оркестраторы — всего лишь клиенты. Без MCP схема остаётся в документации. С MCP на спящем ноутбуке Function Calling всё равно умирает ночью. См. Cursor MCP.
2.5 Host: вход, не способность
Host — место, куда человек кликает: IDE, CLI-агент, чат. Вход формирует UX, он не даёт исполнение. Claude Code как Host и GPT как запасная модель — нормально, если оба бьют в один MCP и одну схему. Параллельным worktree нужен Host рядом с репозиторием — удалённый Mac + worktree на короткий срок.
3. GPT vs Gemini vs Claude vs MCP
Одинаковые заголовки в каждой строке. MCP — не четвёртая модель; это обнаружение и исполнение. Одна таблица мешает использовать модель как шину.
| Слой / вариант | Вход | Исполнение | Контекст | Стоимость | Граница прав |
|---|---|---|---|---|---|
| GPT Function Calling | API / ChatGPT / IDE | Генерирует tool_calls; диск не трогает | Чат + то, что вы положили в messages | Токены; циклы инструментов раздувают счёт | Секреты в бэкенде; модель видит аргументы и сводки |
| Gemini function calling | Gemini API / Studio / Vertex | Генерирует functionCall; исполняете вы | Сильный мультимодальный контекст; поля всё равно держит схема | Токены / квоты проекта | GCP IAM + песочница инструментов |
| Claude tool use | API / Claude Code / Console | Генерирует tool_use; CLI-host может затем запустить shell | Силён на длинных кодовых сессиях; всё ещё не ФС | Токены; циклы агента тоже стоят денег | Белые списки инструментов + человек; MCP — ещё одни ворота |
| JSON Schema | Валидатор / codegen / один файл | Отвергает незаконные вызовы; бизнес не исполняет | Нет — контракт, не память | Почти ноль (стоимость тестов) | Удалить опасные поля из контракта |
| MCP-сервер | stdio / SSE / удалённый Host | Реально гоняет Git, HTTP, БД, файлы | Репозиторий, секреты, состояние машины | Всегда включённый ящик (Cloud Mac / VPS) | Пользователь ОС, белый список путей, egress |
Асимметричная строка: модели соревнуются в рассуждении и акценте; MCP — в границе исполнения. Смена на Claude не починит MCP, который спит вместе с крышкой ноутбука. Само по себе MCP не выдаст валидный JSON без тестов схемы.
4. Как выбирать по сценарию
Сопоставляйте вход и потребность в исполнении. Не сопоставляйте таблицу лидеров.
| Слой / вариант | Вход | Исполнение | Контекст | Стоимость | Граница прав |
|---|---|---|---|---|---|
| Личный PoC на этой неделе | Локальная IDE + одна модель | stdio MCP, 1–2 tools | Один репозиторий | Счёт API | Локальный пользователь; без прод-секретов |
| Малая команда с ежедневной поставкой | Claude Code или Cursor как Host | MCP Git + тестовый runner | Несколько worktree | Cloud Mac на сутки, затем помесячно | Белый список инструментов; агент не ходит в прод-БД |
| Нужно менять GPT / Gemini / Claude | Оркестратор + единый tool gateway | Одна схема, спроецированная на три диалекта Function Calling | Общий MCP | Один переводчик лучше трёх развилок tools | Авторизация шлюза; модели не видят сырые секреты |
| iOS / Xcode / подпись | CLI-агент на Mac | Совмещённый MCP + xcodebuild | Связка ключей, DerivedData, симуляторы | Выделенный M4 дешевле, чем Linux MCP + второй Mac | Материал подписи остаётся на Mac |
| Дежурный агент 7×24 | Удалённый Host + всегда включённый MCP | launchd / compose держат процесс живым | Ночные задачи, webhook | Спящий ноутбук — скрытый инцидент | Egress-файрвол + журнал аудита |
5. Рекомендуемые стеки
Стеки можно накладывать. Все три держат одну JSON Schema в git и генерируют вендорный Function Calling плюс MCP inputSchema.
Стек A | соло: Cursor или Claude Code (Host) → одна модель (сначала Claude или GPT; заменяема) → локальный stdio MCP (Git только чтение) → файл схемы + тесты валидатора Закрытие крышки всё останавливает — только дневной PoC. Стек B | команда поставки (рекомендуется): CLI-агент как Host → GPT / Claude за одним шлюзом → MCP Git-сервер + тестовые инструменты на Cloud Mac → схема → OpenAI tools / Claude input_schema / MCP inputSchema → аренда на 48 ч: закрыть ноутбук, убедиться, что tools/call всё ещё проходит Стек C | мультимодельный шлюз: свой оркестратор → Gemini на мультимодальный вход; Claude/GPT на кодовые циклы инструментов → каждый functionCall / tool_use проходит JSON Schema до MCP tools/call → MCP рядом с репозиторием; API моделей — в публичном интернете
Минимальный контракт (имена полей должны совпадать при проекции на OpenAI parameters, Claude input_schema и MCP inputSchema):
{
"name": "git_status",
"description": "Return git status for a worktree path",
"parameters": {
"type": "object",
"properties": {
"repo_path": { "type": "string", "minLength": 1 },
"porcelain": { "type": "boolean", "default": true }
},
"required": ["repo_path"],
"additionalProperties": false
}
}
6. Ловушки
- Ловушка 1: Сначала зафиксировать GPT против Claude. Три каталога tools навсегда разъедутся.
- Ловушка 2: Считать MCP четвёртой моделью. MCP не рассуждает; он исполняет. MCP без схемы — нетипизированный RPC.
- Ловушка 3: Заменить JSON Schema Prompt-ом.
additionalProperties: falseсильнее, чем «пожалуйста, не выдумывай поля». - Ловушка 4: Валидный payload Function Calling — ещё не безопасное бизнес-действие. Модель может легально попросить удалить не то дерево — белый список живёт в процессе MCP.
- Ловушка 5: Успех локального stdio — не прод. Закрытие крышки, скачки Wi‑Fi и коллеги, которые не могут переиспользовать то же MCP-развёртывание, убивают 7×24.
7. Семь шагов внедрения
- Назовите три действия, которые агент должен исполнить (git status, тесты, чтение issue). Не подключайте двадцать MCP-инструментов в первый день.
- Напишите по одной JSON Schema на действие в git. Добавьте легальные и нелегальные fixture.
- Реализуйте MCP-сервер, чей
inputSchemaимпортирует эти файлы — без копирования руками. - Добавьте вендорный адаптер, проецирующий ту же схему на OpenAI tools, Gemini functionDeclarations и Claude input_schema.
- Одним Host (Cursor или Claude Code) докажите цепочку
tools/list→ Function Calling →tools/call→ вложение результата. - Перенесите MCP на машину, которая не спит (Cloud Mac или VPS). На ноутбуке оставьте только Host. Закройте крышку на восемь часов и перепроверьте.
- Вторую модель подключайте только через переводчик. Не копируйте второй файл tools. Прогоните те же fixture. Упаковка навыков — в руководстве Agent Skills 2026.
8. FAQ
Function Calling и MCP — это одно и то же?
Нет. Function Calling — как модель просит инструмент. MCP — как Host обнаруживает и исполняет инструменты. Handler можно писать без MCP. Без Function Calling модель выдаёт только прозу, которую вы копируете в терминал.
Насколько строгой должна быть JSON Schema?
Покройте типы, required, enum и additionalProperties: false. Отвергайте .. в полях путей. Слишком строго поднимает стоимость адаптера; слишком слабо возвращает безопасность в Prompt — и Prompt протечёт.
Как разделить работу GPT, Gemini и Claude?
По входу и модальности: Gemini — вход с картинками и видео, Claude — длинные кодовые сессии, GPT — если уже есть шлюз OpenAI. Маршрутизация живёт в Host, а не в трёх разных MCP-серверах.
Можно ли обойтись Chat Completions без MCP?
Да, для одного приложения и одной модели. Вторая модель или второй Host (IDE + CLI) размножает handler. Ценность MCP — развернуть процесс инструментов один раз.
Зачем класть этот стек на Cloud Mac?
Если в цепочке есть Xcode, связка ключей или iOS-симуляторы, MCP и агент должны жить на одной машине и не выключаться. Linux VPS хватает для чистого Git/HTTP. Поставка Apple, где MCP на Linux, а сборка на другом Mac, снова раскалывает пути.
9. Итог
Стек ИИ-агента 2026 года — не «выбрать самую сильную модель». Это одна JSON Schema, один адаптер Function Calling, один MCP-сервер и заменяемый разум GPT/Gemini/Claude. Таблицы лидеров двигаются. Контракты и границы исполнения не стоит переписывать каждую неделю.
Порядок работ: схема → MCP → один Host сквозняком → затем смена моделей. Порядок машин: локально для PoC, Cloud Mac или VPS для сдачи. Бенчмарки можно читать — не подменяйте ими тесты контракта.
Держите MCP и проверку JSON Schema на всегда включённом Cloud Mac
Function Calling можно пробовать на ноутбуке. MCP-серверам, worktree и цепочке Apple нужна коробка, которая не выключается. Выделенный M4 кладёт Git, валидатор схемы и Host агента на один путь, чтобы снова не разъехались «схема на Linux / сборка на Mac». Низкое потребление в простое и стабильный SSH делают суточную аренду для приёмки, а затем помесячную фиксацию разумным путём.