معماری نوظهور برای عامل‌های هوش مصنوعی

چشم‌انداز دیجیتال فراتر از مرور وب انسان‌محور، به قلمرو عامل‌های خودکاری در حال تکامل است که به‌طور یکپارچه در سیستم‌های متنوع با یکدیگر همکاری می‌کنند. این تغییر مستلزم یک زیرساخت جدید است و یک راه‌حل قانع‌کننده در حال شکل‌گیری است که شامل چهار جزء اصلی منبع باز است.

  • Agent2Agent (A2A) از گوگل: پروتکلی که برای تسهیل کشف و تعامل عامل طراحی شده است.
  • Model Context Protocol (MCP) از آنتروپیک: استانداردی که نحوه استفاده عامل‌ها از ابزارها و داده‌های متنی خارجی را تعریف می‌کند.
  • Apache Kafka: یک ستون فقرات ارتباطی قوی و مبتنی بر رویداد که امکان هماهنگی قابل اعتماد و جدا شده را فراهم می‌کند.
  • Apache Flink: یک موتور پردازش بی‌درنگ، حیاتی برای غنی‌سازی، نظارت و اقدام بر جریان‌های فعالیت عامل.

این مقاله به بررسی روابط هم‌افزایی بین این فناوری‌ها می‌پردازد، محدودیت‌های تکیه صرف بر پروتکل‌ها را برجسته می‌کند و نشان می‌دهد که چگونه این معماری پایه‌ای را برای انتقال از ربات‌های منزوی به اکوسیستم‌های عامل پویا و هوشمند فراهم می‌کند.

انتظار می‌رود که تکثیر عامل‌های هوش مصنوعی در سازمان‌ها نشان دهد که اکثر شرکت‌ها به جای یک عامل فراگیر، مجموعه‌ای از عامل‌های تخصصی را مستقر خواهند کرد. این عامل‌ها وظایفی مانند تولید کد، مدیریت بلیط‌های پشتیبانی، تجزیه و تحلیل داده‌های مشتری، ورود کارمندان و نظارت بر زیرساخت را خودکار می‌کنند.

با این حال، ابزارهای فعلی برای پشتیبانی از چنین آینده‌ای ناکافی هستند.

چالش فراتر از مشکل ‘جزیره عامل‌ها’ است، جایی که عامل‌ها در سیلوها عمل می‌کنند و فاقد قابلیت‌های ارتباطی هستند. این شامل یک تکه‌تکه شدن اکوسیستم گسترده‌تر است:

  • فقدان ارتباط بین عامل‌ها: عامل‌ها معمولاً در محیط‌های منزوی عمل می‌کنند. یک عامل مدیریت ارتباط با مشتری (CRM) از بینش‌های مشتق شده توسط یک عامل انبار داده آگاه نیست. یک عامل پشتیبانی نمی‌تواند به ناهنجاری‌های شناسایی شده توسط یک عامل نظارتی پاسخ دهد.
  • استفاده از ابزارهای شکننده و سفارشی‌شده: بدون روش‌های استاندارد برای دسترسی به ابزارها یا رابط‌های برنامه‌نویسی کاربردی (API) خارجی، عامل‌ها به یکپارچه‌سازی‌های سخت کدگذاری شده و منطق غیرقابل استفاده مجدد متکی هستند.
  • چارچوب‌های ناسازگار: زمان‌های اجرای عامل مختلف از مدل‌های متنوعی استفاده می‌کنند و عامل‌ها را به عنوان چت‌بات‌ها، گراف‌های جهت‌دار غیرمدور (DAG) یا برنامه‌ریزان بازگشتی در نظر می‌گیرند. این منجر به عدم وجود یک لایه اجرای قابل حمل یا وضعیت مشترک می‌شود.
  • طراحی متمرکز بر محیط‌های نوت‌بوک: بسیاری از عامل‌ها به عنوان نمونه‌های اولیه یکباره توسعه می‌یابند که با عملیات خطی، همزمان و زودگذر مشخص می‌شوند. با این حال، سیستم‌های دنیای واقعی نیاز به مدیریت قوی تلاش‌های مجدد، شکست‌ها، هماهنگی، گزارش‌گیری و مقیاس‌بندی دارند که نیازمند یک زیرساخت پشتیبانی است.
  • عدم وجود یک ستون فقرات مشارکتی: هیچ گذرگاه رویداد، حافظه مشترک یا تاریخچه قابل ردیابی از فعالیت‌ها و منطق عامل وجود ندارد. اطلاعات به تماس‌های HTTP مستقیم یا دفن شده در گزارش‌ها محدود می‌شود.

همانطور که توسط پروژه 12-Factor Agents تاکید شده است، عامل‌ها باید به اصول بومی ابری پایبند باشند و قابلیت مشاهده، اتصال سست، قابلیت بازتولید و آگاهی از زیرساخت را نشان دهند. متأسفانه، اکثریت به عنوان اسکریپت‌های شکننده ساخته می‌شوند که به صورت دستی مونتاژ شده و تصور می‌شود که به طور مستقل عمل می‌کنند.

این منجر به ناکارآمدی، تکرار تلاش و شکنندگی می‌شود.

Agent2Agent تا حدی این مشکل را با ارائه یک پروتکل استاندارد برای کشف و ارتباط به عامل‌ها برطرف می‌کند. با این حال، انتقال فراتر از نمایش‌های سطحی به مقیاس‌پذیری و قابلیت اطمینان مورد نیاز توسط سیستم‌های تولید، نیازمند چیزی فراتر از پروتکل‌ها است. این نیازمند یک زیرساخت جامع است.

اکوسیستم عامل فعلی منعکس‌کننده مراحل اولیه وب است که با سیستم‌های قدرتمند اما منزوی و ناسازگار مشخص می‌شود. شبیه به چالش‌های اولیه مواجهه شده توسط مرورگرها که با سرورها بدون یک پروتکل استاندارد ارتباط برقرار می‌کردند، عامل‌های هوش مصنوعی امروزه برای کشف، برقراری ارتباط و همکاری با یکدیگر به طور موثر تلاش می‌کنند.

Agent2Agent (A2A) گوگل: یک پروتکل جهانی برای ارتباط عامل

پروتکل A2A گوگل یک تلاش مهم برای حل این مسئله است. این پروتکل خود را با این واقعیت متمایز می‌کند که یک چارچوب عامل دیگر نیست، بلکه یک پروتکل جهانی است که برای اتصال هر عاملی، صرف نظر از منشاء یا محیط استقرار آن، طراحی شده است.

مشابه نحوه استانداردسازی HTTP ارتباطات وب‌سایت، A2A یک زبان مشترک برای عامل‌ها تعریف می‌کند و آن‌ها را قادر می‌سازد تا:

  • اعلام قابلیت‌ها: از طریق AgentCard، یک توصیفگر JSON که قابلیت‌ها و روش‌های تعامل یک عامل را تشریح می‌کند.
  • ارسال و دریافت وظایف: از طریق تعاملات ساختاریافته با استفاده از JSON-RPC، جایی که یک عامل درخواست کمک می‌کند و دیگری با نتایج یا ‘مصنوعات’ پاسخ می‌دهد.
  • جریان‌سازی به‌روزرسانی‌ها با رویدادهای ارسال شده توسط سرور (SSE): تسهیل بازخورد بی‌درنگ در طول وظایف طولانی یا مشارکتی.
  • تبادل محتوای غنی: پشتیبانی از تبادل فایل‌ها، داده‌های ساختاریافته و فرم‌ها، فراتر از متن ساده.
  • حفظ امنیت به طور پیش‌فرض: گنجاندن پشتیبانی داخلی برای HTTPS، احراز هویت و مجوزها.

نقطه قوت A2A در اجتناب از اختراع مجدد راه حل‌های تثبیت شده است. این پروتکل از استانداردهای وب تثبیت شده، مشابه HTTP و SMTP، استفاده می‌کند و پذیرش آسان‌تر و ادغام سریع‌تر را تسهیل می‌کند.

با این حال، A2A تنها یک جنبه از راه حل کلی را نشان می‌دهد.

Model Context Protocol (MCP) آنتروپیک: استانداردسازی استفاده از ابزار و دسترسی به زمینه

MCP آنتروپیک به جنبه حیاتی نحوه استفاده عامل‌ها از ابزارها و دسترسی به اطلاعات متنی می‌پردازد. MCP فرآیند فراخوانی APIها، فراخوانی توابع و یکپارچه‌سازی با سیستم‌های خارجی را استاندارد می‌کند و اساساً نحوه عملکرد آن‌ها را در محیط خود تعریف می‌کند. در حالی که A2A ارتباط بین عامل‌ها را تنظیم می‌کند، MCP بر تعامل یک عامل با دنیای خارجی تمرکز دارد.

در اصل:

  • MCP به هوش فردی عامل قدرت می‌بخشد.
  • A2A هوش جمعی را فعال می‌کند.

مشابه نحوه نیاز HTTP و SMTP به پذیرش گسترده، زیرساخت و ابزارهای توسعه‌دهنده برای دستیابی به موفقیت گسترده، A2A و MCP به یک اکوسیستم قوی نیاز دارند تا پتانسیل خود را به طور کامل تحقق بخشند.

حتی با تلاش‌های استانداردسازی مانند A2A و MCP، یک سوال اساسی باقی می‌ماند: چگونه می‌توان ارتباطات عامل را به طور موثر در محیط‌های پیچیده و پویای سازمانی مقیاس‌بندی کرد؟ تکیه صرف بر اتصالات مستقیم و نقطه‌به‌نقطه تعریف شده توسط این پروتکل‌ها، چالش‌های مربوط به مقیاس‌پذیری، انعطاف‌پذیری و قابلیت مشاهده را معرفی می‌کند. این نیاز به یک زیرساخت ارتباطی زیربنایی قوی را برجسته می‌کند.

شرکتی را در نظر بگیرید که در آن کارمندان فقط می‌توانند از طریق پیام‌های مستقیم و یک‌به‌یک ارتباط برقرار کنند. به اشتراک گذاشتن یک به‌روزرسانی مستلزم ارسال پیام به هر فرد به طور جداگانه است. هماهنگی یک پروژه در چندین تیم مستلزم انتقال دستی اطلاعات بین هر گروه است.

مقیاس‌بندی چنین سیستمی به صدها کارمند منجر به هرج و مرج می‌شود.

این سناریو منعکس‌کننده چالش‌های پیش روی اکوسیستم‌های عامل ساخته شده بر اساس اتصالات مستقیم است. هر عامل باید بداند با کدام عامل‌ها تماس بگیرد، چگونه به آن‌ها دسترسی پیدا کند و در دسترس بودن آن‌ها. با افزایش تعداد عامل‌ها، تعداد اتصالات مورد نیاز به طور تصاعدی افزایش می‌یابد و در نتیجه یک سیستم شکننده، دشوار برای مدیریت و غیرقابل مقیاس ایجاد می‌شود.

A2A و MCP زبان و ساختار لازم را برای ارتباط و عمل در اختیار عامل‌ها قرار می‌دهند. با این حال، زبان به تنهایی کافی نیست. برای هماهنگی تعداد زیادی عامل در یک شرکت، زیرساختی برای مدیریت جریان پیام و پاسخ‌های عامل مورد نیاز است.

Apache Kafka و Apache Flink این زیرساخت حیاتی را فراهم می‌کنند.

Apache Kafka، که در اصل در LinkedIn توسعه یافته و اکنون یک پروژه بنیاد نرم‌افزار آپاچی است، یک پلتفرم جریان رویداد توزیع‌شده است. این پلتفرم به عنوان یک گذرگاه پیام با دوام و توان عملیاتی بالا عمل می‌کند و سیستم‌ها را قادر می‌سازد تا در جریان‌های رویداد بی‌درنگ منتشر و مشترک شوند. Kafka به دلیل توانایی در جدا کردن تولیدکنندگان از مصرف‌کنندگان و اطمینان از دوام داده، قابلیت پخش مجدد و مقیاس‌پذیری، به طور گسترده در برنامه‌های مختلف، از جمله سیستم‌های مالی، تشخیص تقلب و خطوط لوله تله‌متری استفاده می‌شود.

Flink، یکی دیگر از پروژه‌های آپاچی، یک موتور پردازش جریان بی‌درنگ است که برای پردازش رویداد با حالت، توان عملیاتی بالا و تأخیر کم طراحی شده است. در حالی که Kafka مدیریت حرکت داده را بر عهده دارد، Flink مدیریت تبدیل، غنی‌سازی، نظارت و سازماندهی داده‌ها را هنگام جریان از طریق یک سیستم بر عهده دارد.

Kafka و Flink با هم یک ترکیب قدرتمند را تشکیل می‌دهند. Kafka به عنوان جریان خون عمل می‌کند، در حالی که Flink به عنوان سیستم رفلکس عمل می‌کند.

مشابه نقش A2A به عنوان HTTP دنیای عامل، Kafka و Flink یک پایه مبتنی بر رویداد را برای ارتباط و محاسبات مقیاس‌پذیر عامل فراهم می‌کنند و چالش‌هایی را برطرف می‌کنند که ارتباط مستقیم و نقطه‌به‌نقطه نمی‌تواند:

  • جدا کردن: با Kafka، عامل‌ها نیازی به دانستن مصرف‌کنندگان خروجی خود ندارند. آن‌ها رویدادها (به عنوان مثال، "TaskCompleted", "InsightGenerated") را در یک موضوع منتشر می‌کنند و به هر عامل یا سیستم علاقه‌مند اجازه می‌دهند مشترک شوند.
  • قابلیت مشاهده و پخش مجدد: Kafka یک گزارش با دوام و با ترتیب زمانی از همه رویدادها را حفظ می‌کند و اطمینان حاصل می‌کند که رفتار عامل به طور کامل قابل ردیابی، قابل ممیزی و قابل پخش مجدد است.
  • تصمیم‌گیری بی‌درنگ: Flink به عامل‌ها اجازه می‌دهد تا در زمان واقعی به جریان‌های رویداد واکنش نشان دهند، فیلتر کردن، غنی‌سازی، پیوستن یا فعال کردن اقدامات بر اساس شرایط پویا.
  • انعطاف‌پذیری و مقیاس‌بندی: مشاغل Flink می‌توانند به طور مستقل مقیاس شوند، از شکست‌ها بازیابی کنند و حالت را در طول گردش کار طولانی‌مدت حفظ کنند، که برای عامل‌هایی که وظایف پیچیده و چند مرحله‌ای را انجام می‌دهند ضروری است.
  • هماهنگی بومی جریان: به جای انتظار برای پاسخ‌های همزمان، عامل‌ها می‌توانند از طریق جریان‌های رویداد هماهنگ شوند، به‌روزرسانی‌ها را منتشر کنند، در گردش‌های کاری مشترک شوند و به طور مشترک حالت را پیش ببرند.

به طور خلاصه:

  • A2A نحوه ارتباط عامل‌ها را تعریف می‌کند.
  • MCP نحوه تعامل آن‌ها با ابزارهای خارجی را تعریف می‌کند.
  • Kafka نحوه جریان پیام‌های آن‌ها را تعریف می‌کند.
  • Flink نحوه پردازش، تبدیل و استفاده از آن جریان‌ها برای تصمیم‌گیری را تعریف می‌کند.

پروتکل‌هایی مانند A2A و MCP برای استانداردسازی رفتار و ارتباط عامل حیاتی هستند. با این حال، بدون یک بستر مبتنی بر رویداد مانند Kafka و یک زمان اجرای بومی جریان مانند Flink، عامل‌ها منزوی باقی می‌مانند و قادر به هماهنگی موثر، مقیاس‌بندی کارآمد یا استدلال در طول زمان نیستند.

معماری چهار لایه برای عامل‌های هوش مصنوعی درجه سازمانی

برای تحقق کامل چشم‌انداز عامل‌های هوش مصنوعی درجه سازمانی و قابل تعامل، یک معماری چهار لایه مورد نیاز است:

  • پروتکل‌ها: A2A، MCP - تعریف چه چیزی.
  • چارچوب‌ها: LangGraph، CrewAI، ADK - تعریف چگونه.
  • زیرساخت پیام‌رسانی: Apache Kafka - پشتیبانی از جریان.
  • محاسبات بی‌درنگ: Apache Flink - پشتیبانی از تفکر.

این لایه‌ها با هم پشته اینترنت جدیدی را برای عامل‌های هوش مصنوعی تشکیل می‌دهند و پایه‌ای را برای ساخت سیستم‌هایی فراهم می‌کنند که نه تنها هوشمند هستند بلکه مشارکتی، قابل مشاهده و آماده تولید نیز هستند.

ما در حال حاضر در یک نقطه حیاتی در تکامل نرم‌افزار قرار داریم.

همانطور که پشته اینترنت اصلی - متشکل از پروتکل‌هایی مانند HTTP و SMTP و زیرساخت‌هایی مانند TCP/IP - عصر ارتباط جهانی را نوید داد، یک پشته جدید برای عامل‌های هوش مصنوعی در حال ظهور است. با این حال، به جای اینکه انسان‌ها صفحات وب را مرور کنند یا ایمیل ارسال کنند، این پشته برای سیستم‌های خودکاری طراحی شده است که با یکدیگر همکاری می‌کنند تا استدلال کنند، تصمیم بگیرند و عمل کنند.

A2A و MCP پروتکل‌هایی را برای ارتباط عامل و استفاده از ابزار فراهم می‌کنند، در حالی که Kafka و Flink زیرساخت‌هایی را برای هماهنگی بی‌درنگ، قابلیت مشاهده و انعطاف‌پذیری فراهم می‌کنند. اینها با هم انتقال از نمایش‌های عامل قطع شده به اکوسیستم‌های مقیاس‌پذیر، هوشمند و درجه تولید را ممکن می‌سازند.

این تکامل صرفاً در مورد پرداختن به چالش‌های مهندسی نیست. این در مورد فعال کردن یک الگوی جدید از نرم‌افزار است که در آن عامل‌ها در سراسر مرزها با یکدیگر همکاری می‌کنند، بینش‌هایی را ارائه می‌دهند و اقدامات را در زمان واقعی هدایت می‌کنند و در نتیجه هوش را قادر می‌سازند تا به یک سیستم توزیع شده تبدیل شود.

با این حال، این چشم‌انداز مستلزم توسعه فعال، تاکید بر باز بودن، قابلیت تعامل و استفاده از درس‌های آموخته شده از انقلاب اینترنت قبلی است.

بنابراین، هنگام توسعه یک عامل، در نظر گرفتن یکپارچگی آن در سیستم گسترده‌تر بسیار مهم است. آیا می‌تواند به طور موثر ارتباط برقرار کند؟ آیا می‌تواند با سایر عامل‌ها هماهنگ شود؟ آیا می‌تواند تکامل یابد و با شرایط در حال تغییر سازگار شود؟

آینده فقط با عامل‌ها نیرو نمی‌گیرد. بلکه به عامل‌های متصل نیرو می‌گیرد.