AI и грабли
MCP → CLI
Я только собирался написать, почему CLI сосут, и на что их заменять, как понял, что у меня даже нет поста, почему сосут MCP (от которых мы и ушли к CLI). Исправляю!
Сначала напомню в двух словах зачем эти ребята нам вообще нужны:
агент сам по себе мало что умеет в мире, где наши данные разбросаны по десяткам веб-приложений, начиная от почты и календаря, заканчивая транскрибаторами звонков, джирами и сервисами электронного документооборота
Нужно его к ним как-то коннектить.
И на заре агентных систем ребята придумали подсовывать ему новые инструменты как tools (то, что агент может вызывать в цикле перед тем как дать итоговый ответ). Назвали это MCP (model-context-protocol)
У стандарта MCP было много исторических болячек: невнятная аутентификация, загромождение контекста всеми методами всех mcp'шек, , отсутствие строгого следования схеме, stateful логика 🥴
Сейчас они по большей части вылечены. Но есть одна главная проблема – это все еще лишний слой абстракции поверх обычного API. То есть, вместо того, чтобы сразу дернуть API нашего условного гитхаба, обвязка агента (она выполняет роль MCP клиента) отправляет это в какой-то MCP сервер (в случае с гитхаб он удаленный, но может быть и локальным), а он уже отправляет это в API
Вместо этого, любой агент, у которого есть вызов терминала может либо просто написать скрипт, который будет обращаться к API напрямую, либо вызвать уже сто лет существующую cli-команду gh с нужными параметрами. Всё!
И вот какие у этого плюсы:
1. Жрет меньше токенов (потому что не verbose json)
2. Можно стакать вызовы команд в любой последовательности
3. Не обязательно засирать контекст модели всем выводом. Перенаправляем и фильтруем вывод терминальной команды как душе угодно
4. Обычно сильно больше комбинаций параметров
5. Если какой-то функции или параметра нет, агент все так же может написать кастомный скрипт, который сходит в API и сделает то, что нужно
Но надо признать, кое-где MCP все-таки нужны – когда у вас есть эфимерн
162 · 8.2K ·