У попередньому випуску я говорив про важливість інтероперабельності як рушійної сили для створення повноцінних і ефективних агентних рішень.
Цей підхід є необхідним для вирішення все більш складних випадків використання. Розглянемо конкретний приклад: чат-бот у службі підтримки клієнтів телекомунікаційного оператора. За на перший погляд простою взаємодією прихована складна координація з різними існуючими системами, такими як:
- CRM, для доступу до інформації про клієнта (пропозиції, опції тощо).
- Інструмент для обробки запитів, для перегляду історії інцидентів користувача.
- Система моніторингу мережі, для визначення поточних збоїв.
- База знань, яка централізує процедури для вирішення аномалій.
Ці компоненти можуть бути як класичними інструментами, так і іншими інтелектуальними агентами. Наприклад, ІІ-агент з продажу може запропонувати компенсацію, враховуючи такі критерії, як вартість клієнта чи серйозність інциденту.
Таким чином, агент розмовляє з “Tools” або іншими агентами на різних бізнес-вертикалях і використовує специфічні рішення (Salesforce, SAP, ServiceNow, бази даних...).
Ці агенти повинні бути взаємопов'язані для ефективної співпраці і "правильного розуміння". Поява мовних моделей (LLM) стала революцією, оскільки ці ІІ-агенти тепер можуть "розуміти" фразу та виділяти з неї ключові концепти.
Інтероперабельність: гонка!
Минулого листопада Anthropic, розробник мовної моделі Claude, зробив крок вперед, випустивши MCP, open-source фреймворк, призначений для того, щоб стати фактичним стандартом у галузі.
У грудні OpenAI представила свою функцію “Work with Apps”, яка дозволяє агентам взаємодіяти безпосередньо з додатками, встановленими на робочих станціях Mac. Очевидно, що OpenAI незабаром розширить цю можливість, включивши інтеграції з корпоративними інструментами.
Того ж місяця Perplexity.AI придбала carbon.ai, стартап, який спеціалізується на підключенні мовних моделей до зовнішніх джерел даних (зберігання, продажі, продуктивність, комунікація, підтримка користувачів...).
Gemini випустила Agentspace, що дозволяє ІІ від Google взаємодіяти з інструментами Confluence, Microsoft Sharepoint і, звісно, Google Workspace.
Agentforce від Salesforce (оголошено у вересні) використовує свою інтероперабельність з усім екосистемою Salesforce, що є важливою перевагою.
Подібно, агент Joule ідеально інтегрується в середовище SAP через поетапне впровадження з вересня 2023 року.
Інтероперабельність: приклади!
Я експериментував із підключенням Claude до реляційної бази даних за допомогою Anthropic MCP. Завдяки цій інтеграції, Claude отримав нові інструменти, що дозволяють йому взаємодіяти з базою даних, як для читання, так і для запису даних, і все це просто через природну мову.
Ця взаємодія висвітлює два принципово різні концепти:
- З одного боку, реляційні бази даних обробляють високоструктуровану інформацію, організовану в стовпці з чітко визначеними типами (числові значення, текст, максимальна довжина, унікальність значень тощо).
- З іншого боку, природна мова є неструктурованою, багатою на відтінки, неоднозначності та неявні контексти.
Виклик, що постає в наведених прикладах, — це досягти співіснування і ефективної роботи цих двох протилежних парадигм.
1-й приклад: я створюю базу даних
Я попросив Claude “створити таблицю “PRODUITS” з 3 полями:
Унікальний ідентифікатор: ID
Назва (поле, що обов'язково потрібно заповнити): NAME
Опис (поле, що обов'язково потрібно заповнити): DESCRIPTION
Ціна (поле, що обов'язково потрібно заповнити): PRICE”
✅ За допомогою цього простого запиту, таблиця була коректно створена в базі:
2-й приклад: я вставляю дані
✅ Назва та опис були коректно розділені для зберігання в відповідних полях.
✅ Ціна була правильно вставлена в потрібний стовпець.
🤔 Я запитав у Claude, як йому вдалося ідентифікувати назву та опис продукту з наданого запиту:
Пояснення, яке він надав, є “логічним”.
3-й приклад: я вставляю неповні дані, але вони відомі публічно
У запиті я не надаю всю необхідну інформацію:
Опис не надано в запиті
✅ Назва та ціна були коректно збережені в відповідних полях.
⁉️ Опис не був у моєму запиті, але він був заповнений (через пошук в Інтернеті або з внутрішніх знань Claude).
4-й приклад: я вставляю неповні дані, яких Claude не знає
Опис заповнений
✅ Назва та ціна були коректно збережені в відповідних полях.
⁉️ Опис не був у моєму запиті, але він був заповнений значенням за замовчуванням. Я б віддав перевагу тому, щоб Claude запитав мене про опис, а не приймав це рішення самостійно.
5-й приклад: я вставляю неповні дані (без ціни)
✅ Назва була коректно збережена в відповідному полі.
⁉️ Опис не був у моєму запиті, але він був заповнений (через пошук в Інтернеті або з внутрішніх знань Claude).
❌ Ціна була заповнена з інших цін, вже присутніх у базі. 🤔 Чому саме цей вибір? Чому не було використано ціну з Інтернету? Чому не було задано питання?
Висновок
Ці різні тести демонструють здатність ІІ-агента (у даному випадку Claude) взаємодіяти з іншими компонентами (наприклад, базою даних), обробляти та доповнювати дані автономно, навіть якщо вони неповні.
Деякі рішення, прийняті моделлю, піднімають важливі питання, зокрема щодо походження доданих інформацій.
Звісно, можна було б встановити обмеження, щоб зменшити рівень автономії Агенту, не давати йому інструменти для пошуку в Інтернеті, більше спрямовувати його в запиті, навчати по-іншому… Йошуа Бенджіо, один з батьків сучасного штучного інтелекту, має на цей рахунок таку анекдоту: “у вас є кіт вдома, і ви хочете навчити його не ходити на ваш стіл у кухні. Коли ви бачите його на кухні, ви кричите на нього, і він в кінці кінців зрозуміє. Але що він зрозуміє? Це не те, що ви хочете. Він зрозуміє, що коли ви на кухні, на стіл не можна заходити”. Це те саме і для ІІ: навчити його робити те, що ви насправді хочете, не так вже й просто!
✅ Інтероперабельність — це не просто питання “клею”, яке потрібно покласти між компонентами для їхнього спілкування, потрібно впевнитися в якості обміну повідомленнями.
✅ Запровадження управління системами ІІ-агентів є необхідним!
Перекладено з: Agents IA épisode 5 — L’interopérabilité, un concept pas si simple à mettre en œuvre !