برخی از دشوارترین چالشها در طراحی عاملها، شباهت شگفتانگیزی به سازوکارهای ذهن انسان دارند. این تشابه لزوماً به معنای اقتباس راهحلهای مهندسی از علوم اعصاب نیست؛ بلکه نشان میدهد که راهکارهای مهندسیِ کارآمد اغلب در نهایت به همان الگوهایی میرسند که ذهن انسان از دیرباز به آنها دست یافته است. در ادامه، سه نمونه از این الگوها را بررسی میکنیم.
تمرکز بهجای شلوغی
ذهن انسان تمام دغدغههای روزمره را بهطور همزمان در حافظهٔ فعال خود نگه نمیدارد، بلکه در هر لحظه تنها بر امور مرتبط با فعالیت کنونیاش متمرکز میشود. عاملها نیز باید رویکرد مشابهی پیش بگیرند. دسترسی همزمانِ یک عامل به تمامی دادهها، دو مشکل اساسی ایجاد میکند: نخست، افزایش هزینهٔ پردازش؛ و دوم — که اهمیت بهمراتب بیشتری دارد — ورود اطلاعات نامرتبط به زمینه (context) است که موجب توهم مدل و بروز خطا میشود.
راهکار این مسئله، محدود کردن زمینه به نیت کاربر است: ابتدا خواستهٔ کاربر را تشخیص دهید و سپس تنها آن بخش از اطلاعات را در اختیار هر جزء قرار دهید که برای برآورده کردن همان نیت ضروری است. برای نمونه، جزئی که وظیفهٔ توزیع کارها را بر عهده دارد، نیازی به تاریخچهٔ گفتوگو ندارد و تنها داشتن فهرست وظایف برای آن کافی است. این رویکرد در واقع همان اصل «کمترین سطح دسترسی» در قلمروی دانش است؛ بدین معنا که هر جزء تنها اطلاعاتی را دریافت میکند که برای انجام وظیفهاش به آن نیاز دارد. نتیجهٔ این رویکرد، ساخت سامانهای ارزانتر و دقیقتر خواهد بود.
تشخیص زمان اتمام کار
انسان معمولاً درک روشنی از پایان یافتن یا نیافتن کارهایش دارد؛ پدیدهای که میتوان آن را نوعی خودآگاهی ساده از وضعیت پیشرفت کار دانست. یک سامانهٔ عامل کارآمد نیز به سازوکاری مشابه نیاز دارد: جزئی مجزا که تنها وظیفهاش طرح این پرسش باشد: «آیا واقعاً تمام کارها به پایان رسیدهاند؟»
نکتهٔ ظریف اینجاست که انجام این ارزیابی نیازی به هوش یک مدل زبانی ندارد. پرسشِ «آیا همهٔ کارها تمام شدهاند؟» مسئلهای محاسباتی است و نه استدلالی؛ برای پاسخ به آن تنها کافی است تعداد کارهای انجامشده را بشمارید. واگذاری این وظیفه به یک مدل زبانی، علاوه بر تحمیل هزینهٔ بالا، پایداری سامانه را نیز بیجهت به خطر میاندازد. در مقابل، بهتر است ناظرِ تکمیل کارها رفتاری قطعی و پیشبینیپذیر داشته باشد. تفکیک مسئولیتِ «تشخیص پایان کار» و سپردن آن به جزئی مستقل و قطعی، سامانه را سادهتر و مقاومتر میسازد.
تفکیک لایههای حافظه
انسان تنها یک حافظه ندارد، بلکه از حافظههای متعددی با طول عمر و کارکردهای گوناگون بهره میبرد؛ آنچه هماکنون در ذهن داریم با آنچه از سالها پیش به یاد میآوریم، تفاوت دارد. عاملها نیز از چنین تفکیکی بهرهمند خواهند شد.
در طراحی عاملها، دستکم دو نوع حافظه را از یکدیگر متمایز کنید. نخست، حافظهٔ هماهنگی: دادههای موقتی که تنها در طول اجرای یک درخواست مفهوم دارند؛ مانند پاسخی برای این پرسش که «روند همکاری ما در حال حاضر چگونه پیش میرود». این دادهها گذرا هستند و با اتمام عملیات پاک میشوند. اما آنچه پاک میشود، صرفاً زمینهٔ کاریِ موضعیِ همان درخواست است — یعنی همان یادداشتهای پویایی که نحوهٔ تعاملِ آنیِ بخشها را ثبت میکنند — نه گزارشِ رویدادها و چراییِ آنها؛ چرا که این شرحِ استدلال در حافظهٔ ماندگار حفظ میشود. دوم، حافظهٔ حوزه: اطلاعاتی دربارهٔ کاربر و گفتوگو که باید در طول زمان ماندگار بمانند. این تفکیک مزیت بزرگی به همراه دارد؛ چراکه حتی اگر در میانهٔ اجرای یک وظیفه خطایی رخ دهد، حافظهٔ حوزه آسیب نمیبیند و دانش انباشتهشده از دست نمیرود. بنابراین، طول عمر هر داده را بر اساس نقش آن تعریف کنید، نه با قاعدهای یکسان برای همهٔ موارد.
شباهتها تصادفی نیستند
این سه الگو — یعنی تمرکز بر زمینه، ناظر بر تکمیل کار و حافظهٔ چندلایه — هرکدام پاسخهایی مهندسی به چالشهایی مشخص هستند. با این حال، شباهت آنها به الگوهای شناختیِ انسان تصادفی نیست؛ چراکه هنگام رویارویی با محدودیتهای توجه، احتمال بروز خطا و لزوم پایداری، راهحلهای بهینه به یکدیگر همگرا میشوند. از این رو، ذهن انسان مسیر بسیار مناسبی را برای طراحی عاملها پیش روی ما میگذارد.