
Design and orchestrate autonomous agents with MCP, Multi-Agent Patt erns, and Harness Engineering
با پیشرفت مدلهای زبانی بزرگ، توسعه قابلیتهای هوش مصنوعی در نرمافزارها بیش از هر زمان دیگری در دسترس برنامهنویسان قرار گرفته است. امروزه میتوان با استفاده از این مدلها قابلیتهایی مانند پاسخگویی به پرسشها، خلاصهسازی متون، تولید محتوا و انجام وظایف متداول را به برنامههای نرمافزاری اضافه کرد. با این حال، ساخت یک نمونه اولیه که بتواند به چند پرسش پاسخ دهد، با توسعه یک سامانه هوشمند قابل اعتماد برای استفاده در محیط واقعی تفاوت اساسی دارد.
کتاب Building Agentic Apps با تمرکز بر همین چالش نوشته شده است. این اثر مسیر تبدیل قابلیتهای اولیه مدلهای زبانی به برنامههای هوش مصنوعی عاملمحور را بررسی میکند؛ برنامههایی که صرفاً منتظر دریافت دستور و تولید پاسخ نمیمانند، بلکه میتوانند اهداف مشخصی را دنبال کنند، اطلاعات موردنیاز خود را بازیابی کنند، از ابزارهای خارجی استفاده کنند، برای انجام وظایف برنامهریزی کنند و در چارچوب محدودیتهای تعریفشده به اجرای عملیات بپردازند.
نویسنده در این کتاب تلاش میکند دیدگاهی مهندسی و کاربردی نسبت به توسعه سامانههای عاملمحور ارائه دهد. تمرکز اصلی بر این است که چگونه میتوان قابلیتهای تصمیمگیری و استدلال مدلهای زبانی را با ساختار قابل کنترل نرمافزار ترکیب کرد تا نتیجه نهایی علاوه بر هوشمندی، از نظر امنیت، پایداری، قابلیت ارزیابی و نگهداری نیز قابل اعتماد باشد.
این کتاب راهنمایی کاربردی برای عبور از توسعه چتباتهای ساده و ورود به دنیای ساخت دستیارهای هوشمند، عاملهای نرمافزاری و سامانههای چندعاملی است.
مدلهای زبانی بزرگ توانایی قابل توجهی در پردازش زبان طبیعی، تولید پاسخ و تحلیل اطلاعات دارند. با این وجود، استفاده مؤثر از آنها در یک محصول نرمافزاری مستلزم طراحی معماری مناسبی است که بتواند اطلاعات صحیح را در اختیار مدل قرار دهد، دسترسی آن را به ابزارهای موردنیاز فراهم کند و بر عملکرد آن نظارت داشته باشد.
در یک برنامه معمولی مبتنی بر مدل زبانی، کاربر درخواستی ارسال میکند و مدل پاسخی تولید میکند. اما در یک برنامه عاملمحور، فرایند پیچیدهتری اتفاق میافتد. سامانه میتواند هدف کاربر را تحلیل کند، مراحل موردنیاز را تشخیص دهد، ابزارهای مناسب را انتخاب کند، نتایج عملیات را بررسی کند و در صورت نیاز مسیر انجام کار را تغییر دهد.
برای مثال، یک دستیار هوشمند رزرو سفر را در نظر بگیرید. چنین سامانهای نباید صرفاً پیشنهادهایی درباره مقصد و هتل ارائه دهد. بلکه باید بتواند اطلاعات مربوط به پروازها و اقامتگاهها را بازیابی کند، گزینههای مختلف را مقایسه کند، شرایط کاربر را در نظر بگیرد و در صورت دریافت مجوز لازم، عملیات رزرو را انجام دهد.
البته انجام چنین وظایفی بدون در نظر گرفتن محدودیتهای اجرایی میتواند خطرناک باشد. به همین دلیل، یکی از مهمترین موضوعات کتاب، تعیین مرز میان تصمیمگیری مدل هوش مصنوعی و مسئولیتهای قطعی برنامه نرمافزاری است.
خواننده در طول کتاب با مفاهیمی آشنا میشود که برای ساخت چنین سامانههایی ضروری هستند:
طراحی برنامههای عاملمحور و تعیین اهداف اجرایی
مهندسی زمینه و مدیریت اطلاعات در اختیار مدل
کلمات کلیدی:استفاده از حافظه و نگهداری وضعیت برنامه
اتصال مدلهای زبانی به ابزارها و خدمات خارجی
بازیابی اطلاعات از منابع معتبر
برنامهریزی و اجرای وظایف چندمرحلهای
هماهنگی میان چند عامل هوشمند
ارزیابی رفتار مدل و عملکرد عاملها
کنترل سطح خودمختاری و محدودکردن اقدامات
آمادهسازی سامانه برای استقرار و استفاده عملیاتی
یکی از موضوعات مهم در توسعه برنامههای هوش مصنوعی، مسئولیتپذیری در برابر تصمیمها و اقداماتی است که سامانه انجام میدهد. هرچه اختیار بیشتری به یک عامل هوشمند داده شود، اهمیت کنترل عملکرد آن نیز افزایش پیدا میکند.
کتاب با معرفی مبانی برنامههای عاملمحور و مفهوم خودمختاری آغاز میشود. در این بخش، خواننده یاد میگیرد که چه ویژگیهایی یک برنامه را به سامانهای عاملمحور تبدیل میکنند و چه تفاوتی میان یک دستیار پاسخگو و عاملی وجود دارد که میتواند برای رسیدن به یک هدف مشخص اقدام کند.
در ادامه، موضوعاتی مانند ایمنی، همراستایی رفتار هوش مصنوعی با اهداف تعیینشده، شفافیت و حفظ حریم خصوصی بررسی میشوند.
نویسنده با استفاده از نمونهای مرتبط با رزرو سفر نشان میدهد که چگونه باید میان پیشنهادهای تولیدشده توسط هوش مصنوعی، اقداماتی که برنامه بهصورت قطعی کنترل میکند و تصمیمهایی که نیازمند تأیید انسان هستند، مرزبندی کرد.
جلوگیری از خطاهای واقعی، محدودکردن اختیارات غیرضروری و مشخصبودن مسئولیت هر بخش از سامانه، از اصول اساسی طراحی برنامههای هوش مصنوعی قابل اعتماد هستند.
یکی از چالشهای مهم مدلهای زبانی، محدودیت اطلاعاتی است که در هر مرحله میتوانند پردازش کنند. همچنین اگر اطلاعات نامرتبط، ناقص یا نادرست در اختیار مدل قرار گیرد، احتمال تولید پاسخ نامناسب افزایش پیدا میکند.
مهندسی زمینه به مجموعه روشهایی گفته میشود که برای انتخاب، سازماندهی و ارائه اطلاعات مناسب به مدل به کار میروند.
در این کتاب، خواننده با نقش اجزای مختلف یک سامانه عاملمحور آشنا میشود؛ از جمله:
مدل زبانی بهعنوان بخش پردازش و تصمیمگیری
حافظه برای نگهداری اطلاعات موردنیاز
ابزارها برای ارتباط با محیط نرمافزار
محیط اجرایی برای انجام عملیات
سازوکارهای ارزیابی برای سنجش کیفیت عملکرد
شناخت ارتباط میان این اجزا به توسعهدهندگان کمک میکند تا از انتقال مسئولیتهای غیرضروری به مدل جلوگیری کنند و معماری نرمافزار را به شکلی طراحی کنند که رفتار آن قابل پیشبینیتر باشد.
برای توسعه برنامههای مبتنی بر هوش مصنوعی، شناخت نحوه تعامل با مدلهای زبانی اهمیت زیادی دارد.
کتاب در بخش مربوط به مبانی مدلهای زبانی بزرگ، موضوعاتی مانند دستورهای متنی، واحدهای پردازش متن، پنجره زمینه، انتخاب مدل و پارامترهای تولید پاسخ را بررسی میکند.
همچنین روشهای مختلف طراحی دستورها معرفی میشوند؛ از جمله استفاده از نقشهای مشخص، ارائه نمونههای راهنما، زنجیرهسازی دستورها و چارچوبهای ساختاریافته برای طراحی درخواستها.
خواننده یاد میگیرد چگونه با استفاده از پیامهای سیستمی و خروجیهای دارای ساختار مشخص، رفتار مدل را در محدوده موردنیاز برنامه هدایت کند.
درک صحیح این مفاهیم به توسعهدهنده کمک میکند تا هزینه پردازش، کیفیت پاسخها و رفتار مدل را بهتر مدیریت کند.
پس از معرفی مفاهیم پایه، کتاب وارد مرحله پیادهسازی میشود. در این قسمت، خواننده با نحوه تبدیل تعاملات ساده با مدلهای زبانی به قابلیتهای واقعی نرمافزاری آشنا خواهد شد.
تمرکز این بخش بر استفاده از زبان برنامهنویسی پایتون و ابزارهای توسعه برنامههای مبتنی بر مدلهای زبانی است.
یکی از نخستین پروژههای عملی کتاب، توسعه یک دستیار مبتنی بر خط فرمان است. در این پروژه، خواننده نحوه برقراری ارتباط برنامه با مدل زبانی و مدیریت فرایند ارسال درخواست و دریافت پاسخ را یاد میگیرد.
موضوعاتی که در این بخش بررسی میشوند عبارتاند از:
استفاده از ابزارهای توسعه برای ارتباط با مدل
مدیریت نقشهای مختلف در مکالمه
دریافت تدریجی پاسخها
تنظیم رفتار مدل
مدیریت تعاملات متوالی
اعتبارسنجی خروجیهای ساختاریافته
استفاده از ابزارهای بررسی ساختار داده در پایتون
همچنین کتاب نشان میدهد چگونه میتوان با استفاده از روشهای اعتبارسنجی داده، اطمینان حاصل کرد که خروجی تولیدشده با ساختار مورد انتظار برنامه مطابقت دارد.
این موضوع بهخصوص در برنامههایی اهمیت دارد که خروجی مدل باید مستقیماً در بخشهای دیگر نرمافزار استفاده شود.
یکی از قابلیتهای مهم برنامههای عاملمحور، توانایی استفاده از ابزارهای خارجی است.
مدل زبانی بهتنهایی نمیتواند به تمام اطلاعات و امکانات موردنیاز یک برنامه دسترسی داشته باشد. برای مثال، ممکن است لازم باشد اطلاعاتی از پایگاه داده دریافت کند، یک درخواست به رابط برنامهنویسی کاربردی ارسال کند یا عملیاتی را در یک سامانه خارجی انجام دهد.
قابلیت فراخوانی ابزار به مدل اجازه میدهد درخواست اجرای یک عملیات مشخص را با پارامترهای موردنیاز تولید کند. سپس برنامه درخواست را دریافت میکند، ابزار مربوطه را اجرا میکند و نتیجه را مجدداً در اختیار مدل قرار میدهد.
کتاب این فرایند را از مرحله تعریف ابزارها و مشخصکردن پارامترها تا اجرای عملیات و بازگرداندن نتیجه بررسی میکند.
نکته مهم این است که مدل صرفاً درخواست استفاده از ابزار را تولید میکند و اجرای واقعی عملیات باید تحت کنترل برنامه انجام شود.
در مثالهای این بخش، اتصال به رابطهای برنامهنویسی کاربردی و پایگاههای داده، مدیریت خطاها، سازماندهی ابزارها و استفاده از امکانات کمکی برای کاهش کدنویسی تکراری بررسی میشوند.
یکی از محدودیتهای مدلهای زبانی این است که پاسخهای آنها همیشه بر اساس اطلاعات اختصاصی و بهروز یک سازمان یا برنامه تولید نمیشوند. برای حل این مشکل، روشهای بازیابی اطلاعات به کار گرفته میشوند.
روش تولید پاسخ با کمک بازیابی اطلاعات، امکان استفاده از منابع مشخص و معتبر را هنگام تولید پاسخ فراهم میکند.
در این روش، ابتدا اسناد و اطلاعات موردنیاز آمادهسازی میشوند. سپس محتوای آنها به بخشهای کوچکتر تقسیم شده و نمایشهای عددی مناسبی از اطلاعات تولید میشود تا بتوان مطالب مرتبط را بازیابی کرد.
هنگام دریافت پرسش، سامانه اطلاعات مرتبط را پیدا میکند و در اختیار مدل زبانی قرار میدهد تا پاسخ بر اساس محتوای بازیابیشده تولید شود.
در این کتاب، مراحل اصلی ساخت چنین سامانهای بهصورت عملی بررسی میشوند:
آمادهسازی و پردازش اسناد
تقسیم اسناد به بخشهای قابل مدیریت
تولید نمایشهای عددی از محتوا
بازیابی اطلاعات مرتبط با پرسش
ترکیب اطلاعات بازیابیشده با درخواست کاربر
ساخت زنجیره پردازش و تولید پاسخ
بررسی کیفیت بازیابی و شناسایی خطاهای رایج
این روش برای ساخت دستیارهای هوشمندی که باید بر اساس اسناد داخلی، مستندات فنی، اطلاعات محصولات یا پایگاه دانش یک سازمان پاسخ دهند، اهمیت ویژهای دارد.
در برخی پرسشها، پیدا کردن یک قطعه متن مرتبط کافی نیست. ممکن است پاسخ به شناخت ارتباط میان چند موجودیت وابسته باشد.
برای مثال، در یک سامانه اطلاعاتی بزرگ، ممکن است لازم باشد ارتباط میان کاربران، محصولات، شرکتها، فناوریها و رویدادهای مختلف بررسی شود.
در چنین شرایطی، بازیابی اطلاعات مبتنی بر گراف میتواند انتخاب مناسبی باشد.
کتاب در این بخش به مدلسازی دادههای گرافی، بازیابی اطلاعات مبتنی بر روابط و تشخیص شرایط مناسب برای استفاده از این روش میپردازد.
همچنین تفاوت این رویکرد با روشهای متداول بازیابی برداری بررسی میشود تا توسعهدهنده بتواند متناسب با نوع دادهها و پیچیدگی پرسشها، معماری مناسب را انتخاب کند.
پروتکل زمینه مدل روشی برای ایجاد ارتباط استاندارد میان مدلهای هوش مصنوعی و ابزارها، منابع داده و خدمات خارجی است.
در برنامههای عاملمحور، تعداد ابزارها و منابع اطلاعاتی میتواند بسیار زیاد باشد. اگر هر اتصال بهصورت مستقل و با ساختار متفاوت پیادهسازی شود، نگهداری و توسعه سامانه دشوار خواهد شد.
استفاده از یک روش ارتباطی استاندارد میتواند فرایند اتصال مدل به قابلیتهای مختلف را سادهتر و منظمتر کند.
کتاب این پروتکل را در کنار روشهای فراخوانی ابزار و بازیابی اطلاعات معرفی میکند تا خواننده درک بهتری از معماری ارتباطی برنامههای هوش مصنوعی به دست آورد.
پس از شناخت مدلهای زبانی، ابزارها و روشهای بازیابی اطلاعات، نوبت به طراحی عاملهای هوشمند میرسد.
عامل هوشمند برخلاف یک برنامه ساده مبتنی بر پرسش و پاسخ، میتواند یک هدف را دنبال کند و با توجه به اطلاعات موجود، مراحل لازم برای رسیدن به آن را انتخاب کند.
یکی از الگوهای مهم در توسعه عاملهای هوشمند، الگوی استدلال و اقدام است.
در این روش، عامل بهصورت مرحلهای وضعیت موجود را بررسی میکند، تصمیم میگیرد چه اقدامی لازم است، ابزار مناسب را انتخاب میکند و نتیجه عملیات را مشاهده میکند.
سپس با استفاده از اطلاعات جدید، مرحله بعدی را مشخص میکند.
کتاب نحوه ساخت یک برنامه مبتنی بر این الگو را توضیح میدهد و بر تعیین شرایط توقف تأکید میکند.
این موضوع اهمیت زیادی دارد؛ زیرا یک عامل نباید بدون محدودیت در یک چرخه نامحدود از تصمیمگیری و اجرای ابزارها باقی بماند.
تعیین شرایط توقف، بررسی نتایج و محدودکردن تعداد اقدامات، از الزامات طراحی یک عامل هوشمند قابل کنترل است.
یکی از مباحث کلیدی کتاب، بررسی تفاوت معماری دستیارهای هوشمند و عاملهای نرمافزاری است.
دستیار معمولاً وظیفه پاسخگویی به درخواستهای کاربر را بر عهده دارد، اما عامل میتواند برای دستیابی به یک هدف، مجموعهای از اقدامات را انتخاب و اجرا کند.
برای پیادهسازی چنین سامانهای باید مسئولیت اجزای مختلف مشخص باشد.
مدل زبانی میتواند در تحلیل درخواست و انتخاب اقدامات نقش داشته باشد، اما مدیریت وضعیت، کنترل دسترسی، اعتبارسنجی و اجرای عملیات حساس باید در ساختار برنامه انجام شوند.
این تفکیک باعث میشود معماری عامل از وابستگی بیش از حد به رفتار احتمالی مدل دور بماند.
بسیاری از وظایف واقعی نرمافزاری با یک اقدام ساده تکمیل نمیشوند. برای رسیدن به هدف ممکن است لازم باشد چندین مرحله به ترتیب مشخص انجام شوند.
در چنین شرایطی، عامل باید بتواند هدف اصلی را به وظایف کوچکتر تقسیم کند، برای انجام آنها برنامهریزی کند و پیشرفت کار را بررسی کند.
کتاب روشهای مختلف برنامهریزی را معرفی کرده و نحوه نمایش، اجرای و بررسی برنامههای عملیاتی را توضیح میدهد.
همچنین به این موضوع میپردازد که چگونه میتوان امکان اصلاح برنامه را برای عامل فراهم کرد، بدون آنکه کنترل اصلی اجرای عملیات از دست برنامه نرمافزاری خارج شود.
در سامانههای پیشرفته، ممکن است چندین عامل یا ابزار مختلف برای انجام یک وظیفه با یکدیگر همکاری کنند.
هماهنگسازی عاملها به معنای مدیریت ارتباط میان مدلها، ابزارها، وضعیت برنامه و جریان اجرای وظایف است.
در این بخش، خواننده با سطوح مختلف خودمختاری، روشهای هماهنگسازی، شرایط توقف و محدودیتهای اجرایی آشنا میشود.
همه وظایف به یک میزان از خودمختاری نیاز ندارند. برای مثال، یک عامل ممکن است اجازه داشته باشد اطلاعات را جستوجو و دستهبندی کند، اما برای حذف دادهها یا انجام تراکنش مالی به تأیید صریح کاربر نیاز داشته باشد.
کتاب نشان میدهد چگونه میتوان میزان اختیار عامل را متناسب با اهمیت و ریسک هر وظیفه تعیین کرد.
با پیچیدهتر شدن وظایف، استفاده از یک عامل واحد ممکن است به محدودیتهایی منجر شود. یکی از راهکارهای توسعه سامانههای پیشرفته، تقسیم وظایف میان چند عامل تخصصی است.
در معماری چندعاملی، هر عامل میتواند مسئولیت مشخصی داشته باشد و از طریق تبادل اطلاعات با سایر عاملها به تکمیل هدف کلی کمک کند.
برای مثال، در یک سامانه تحلیل بازار میتوان مسئولیت جمعآوری اطلاعات، بررسی دادهها، تحلیل نتایج و تهیه گزارش نهایی را میان چند عامل تقسیم کرد.
همکاری مؤثر میان عاملها به طراحی مناسب ارتباطات وابسته است.
اگر پیامها بهدرستی طراحی نشوند یا اطلاعات موردنیاز بهصورت ناقص منتقل شوند، عملکرد کل سامانه تحت تأثیر قرار میگیرد.
در این کتاب، موضوعاتی مانند تعیین مسئولیت هر عامل، طراحی پیامها، اشتراکگذاری اطلاعات، انتقال وظایف و مدیریت همکاری بررسی میشوند.
همچنین مزایا و محدودیتهای تقسیم یک وظیفه میان چند عامل مورد توجه قرار میگیرند.
سامانههای چندعاملی میتوانند بر اساس الگوهای معماری متفاوتی طراحی شوند.
در برخی ساختارها، یک عامل اصلی وظایف را میان عاملهای تخصصی تقسیم میکند. در برخی دیگر، عاملها بهصورت مستقل بخشهایی از یک مسئله را بررسی میکنند و نتایج خود را در اختیار سایر بخشها قرار میدهند.
کتاب الگوهای متداول همکاری و واگذاری وظایف را بررسی میکند و نشان میدهد انتخاب معماری مناسب باید بر اساس عوامل زیر انجام شود:
نحوه تقسیم مسئله به وظایف کوچکتر
مشخصبودن مسئولیت هر عامل
روش ارتباط و انتقال اطلاعات
نیازهای مربوط به بررسی و تأیید نتایج
هزینه هماهنگی میان عاملها
در توسعه سامانههای عاملمحور، صرفاً شناخت الگوهای موفق کافی نیست. توسعهدهنده باید بداند چه تصمیمهایی ممکن است باعث پیچیدگی غیرضروری یا کاهش قابلیت اطمینان سیستم شوند.
کتاب به بررسی الگوهای طراحی مناسب و ضدالگوهای رایج میپردازد.
از جمله مشکلاتی که در این بخش مورد توجه قرار میگیرند میتوان به خودمختاری بیش از حد، وضعیت پنهان، اعتبارسنجی ضعیف نتایج و افزایش بیدلیل تعداد عاملها اشاره کرد.
معماری خوب الزاماً پیچیدهترین معماری نیست؛ بلکه ساختاری است که با کمترین پیچیدگی غیرضروری، وظیفه موردنظر را به شکلی قابل کنترل و قابل نگهداری انجام دهد.
یکی از چالشهای اساسی توسعه برنامههای مبتنی بر مدلهای زبانی، ارزیابی عملکرد آنها است.
در نرمافزارهای معمولی، بسیاری از رفتارها بر اساس قواعد مشخصی اجرا میشوند. بنابراین میتوان با آزمونهای متداول بررسی کرد که آیا خروجی برنامه مطابق انتظار است یا خیر.
اما مدلهای زبانی ماهیتی احتمالی دارند و ممکن است در پاسخ به درخواستهای مشابه، خروجیهای متفاوتی تولید کنند.
به همین دلیل، روشهای ارزیابی عاملهای هوشمند باید فراتر از آزمونهای معمول نرمافزاری باشند.
در این بخش، خواننده با روش تعریف معیارهای رفتاری و تعیین آستانههای قابل قبول آشنا میشود.
همچنین نحوه ساخت مجموعه دادههای ارزیابی و خودکارسازی بررسی پاسخهای تولیدشده توضیح داده میشود.
هدف این است که توسعهدهنده بتواند کیفیت رفتار مدل را بر اساس معیارهای مشخص اندازهگیری کند، نه اینکه صرفاً به چند نمونه پاسخ موفق اکتفا کند.
در عاملهای هوشمند، تنها نتیجه نهایی اهمیت ندارد. ممکن است یک عامل در نهایت به پاسخ صحیح برسد، اما برای رسیدن به آن از مسیر نامناسبی استفاده کرده باشد.
برای مثال، ممکن است ابزار اشتباهی انتخاب کند، اطلاعات غیرضروری جمعآوری کند یا عملیاتی را انجام دهد که برای رسیدن به هدف لازم نبوده است.
به همین دلیل، کتاب بر ارزیابی مسیر اجرای عامل تأکید میکند.
مواردی که باید بررسی شوند عبارتاند از:
کیفیت نتیجه نهایی
ترتیب اقدامات انجامشده
انتخاب ابزارهای مناسب
اطلاعات استفادهشده در هر مرحله
وضعیت داخلی عامل
جریان کنترل و شرایط توقف
ارزیابی دقیق باید هم نتیجه کار و هم نحوه رسیدن به آن نتیجه را پوشش دهد.
یکی از موضوعات تخصصی کتاب، ساخت یک محیط اجرایی پیرامون عامل هوشمند است که مسئولیت مدیریت زمینه، ابزارها، وضعیت، محدودیتها و سیاستهای اجرایی را بر عهده دارد.
چنین ساختاری باعث میشود عملکرد عامل از طریق یک لایه مشخص و قابل نظارت مدیریت شود.
این محیط اجرایی میتواند رویدادهای ساختاریافته ثبت کند، محدودیتهای لازم را اعمال کند و شرایط پایان عملیات را کنترل کند.
در نتیجه، امکان ارزیابی مستقل عملکرد مدل و تضمینهای قطعی برنامه فراهم میشود.
ساخت یک عامل هوشمند که در محیط توسعه بهدرستی کار میکند، به معنای آمادهبودن آن برای استفاده واقعی نیست.
در محیط عملیاتی، برنامه باید بتواند با مشکلاتی مانند قطع ارتباط، اجرای تکراری درخواستها، دسترسیهای غیرمجاز، همزمانی عملیات و شکست فرایندها مقابله کند.
کتاب در بخشهای پایانی به همین موضوعات میپردازد و مسیر تبدیل یک نمونه اولیه به سامانهای قابل اعتماد را بررسی میکند.
عاملهای هوشمند ممکن است به اطلاعات حساس یا عملیات مهم یک برنامه دسترسی داشته باشند.
بنابراین باید مشخص باشد که هر عامل با چه هویتی فعالیت میکند و چه مجوزهایی در اختیار دارد.
کتاب به اهمیت هویت قابل اعتماد، کنترل مجوزها و تعیین مرزهای تأیید انسانی میپردازد.
این موضوع برای برنامههایی که با اطلاعات کاربران، سفارشها، پرداختها یا سایر عملیات حساس سروکار دارند، اهمیت زیادی دارد.
در عملیات چندمرحلهای، ممکن است برنامه در میانه اجرای یک وظیفه با مشکل مواجه شود.
اگر وضعیت اجرای عملیات بهدرستی ذخیره نشده باشد، بازیابی فرایند دشوار خواهد شد و احتمال تکرار ناخواسته اقدامات وجود دارد.
برای جلوگیری از چنین مشکلاتی، کتاب مفاهیمی مانند ثبت نقاط بازیابی، مهلت اجرای عملیات، لغو درخواستها و مدیریت وضعیت پایدار را معرفی میکند.
همچنین موضوعاتی مانند اجرای تکرارپذیر عملیات، کنترل همزمانی و تطبیق وضعیت پس از شکست بررسی میشوند.
یک عامل قابل اعتماد باید نهتنها در شرایط عادی، بلکه هنگام بروز خطا نیز رفتار قابل مدیریت و قابل پیشبینی داشته باشد.
یکی از مشکلات مهم در سامانههای عاملمحور، تکرار ناخواسته عملیات است.
فرض کنید یک عامل درخواست ثبت سفارش را ارسال کرده است، اما پیش از دریافت پاسخ با قطع ارتباط مواجه میشود. در چنین شرایطی ممکن است مشخص نباشد که سفارش ثبت شده است یا خیر.
اگر عامل بدون بررسی مجدد درخواست را تکرار کند، احتمال ثبت چندباره سفارش وجود دارد.
کتاب در این زمینه به روشهایی مانند مدیریت اجرای تکرارپذیر، کنترل همزمانی و تطبیق وضعیت عملیات میپردازد.
این مفاهیم برای توسعهدهندگان سامانههای مالی، فروشگاهی و سازمانی اهمیت زیادی دارند.
پس از استقرار برنامه، توسعهدهنده باید بتواند رفتار سامانه را بررسی کند و در صورت بروز مشکل، علت آن را پیدا کند.
برای این منظور، کتاب روشهای نظارت بر عاملها در محیط عملیاتی را معرفی میکند.
این روشها شامل ثبت گزارشهای اجرایی، اندازهگیری شاخصهای عملکرد، ردیابی درخواستها و نگهداری اطلاعات مربوط به استقرارهای مختلف هستند.
همچنین موضوعاتی مانند سناریوهای بازآزمایی، اهداف سطح خدمت و بودجه خطا بررسی میشوند.
با استفاده از این اطلاعات، تیم توسعه میتواند تغییرات رفتاری عاملها را شناسایی کند، مشکلات را بازتولید کند و اصلاحات انجامشده را ارزیابی کند.
تغییر مدل، دستورها، ابزارها یا معماری عامل ممکن است رفتار سامانه را تحت تأثیر قرار دهد.
به همین دلیل، انتشار نسخههای جدید باید همراه با ارزیابی و نظارت انجام شود.
کتاب به استفاده از انتشار آزمایشی محدود و سناریوهای بازآزمایی برای بررسی تغییرات میپردازد.
این روشها کمک میکنند مشکلات احتمالی پیش از گسترش کامل نسخه جدید شناسایی شوند.
نگهداری یک سامانه عاملمحور به پایان فرایند توسعه محدود نمیشود؛ بلکه ارزیابی و بهبود آن باید پس از استقرار نیز ادامه داشته باشد.
یکی از ویژگیهای مهم کتاب Building Agentic Apps، حرکت تدریجی از مباحث پایه به سمت معماریهای پیشرفته و مسائل عملیاتی است.
مطالب صرفاً به معرفی مفاهیم نظری محدود نمیشوند، بلکه با نمونههای قابل اجرا، تمرینها، نقاط ارزیابی و تکالیف آموزشی همراه هستند.
در ابتدای مسیر، مثالها بر ساخت برنامههای ساده مبتنی بر خط فرمان تمرکز دارند. سپس بهتدریج قابلیتهایی مانند استفاده از ابزارها، بازیابی اطلاعات، مدیریت حافظه، برنامهریزی و همکاری چندعاملی به پروژهها اضافه میشوند.
در مراحل پیشرفتهتر، تمرکز از ساخت قابلیتهای هوشمند به سمت بررسی مسیر اجرا، تضمین محدودیتهای عملیاتی و ارزیابی مستقل رفتار سامانه تغییر میکند.
این ساختار باعث میشود خواننده بتواند ارتباط میان مفاهیم مختلف را در قالب یک مسیر توسعه واقعی درک کند.
برای بهرهبرداری بهتر از مطالب و تمرینهای این کتاب، آشنایی با مفاهیم عمومی برنامهنویسی ضروری است.
همچنین بهتر است خواننده تجربه کار با زبان برنامهنویسی پایتون و اجرای دستورات در محیط خط فرمان را داشته باشد.
آشنایی با موارد زیر نیز به درک بهتر مثالها کمک میکند:
مفاهیم پایه زبان برنامهنویسی پایتون
ارتباطات شبکه و پروتکل انتقال اطلاعات
رابطهای برنامهنویسی کاربردی
ساختار دادههای متنی و قالبهای تبادل اطلاعات
پایگاههای داده
توسعه برنامههای تحت وب
اصول اولیه آزمون نرمافزار
کار با ابزارهای مدیریت نسخه و محیطهای مجازی
در بخش تمرینهای کتاب از ابزارهایی مانند ویرایشگرهای برنامهنویسی، ابزارهای مدیریت محیط پایتون و سامانههای اجرای محلی مدلهای زبانی استفاده میشود.
نسخه موردنیاز پایتون برای دنبالکردن مثالها، نسخه ۳.۱۱ یا بالاتر است.
همچنین برخی تمرینها ممکن است به دسترسی اینترنت، حساب کاربری یا اطلاعات دسترسی خدمات خارجی نیاز داشته باشند. البته در تعدادی از تمرینهای پیشرفته، امکان بررسی رفتار هماهنگسازی و عملکرد عملیاتی بدون برقراری ارتباط زنده با خدمات مدلهای زبانی نیز فراهم شده است.
برای مطالعه این کتاب نیازی به داشتن تجربه قبلی در توسعه عاملهای هوش مصنوعی نیست، اما آشنایی با برنامهنویسی و مفاهیم توسعه نرمافزار بهشدت توصیه میشود.
این کتاب برای افرادی نوشته شده است که قصد دارند از سطح استفاده ساده از مدلهای زبانی عبور کنند و به طراحی و پیادهسازی برنامههای هوشمند پیشرفته برسند.
مخاطبان اصلی آن عبارتاند از:
توسعهدهندگانی که در بخشهای مختلف برنامههای تحت وب فعالیت میکنند، میتوانند از مطالب کتاب برای افزودن قابلیتهای هوشمند به محصولات نرمافزاری خود استفاده کنند.
اتصال مدلهای زبانی به پایگاه داده، مدیریت وضعیت، استفاده از ابزارهای خارجی و طراحی دستیارهای هوشمند از جمله موضوعاتی هستند که برای این گروه کاربرد دارند.
معماران نرمافزار با مطالعه این کتاب میتوانند دیدگاه جامعتری نسبت به طراحی سامانههای عاملمحور به دست آورند.
تفکیک مسئولیتها، تعیین مرزهای کنترل، انتخاب معماری مناسب، مدیریت خودمختاری و طراحی سامانههای قابل نگهداری از مباحث مهم برای این گروه هستند.
افرادی که با مدلهای زبانی و خدمات هوش مصنوعی کار کردهاند و قصد دارند دانش خود را به سمت توسعه برنامههای عاملمحور گسترش دهند، مخاطبان مهم این کتاب هستند.
مطالب مربوط به بازیابی اطلاعات، الگوهای استدلال و اقدام، برنامهریزی، هماهنگسازی عاملها و ارزیابی رفتار مدلها برای این گروه اهمیت ویژهای دارد.
سرپرستان فنی میتوانند از محتوای کتاب برای درک تصمیمهای معماری و الزامات عملیاتی سامانههای مبتنی بر هوش مصنوعی استفاده کنند.
همچنین مدیران محصولی که در توسعه محصولات هوشمند فعالیت دارند، با مطالعه این اثر درک بهتری از محدودیتها، ریسکها و نیازمندیهای فنی چنین محصولاتی پیدا خواهند کرد.
اگر تجربه کار با دستیارهای هوشمند یا رابطهای برنامهنویسی مدلهای زبانی را دارید و میخواهید برنامههایی بسازید که بتوانند اطلاعات بازیابی کنند، ابزارها را به کار بگیرند و وظایف پیچیده را بهصورت مرحلهای انجام دهند، این کتاب میتواند نقطه شروع مناسبی برای ورود تخصصی شما به این حوزه باشد.
توسعه برنامههای عاملمحور یکی از مسیرهای مهم گسترش کاربرد هوش مصنوعی در مهندسی نرمافزار است. با این حال، موفقیت در این حوزه تنها به شناخت مدلهای زبانی و نحوه ارسال درخواست به آنها وابسته نیست.
توسعهدهنده باید بتواند میان قابلیتهای احتمالی مدل و تضمینهای قطعی برنامه تعادل برقرار کند.
کتاب Building Agentic Apps دقیقاً بر همین مسئله تمرکز دارد و تلاش میکند مجموعهای از مهارتهای ضروری برای توسعه، ارزیابی و نگهداری چنین سامانههایی را در اختیار خواننده قرار دهد.
از مهمترین ارزشهای آموزشی این کتاب میتوان به موارد زیر اشاره کرد:
یادگیری مسیر کامل توسعه عاملهای هوشمند: از مبانی مدلهای زبانی تا طراحی معماریهای پیشرفته و استقرار عملیاتی.
شناخت روشهای اتصال هوش مصنوعی به نرمافزار: استفاده از ابزارها، پایگاههای داده و منابع اطلاعاتی خارجی.
تسلط بر روشهای بازیابی اطلاعات: طراحی سامانههایی که پاسخهای خود را بر اساس منابع مشخص و مرتبط تولید میکنند.
درک معماریهای چندعاملی: تقسیم وظایف پیچیده میان عاملهای تخصصی و مدیریت ارتباط آنها.
افزایش قابلیت اطمینان سامانهها: شناخت روشهای کنترل دسترسی، مدیریت خطا و بازیابی عملیات.
یادگیری ارزیابی تخصصی عاملها: بررسی کیفیت پاسخها، اقدامات و مسیر اجرای وظایف.
آمادگی برای توسعه محصولات واقعی: شناخت الزامات نظارت، نگهداری و بهبود سامانههای هوش مصنوعی پس از استقرار.
نمونه چاپ کتاب موجود نیست.
نظرات کاربران (0)