Published on

برنامه نویسی عامل هوشمند: سادگی بر پیچیدگی غلبه می کند

نویسندگان
  • avatar
    نام
    Ajax
    Twitter

تعریف عامل هوشمند

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

  • گردش کار: سیستمی که مدل های زبانی بزرگ (LLM) و ابزارها را از طریق مسیرهای کد از پیش تعیین شده هماهنگ می کند.
  • عامل هوشمند: سیستمی که توسط LLM به طور پویا فرایندها و استفاده از ابزارهای خود را هدایت می کند و می تواند به طور مستقل روش انجام کار را کنترل کند.

چه زمانی از عامل هوشمند استفاده کنیم

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

  • گردش کار: مناسب برای کارهای مشخصی است که نیاز به پیش بینی پذیری و سازگاری دارند.
  • عامل هوشمند: مناسب تر برای سناریوهای بزرگ مقیاسی است که نیاز به انعطاف پذیری و تصمیم گیری مبتنی بر مدل دارند.

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

استفاده از چارچوب ها

در حال حاضر، چارچوب های مختلفی برای کمک به توسعه دهندگان در ساخت عوامل هوشمند هوش مصنوعی وجود دارد، مانند:

  • LangGraph از LangChain
  • چارچوب عامل هوش مصنوعی آمازون Bedrock
  • ابزار ساخت گردش کار مدل بزرگ کشیدن و رها کردن Rivet
  • ابزار GUI Vellum برای ساخت و آزمایش گردش کارهای پیچیده

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

Anthropic به توسعه دهندگان پیشنهاد می کند که با استفاده مستقیم از API مدل های بزرگ شروع کنند. بسیاری از الگوها را می توان تنها با چند خط کد پیاده سازی کرد. اگر چارچوبی را انتخاب می کنید، حتماً اصول زیربنایی آن را درک کنید. عدم درک کافی از مکانیسم های زیربنایی چارچوب، دلیل اصلی مشکلات توسعه است.

کتاب آشپزی Anthropic نمونه های خاصی را ارائه می دهد.

بلوک های سازنده، گردش کارها و عوامل هوشمند

بلوک های سازنده پایه: LLM های پیشرفته

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

هنگام گسترش قابلیت ها، باید بر موارد زیر تمرکز کرد:

  • سفارشی سازی قابلیت ها بر اساس موارد استفاده خاص
  • اطمینان از ارائه یک رابط کاربری ساده و مستند به مدل

پروتکل متنی مدل اخیراً منتشر شده Anthropic، ادغام مدل های هوش مصنوعی با اکوسیستم ابزارهای شخص ثالث را ساده می کند.

گردش کار: زنجیره های اعلان

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

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

موارد استفاده معمولی:

  • ابتدا یک متن بازاریابی ایجاد کنید، سپس آن را به زبان های دیگر ترجمه کنید.
  • ابتدا یک پیش نویس اسناد بنویسید و یک بررسی انطباق انجام دهید، سپس بر اساس پیش نویس یک سند کامل بنویسید.

گردش کار: مسیریابی هوشمند

فناوری مسیریابی نوع کار ورودی را تعیین می کند و آن را به ماژول مربوطه اختصاص می دهد. این طراحی به هر ماژول اجازه می دهد تا برای یک کار خاص بهینه شود و از تداخل بین انواع مختلف کار جلوگیری کند. مسیریابی هوشمند برای سناریوهایی مناسب است که در آن کارها دارای ویژگی های طبقه بندی واضح هستند. سیستم های هوش مصنوعی می توانند با استفاده از مدل های زبانی بزرگ یا الگوریتم های سنتی، نوع کار را به طور دقیق شناسایی کرده و آن را مسیریابی کنند.

موارد استفاده معمولی:

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

گردش کار: موازی

مدل های زبانی بزرگ می توانند همزمان کارها را پردازش کرده و خروجی را به صورت برنامه نویسی جمع آوری کنند. ویژگی های گردش کار موازی:

  • تقسیم وظایف: تقسیم کارها به زیر وظایفی که می توانند به صورت موازی اجرا شوند و در نهایت ادغام نتایج.
  • مکانیسم رای گیری: اجرای یک کار مشابه چندین بار، انتخاب بهترین نتیجه یا ترکیب پاسخ های متعدد.

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

موارد استفاده معمولی:

  • تقسیم وظایف:
    • حفاظت امنیتی: یک مدل درخواست کاربر را پردازش می کند و مدل دیگر ممیزی محتوا را انجام می دهد.
    • ارزیابی عملکرد: مدل های مختلف معیارهای عملکرد سیستم را ارزیابی می کنند.
  • مکانیسم رای گیری:
    • بررسی امنیت کد: چندین مدل تشخیص به طور مشترک آسیب پذیری های کد را پیدا می کنند.
    • ممیزی محتوا: مدل های مختلف امنیت محتوا را از زوایای مختلف ارزیابی می کنند.

گردش کار: رهبر - مجری

یک مدل زبانی بزرگ مرکزی به طور پویا وظایف را تجزیه می کند، آنها را به مدل های مجری اختصاص می دهد و نتایج را جمع آوری می کند.

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

موارد استفاده معمولی:

  • برنامه های برنامه نویسی که نیاز به تغییرات پیچیده در چندین فایل دارند.
  • وظایف جستجویی که نیاز به جمع آوری و تجزیه و تحلیل اطلاعات مرتبط از منابع متعدد دارند.

گردش کار: ارزیابی - بهینه سازی

یک فراخوانی LLM یک پاسخ ایجاد می کند و دیگری بازخورد و ارزیابی ارائه می دهد و یک حلقه را تشکیل می دهد.

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

موارد استفاده معمولی:

  • ترجمه ادبی: مدل ارزیابی تفاوت های زبانی حذف شده در ترجمه را پیدا می کند و پیشنهادات اصلاحی ارائه می دهد.
  • جستجوی پیچیده: مدل ارزیابی تعیین می کند که آیا نیاز به ادامه جستجو است یا خیر.

عامل هوشمند

عوامل هوشمند با بلوغ LLM در قابلیت های کلیدی مانند درک ورودی های پیچیده، استدلال برنامه ریزی، استفاده از ابزار و بازیابی خطا ظاهر می شوند.

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

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

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

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

نمونه های کاربرد عامل هوشمند:

  • یک عامل هوشمند کد که برای حل وظایف SWE-bench که شامل ویرایش چندین فایل بر اساس توضیحات کار است استفاده می شود.
  • قابلیت "استفاده از کامپیوتر" Anthropic، که در آن کلود از کامپیوتر برای انجام وظایف استفاده می کند.

ترکیب و سفارشی سازی

این بلوک های سازنده تجویزی نیستند و توسعه دهندگان می توانند آنها را بر اساس موارد استفاده شکل داده و ترکیب کنند. کلید موفقیت در اندازه گیری عملکرد و پیاده سازی تکراری است. تنها زمانی باید پیچیدگی را در نظر گرفت که راه حل های ساده تر امکان پذیر نباشند. موفقیت در حوزه LLM در ساخت پیچیده ترین سیستم ها نیست، بلکه در ساخت سیستمی است که متناسب با نیازها باشد. با دستورات ساده شروع کنید، آنها را با ارزیابی های جامع بهینه کنید و تنها زمانی که راه حل های ساده تر امکان پذیر نیستند، سیستم های عامل هوشمند چند مرحله ای را اضافه کنید.

هنگام استقرار عوامل هوشمند، باید از اصول زیر پیروی کرد:

  • طراحی عوامل هوشمند را ساده نگه دارید.
  • اولویت را به اطمینان از شفافیت عامل هوشمند بدهید و هر مرحله برنامه ریزی شده را به وضوح نشان دهید.
  • با مستندات و آزمایش کامل ابزارها، یک رابط عامل-کامپیوتر (ACI) با دقت ایجاد کنید.