سیستمهای اطلاعاتی استراتژیک[۱۳]
مفهوم سیستمهای اطلاعاتی استراتژیک نخستین بار در اوایل دهه ۸۰ توسط دکتر چارلز وایزمن[۱۴] مطرح شد و نگاه به سیستمهای اطلاعاتی در سازمانها را دستخوش تغییر زیادی کرد. این مفهوم به سیستمهای اطلاعاتی به عنوان یک ابزار یا سلاح رقابتی مینگرد. در تعریف آنها میتوان گفت سیستمهای اطلاعاتی استراتژیک نوع خاصی از سیستمهای اطلاعاتی هستند که از استراتژی های حاکم در سازمان، به ویژه استراتژی های رقابتی پشتیبانی می کنند. از این سیستمها میتوان به منظور بهبود ارتباط با مشتریان، بهبود فرایند طراحی، تولید و عرضه محصولات، ایجاد و توسعه کمی و کیفی روشهای ارتباطی با تأمینکنندگان مواداولیه و قطعات موردنیاز، ایجاد فرصتهای جدید فروش و نهایتا افزایش بهرهوری سازمان استفاده نمود[۵۵].
تعریف مختصر و مفیدتر سیستمهای اطلاعاتی راهبردی را سیستمهایی کامپیوتری معرفی می کند که مسئول اجرای استراتژی های تجاری سازمانند. در واقع در اینسیستمها، اطلاعاتی که توسط کامپیوترها جمعآوری، پردازش و تجزیه و تحلیل میشوند، نقش اساسی و مهمی در تعیین یا اجرای استراتژی های تجاری سازمان دارند]۲۲[.
سیستمهای اطلاعاتی راهبردی در طی مدتزمانی که از پیدایش آنها گذشته است، با توجه به منافعی که برای سازمانها به دنبال داشته و فرصتهایی که در راستای افزایش سطح کارایی سازمان ایجاد نموده اند، توانسته اند جایگاه مهم و قابل توجهی بدست آورند.
( اینجا فقط تکه ای از متن پایان نامه درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. )
همانگونه که در بخشهای پیشین اشاره شد، سیستمهای اطلاعاتی سازمانی طی یک فرایند تکاملی از سیستمهای پردازش تراکنشها (که وظیفهی ثبت و ضبط تراکنشهای مالی را برعهده داشتند) به سیستمهای مدیریت اطلاعات (که وضعیت دارایی های سازمان مدیریت میکردند) و پس از آن به سمت سیستمهای پشتیبان تصمیم (که مدیران را در تعیین برخی سیاستها یاری میرساندند) تکامل یافتهاند. پس از سیستمهای پشتیبان تصمیم نوبت به نسل بعدی سیستمهای اطلاعاتی که همان سیستمهای اطلاعاتی راهبردی هستند، رسید. این سیستمها نیز مانند نسلهای پیشین سیستمهای اطلاعاتی، قابلیت پردازش و مدیریت موجودی مشتریان و ارتباط آن با سیستم سفارشات سازمان را دارا هستند، با این تفاوت که برخلاف سیستمهای قبلی که بیشتر جنبه های هزینهای سازمان را مورد توجه قرار میدادند، در سیستمهای اطلاعاتی استراتژیک، هدف استفاده از اطلاعات به منظور ارائه خدمات جدید، استفاده بهینه از فرصتها و دوری جستن از تهدیدات احتمالی و نهایتا کسب منفعت بیشتر برای سازمان است. علاوه بر آن برخلاف سیستمهای نسلهای قبلی که بیشتر بر فعالیتهای درون سازمانی توجه داشتند، در سیستمهای اطلاعاتی استراتژیک محیط پیرامون سازمان نیز به اندازه درون آن از اهمیت برخوردار بوده و مورد توجه قرار میگیرد]۱۸[.
دستیابی به مزایای رقابتی برای سازمان یکی از مهمترین اهداف به کارگیری سیستمهای مدیریت اطلاعات راهبردی سازمان است. برخی راههای ایجاد این مزایا عبارتست از :
ارائه یک کالا یا خدمت با هزینه کمتر: منظور از هزینه صرفا قیمت محصول نیست، بلکه کیفیت محصول یا خدمت نیز می تواند یک فاکتور مهم و تأثیرگذار تلقی شود که هر دوی آنها در بازار حائز اهمیت زیادی میباشند. همچنین واژه هزینه در اینجا، کلیه هزینههای جانبی سازمان از طراحی محصول تا عرضه نهایی آن را شامل می شود. سیستمهای کامپیوتری بسیاری وجود دارند که میتوانند باعث صرفهجویی هزینه های درونسازمان شوند، اما آن سیستمها اغلب نمی توانند نقاط استراتژیک را پوشش داده و آنها را به فرصتهای رقابت در بازار بدل کنند.
ایجاد تمایز در محصول یا خدمت: متمایزسازی به معنی افزودن قابلیت جدید، یکتا و دارای جذابیت در بازار است. ایجاد تمایز اغلب منجر به افزایش هزینه محصول می شود، اما از آنجا که در این مورد قیمت در درجه اول اهمیت نمی باشد، بیشتر اوقات میتوان از آن صرفنظر نمود (البته موارد نادری نیز ممکن است پیش آید که ایجاد تمایز موجب کاهش هزینه محصول شود). یک سیستم استراتژیک به مشتریان این حس را القا می کند که از یک مزیت بسیار خاصتر و ممتازتر نسبت به سایر رقبای خود بهره میبرند.
تمرکز بر روی بخش خاصی از سازمان: ایده این روش آن است که سازمان تمام توان و تلاش خود را برای کار در یک عرصه خاص و محدود معطوف نماید. این روش در صنعت کاربرد زیادی دارد.
نوآوری: ارائه خدمات جدید به کمک سیستمهای کامپیوتری که دارای جذابیت برای مشتریان باشد.
تقریبا هر سیستم کامپیوتری که بتواند استراتژی های کامپیوتری را با استراتژی های تجاری سازمان ترکیب در یک راستا به کار گرفته و موجب همافزایی آنها و افزایش بهرهوری سازمان شود را میتوان به عنوان یک سیستم راهبردی درنظر گرفت. بدین منظور بایست ارتباط شفافی میان طرح تجاری سازمان و طرح و نقشهی سیستم مذکور وجود داشته باشد تا سیستم بتواند به خوبی اهداف سازمان را پوشش داده و مدیریت بهتری را بر روی منابع حساس اطلاعاتی سازمان ایجاد نماید]۱۸[.
سیستمهای چندعاملی
تاریخچه محاسبات کامپیوتری را میتوان از یک دیدگاه به پنج مرحله تقسیم نمود: اولین مرحله باعث کاهش چشمگیری در هزینه محاسبات گردید و استفاده از کامپیوترهای قدرتمند جهت انجام عملیات پردازشی را برای همه در دسترس و مقرون به صرفه گردانید (به گونه ای که شاید پیش از آن تصورش هم ممکن نبود). البته این روند همچنان ادامه دارد.
دوره دوم دوره ارتباط کامپیوترها با دنیای خارج بود. کامپیوترهایی که در ابتدا سیستمهایی ایزوله بودند و تنها با اپراتور خود ارتباط داشتند، به لطف اینترنت و شبکه های کامپیوتری اکنون به راحتی با تمام دنیا در ارتباطند. این شبکه ها امکان توزیع محاسبات کامپیوتری را در مقیاس جهانی فراهم کردند. با پیدایش سیستمهای توزیعشده و پردازش موازی گام بزرگی در زمینه انجام محاسبات سنگین و بسیار پیچیده برداشته شد. امروزه مفاهیمی مانند سیستمعاملهای توزیعشده و نسل جدید محاسبات با نام پردازشابری[۱۵]، باب جدیدی را در این حوزه گشودهاند و به طور قطع این سبک از محاسبات در آینده تنها گزینه های پیش روی صنعت و دنیای تجارت است.
سومین دوره مهم در محاسبات کامپیوتری زمانی بود که بحث هوشمندی در سیستمهای کامپیوتری مطرح گردید. هدف ایجاد سیستمهایی بود که از عهده حل مسائل پیچیده که حل آنها پیش از این ممکن نبود، برآیند. در دورهبعدی این هدف به ایجاد سیستمهایی که بتوانند به صورت مستقل و خودمختار و بدون نیاز به نظارت انسان فعالیت و تصمیم گیری کنند، ارتقاء یافت(در واقع هدف این بود که کنترل کامل سیستم کامپیوتری به خودشان واگذار شود). مفاهیم هوش مصنوعی و سیستمهای خبره و چندعاملی در این دوره پدید آمدند.
آخرین و پنجمین دوره شامل گذر آهسته و پیوستهایست که ما را از دیدگاه سنتی ماشین-گرای[۱۶] برنامهنویسی به سمت مفاهیمی که بیشتر و بهتر دنیای واقعی ما را انعکاس می دهند (و به عبارتی به ادراک ما از دنیای وافعی نزدیکتر است)، عبور میدهد. این تلاش شاهد بر این مدعاست که ما با کامپیوترها در ارتباط و تعاملیم و این تعامل همواره دستخوش تغییر و پیشرفت بوده است. به طور مثال در اولین روزهای پیدایش کامپیوتر، ارتباط کاربران با آنها از طریق یک ترمینال ورودی به صورت محدود انجام میگرفت و نیاز به دانش زیادی در زمینه کار با سیستم و دستورات آن داشت. کنسولهای رابط کاربر تا اواخر دهه ۸۰ روش غالب ارتباطی کاربران و کامپیوترها بودند. پس از آن واسطهای گرافیکی پا به عرصه وجود گذاشتند و تعامل با سیستمهای کامپیوتری را تا حد زیادی برای کاربران سادهتر نمودند. این واسطها تا کنون نیز کارایی خود را حفظ کرده اند، با اینحال به نظر میرسد وقت آن است که آنها نیز جای خود را به روشهای سادهتر، کاراتر و واقعیتر بدهند. روشهایی از قبیل صحبت کردن و حس از طریق دیدن!
این روند تکاملی در مورد برنامه نویسان سیستمهای کامپیوتری نیز صادق بوده است. زبانهای برنامهنویسی از زبانهای سطح پایین و نزدیک به زبان ماشین، به زبانهای سطح بالا، شیئ گرا[۱۷] و جنبهگرا[۱۸] تکامل یافتهاند و کار برنامهنویسی را برای توسعهدهندگان نرمافزار بسیار سادهتر از پیش نموده اند.
البته مراحل تکاملی ذکر شده، چالشهای جدی و مهمی را نیز در زمینه توسعه نرمافزار به وجود آوردهاند، مثلا اینکه چگونه و به چه روشی میتوان از قدرت پردازش کامپیوترهای موجود (در مقیاس بزرگ و جهانی) استفاده نمود؟ یا اینکه چگونه کامپیوترهایی با قابلیت عملکرد مستقل و بدون نیاز به دخالت انسان و نیز سیستمهایی که امکان تعامل با انسان را دارا بوده و علاوه بر آن بتوانند واقعیتهای موجود در جهان پیرامون را به سبک موردانتظار و علاقه انسان مدل کنند، ایجاد نمود؟
تلاشهایی که در جهت اتصال و توزیع محاسبات طی سه دهه اخیر انجام شده، منجر به توسعه نرمافزارها و ایجاد سختافزارهایی گردیده است که امکان ایجاد سیستمهای توزیع شده[۱۹] را با سهولت و قابلیت اعتماد بالایی فراهم نموده است. با این وجود وقتی که صبحت از ارائه مفاهیم انتزاعی مورد پسند انسان توسط کامپیوتر می شود، سیستمهای توزیعی با چالشهای جدیدی مواجه میشوند. هنگامی که کامپیوتری بخواهد به این سبک با کامپیوترهای دیگر ارتباط برقرار کند، بایست از نوعی قابلیت همکاری[۲۰] و سازش قوی[۲۱] با سیستمهای دیگر برخوردار باشد (همانگونه که انسانها از چنین قابلیتهایی برخوردارند).
تمامی موارد مطرح شده، نهایتا منجر به ایجاد رشته جدیدی با نام سیستمهای چندعاملی در علوم کامپیوتر گردید. ایده اصلی سیستمهای چندعاملی بسیار ساده است، یک عامل سیستمی کامپیوتری است که می تواند به طور مستقل ازجانب کاربر یا مالک خود عمل نماید. به عبارت دیگر، یک عامل می تواند تمام آنچه را که به منظور تحقق اهداف طراحیش[۲۲] نیاز دارد، خودش به تنهایی انجام دهد و نیازی نیست که مدام تحت کنترل و نظارت بوده و تکتک اعمالی که بایست در آن راستا انجام دهد به وی دیکته شود. یک سیستم چندعاملی سیستمی است که از چندین عامل تشکیل شده که این عاملها از طریق بستر یک شبکه با یکدیگر در حال تعاملند. این تعامل عمدتا از طریق ارتباط پیام صورت میپذیرد. در بیشتر سیستمهای چندعاملی، عاملهای موجود در سیستم اهداف بسیار سخت و دشواری را برعهده دارند و برای آنکه از عهده تحقق این اهداف برآیند، حتما بایست از قابلیت همکاری، هماهنگی[۲۳] و مذاکره[۲۴] قابل قبولی با یکدیگر برخوردار باشند، همانطور که ما در زندگی روزانه خود از این قابلیتها برخورداریم]۲۴[.
به طور کلی دو سؤال مهم در زمینه ایجاد سیستمهای چندعاملی مطرح است:
چگونه عاملهایی مستقل و خودمختار ایجاد کنیم که بتوانند وظایف محوله به آنها را به درستی و به بهترین نحو ممکن با موفقیت به انجام رسانند؟
چگونه عاملهایی بسازیم که در عین استقلال عمل، قابلیت تعامل (همکاری، هماهنگی و مذاکره) با سایر عاملها را در راستای تحقق اهداف طراحیشان داشته باشند؟
سؤال اول مربوط به طراحی خود عاملها[۲۵] و سؤال دوم مربوط به طراحی جامعه عاملها[۲۶] میباشد. البته ایندو مسئله کاملا مجزا و تفکیک شده نیستند، به طور مثال برای ایجاد اجتماعی از عاملها که بتوانند به طرز مؤثری با یکدیگر ارتباط داشته باشند، ممکن است بتوانیم اطلاعاتی از مدل و نحوه عملکرد سایر عاملها در اختیار اعضای اجتماع قرار دهیم که آنها را در جهت تعامل بهتر با دیگر عاملها یاری کند. در ادامه بیشتر در خصوص پاسخ این دو سؤال بحث خواهیم کرد.
تحقیق در زمینه سیستمهای چندعاملی اغلب با دو مفهوم دیگر مرتبط و درگیر است: یکی مفاهیم مهندسی و طراحی سیستم و دیگری هوش مصنوعی. مفهوم سیستمهای چندعاملی درک ما از خودمان را دچار تغییر خواهد ساخت. زیرا هوش مصنوعی بر روی جنبه فردی هوشمندی متمرکز است، حال آنکه آنچه انسان را به عنوان گونه ای متمایز مطرح می کند، قابلیت تعامل و برقراری ارتباط وی با دنیای خارج یا دراصطلاح قابلیت اجتماعی[۲۷] اوست. ما علاوه بر آنکه میتوانیم از طریق زبانهای سطح بالا با همنوعان خود ارتباط برقرار کنیم، امکان همکاری، هماهنگی و مذاکره و سازش با یکدیگر را نیز داریم. این درحالیست که سایر گونه ها (مثلا مورچهها یا دیگر حشرات اجتماعی از بهترین نمونههای شناخته شده هستند)، با وجود داشتن اجتماعات بزرگ و شدیدا متعامل، از لحاظ قابلیت های اجتماعی حتی به گرد انسان نیز نمیرسند. در مبحث سیستمهای چندعاملی به سؤالاتی از این دست پاسخ داده خواهد شد:
همکاری در جوامع متشکل از عاملهای مستقل چگونه پدید می آید؟
عاملها بایست از چه زبانی برای ارتباط با عوامل انسانی یا سایر عاملهای سیستم استفاده کنند؟
عاملها چگونه بایست تشخیص دهند که اهداف، باورها یا عملیات آنها با سایر عوامل تلاقی پیدا کرده است و چگونه بایست بدون ایجاد مشکل در عملکرد خود و سایرین، این تداخلهای احتمالی را رفع رجوع نمایند؟
عاملهای خودمختار چگونه میتوانند با سایر عاملها در جهت نیل به اهداف مشترک هماهنگی پیدا کرده و همکاری نمایند؟
با وجود اینکه این سؤالات همگی در رشته های دیگری مانند علوم اجتماعی و اقتصاد پاسخ داده شده اند، آنچه حوزه سیستمهای چندعاملی را مجزا و متفات میسازد، تأکید بر این موضوع است که منظور از عامل در سؤالات فوق، موجودیتهای محاسباتی و پردازش اطلاعاتی کامپیوتریست[۲۴]و[۴۲].
تعریف عامل
در ادامه قصد داریم به بررسی مفهوم عامل در سیستمهای چندعاملی بپردازیم. متأسفانه هنوز تعریف جامع و یکسانی برای عامل ارائه نشده و بحث و جدل در این باره (برای ارائه یک تعریف یکسان از عامل) همچنان ادامه دارد. یکی از دلایلی که باعث این وضع گردیده، صفات متفاوتی است که عاملها در حوزه ها و مسائل مختلف ممکن است داشته باشند. مثلا ممکن است برای برخی برنامه ها قابلیت یادگیری تجربی در عاملها بسیار موردنیاز و مهم باشد، حال آنکه در برنامه های دیگر این قابلیت نه تنها اهمیتی نداشته، بلکه کاملا غیرضروری و زائد باشد[۲۶].
با وجود همه اینها هنوز مفاهیم کلی و مشترکی برای تعریف یک عامل وجود دارد (بدیهی است که در غیراینصورت ممکن است عاملها تمام معنای خود را از دست بدهند). ولدریج[۲۸] و جنینگز[۲۹] در سال ۱۹۹۵ تعریفی به شرح زیر از عامل ارائه دادند:
“یک عامل سیستمی کامپیوتریست که در محیطی قرار گرفته و قابلیت انجام عملیات مستقل در آن محیط را به منظور نیل به اهداف طراحیش، داراست.”
هر سیستم کامپیوتری (اعم از سختافزاری یا نرمافزاری) برای آنکه عامل محسوب شود بایست ویژگیهای زیر را داشته باشد:
خودمختاری[۳۰] : بایست کنترل نسبی بر عملکرد خود داشته و بتواند بدون دخالت انسان کار کند.
قابلیت تعامل[۳۱] : بایست بتواند با سایر عاملها و یا اپراتور انسانی تعامل داشته باشد.
واکنش پذیری[۳۲] : بایست به تغییرات محیطی که در آن قرار گرفته واکنش نشان دهد.
رفتار هدفمند[۳۳] : بایست بتواند با توجه به اهداف از پیش تعیین شده، رفتار جدیدی از خود بروز دهد.
به طور کلی در یک دستهبندی ساده و بسیار انتزاعی از عاملها میتوان به دو نوع عامل اشاره کرد، یکی عاملهای ساده و کماهمیتتر[۳۴] (مانند ترموستاتها) و دیگری عاملهای هوشمند[۳۵] که در واقع همان برنامه کامپیوتری است که در بعضی محیطها قادر به انجام اعمال خودمختار و انعطافپذیر است.
چیزی که عاملها را از نرمافزارهای سنتی متمایز میسازد جنبه خصوصی، خودمختاری، خلاقیت و سازگاری عاملهاست. این کمیتها عاملها را به طور خاص برای محیطهای غنی از اطلاعات و غنی از فرایندها بسیار کارا میسازد.
عامل هوشمند
پس از توضیحاتی که پیرامون عاملها بیان گردید، به بررسی این موضوع خواهیم پرداخت که یک عامل هوشمند چیست و چه خصوصیاتی دارد؟ مسلما ما ترموستات یا پروسههای پسزمینه لینوکس را به عنوان عامل هوشمند نمیشناسیم. بنابراین سؤال اساسی و اصلی در این زمینه آن است که معنای هوشمندی چیست؟
پاسخ به این سؤال به تنهایی کارآسانی نیست، شاید روش بهتر برای پاسخ به این سؤال بررسی ویژگیهائیست که یک عامل هوشمند بایست داشته باشد. لیستی از این ویژگیها به شرح زیر توسط وولدریج و جنینگز پیشنهاد شده است:
واکنشپذیری: عاملهای هوشمند قادر به درک محیط پیرامون و واکنش به رویدادهای محیط بادرنظر گرفتن فاکتور زمان و در راستای تحقق اهداف طراحیشان میباشند.
رفتار هدفمند: عاملهای هوشمند میتوانند به طور خلاقانه، رفتاری هدفگرا[۳۶] از خود بروز دهند تا اهداف طراحیشان را ارضا کنند.
قابلیت های اجتماعی: عاملهای هوشمند قادرند در راستای دستیابی به اهداف طراحیشان با سایر عاملها تعامل داشته باشند.
شاید این ویژگیها در نگاه اول بسیار سخت و دستنیافتنی به نظر برسد. به طور مثال رفتار هدفمند را درنظر بگیرید. ساختن سیستمی که رفتاری هدفگرا از خود نشان دهد کار چندان سختی نیست، مثلا نوشتن یک رویه در پاسکال، یک تابع در زبان سی یا یک متد در جاوا. وقتی چنین رویهای را ایجاد میکنیم در واقع فرضیات مسئله (یا همان پیششرطها) و نتایج صحیح حاصله (یا همان پسشرطها) را مشخص میکنیم که در واقع همان هدف مسئله میباشند (هدف طراح نرمافزار از ایجاد رویه موردنظر). چنانچه به رعایت پیششرطها رویه فراخوانی شود، انتظار داریم که رویه به درستی اجرا شده و نتیجه صحیح بدست آید (یعنی رویه به پایان برسد و به محض پایان، پسشرطها برقرار باشند) و در اینصورت میتوانیم ادعا کنیم که هدف رویه محقق شده است. در اینجا رفتار هدفگرا به سادگی عبارتست از اینکه رویه طراح یا دستورالعملی را جهت رسیدن به هدف خود دنبال می کند. این مدل برنامه نویسی در بسیاری از محیطها (مانند محیطهای وظیفه ای که پیشتر شرح داده شد) به درستی عمل مینماید[۴۴].
ولی در مورد سیستمهای غیروظیفهای، چنین مدل سادهای از برنامهنویسی هدفگرا به هیچ وجه قابل قبول نیست، بدین دلیل که محدویتهای بسیاری در فرضیات مسئله اعمال می کند. مهمترین محدودیت آنکه فرض شده است که محیط در حین اجرای رویه بدون تغییر باقی میماند، حال اگر در حین اجرا تغییری در شرایط محیط روی دهد، رفتار آن غیرقابل پیش بینی خواهد بود (معمولا منجر به شکست در اجرای آن رویه خواهد شد). همچنین محدودیت دیگر در مثال قبلی آن است که فرض شده هدف اجرای رویه تا پایان اجرای آن معتبر و صحیح خواهد بود، اما در صورتی که هدف در حین اجرا اعتبار خود را از دست بدهد، دیگر نیازی به ادامه اجرای رویه نخواهد بود[۲۸].
در بیشتر محیطهای واقعی هیچیک از این فرضیات معتبر نمی باشد. به عبارتی مسئله به قدری پیچیده است که توسط یک عامل منفرد قابل مشاهده کامل و حل نمی باشد و لذا یک سیستم چندعاملی برای حل مسئله نیاز خواهد بود. یا اینکه ممکن است عدم قطعیت در محیط وجود داشته باشد. در چنین محیطهایی اجرای کورکورانه یک رویه بدون توجه به اینکه فرضیات اساسی رویه در هر لحظه اعتبار دارند یا خیر، یک استراتژی بسیار ضعیف خواهد بود. همانطور که پیشتر بیان شد، در چنین محیطهایی عامل بایست واکنشی باشد و بتواند نسبت به رویدادهایی که در محیط اتفاق میافتد و اهداف عامل یا فرضیات درنظر گرفته شده توسط آن را تحتالشعاع قرار میدهد، واکنش مناسب و بهینه از خود نشان دهد که البته همانطور که گفته شد این واکنشها بایست در جهت نیل به اهداف طراحی عامل باشد.
همانطور که دیدیم، ایجاد یک سیستم هدفگرای محض[۳۷] کار چندان سختی نیست، همچنین ایجاد سیستمهای واکنشی محض[۳۸] (که به صورت مداوم به رویدادهای محیط پاسخ میدهد) نیز به تنهایی خیلی دشوار نیست. اما ایجاد سیستمی که بتواند بین رفتار هدفگرا و واکنشی یک تعادل کارا ایجاد نماید، کار بسیار سختی خواهد بود. ما از عاملها انتظار داریم که برای نیل به اهداف طراحیشان رویههایی را که بعضا ممکن است بسیار پیچیده نیز باشند، اجرا نمایند، اما در عین حال انتظار نداریم عاملها به صورت کورکورانه و بدون توجه به ممکن است اجرای رویه مؤثر نبوده یا هدف آنها به هر دلیل دیگر معتبر نباشد، اقدام به اجرای این رویه ها و یا مداومت در اجرای رویه ها (به جای پایان دادن به اجرای آنها) کنند. بلکه در چنین شرایطی عامل بایست بتواند در زمان قابل قبول نسبت به شرایط جدید واکنش نشان داده و در واقع خود را با شرایط تطبیق دهد. البته این واکنشها نبایست به صورت مکرر و به گونه ای باشد که عامل نتواند بر روی یک هدف خاص به قدر کافی متمرکز شده و به نتیجه دلخواه دست یابد[۲۶].
نتیجه آنکه دست یافتن به یک تعادل مناسب میان رفتار هدفگرا و واکنشی کار چندان آسانی نیست. حتی اگر بخواهیم در بین انسانها به دنبال فردی بگردیم که میان این دو نوع رفتار در خود تعادلی ایجاد کرده باشد، به ندرت بتوانیم چنین کسی را بیابیم. این مشکل (برقراری تعادل میان رفتار هدفگرا و واکنشی) یکی از معضلات اصلی طراحان عاملها محسوب می شود. راهکارهای بسیاری بدین منظور ارائه شده، اما به هر حال این مسئله هنوز هم جزو یکی از موارد مورد بحث است که کار بر روی آن همچنان ادامه دارد[۴۶].
اما قابلیت اجتماعی جزء نهایی مؤثر در عملکرد خودمختار عاملهاست که در اینجا به بررسی آن میپردازیم. در نگاه اول این قابلیت بدیهی و عادی به نظر میرسد: روزانه میلیونها کامپیوتر در سراسر جهان حجم عظیمی از داده ها و اطلاعات را میان کامپیوترهای دیگر و انسانها مبادله می کنند. ولی موضوع آن است که مبادله جریانهای دادهای در واقع قابلیت اجتماعی محسوب نمی شود. به طور مشابه که در دنیای انسانها تعداد معدودی از اهداف میتوانند به تنهایی و بدون همکاری سایر انسانها محقق شوند، و این بدان معنا نیست که ما هدفهای خود را به اشتراک بگذاریم. به بیان دیگر، هر فردی خودمختار و مستقل است و هدفهای خود را دنبال می کند، اما برای تحقق این اهداف نیازمند همکاری و مذاکره با سایر افراد میباشد. در چنین شرایطی ممکن است نیاز باشد هر فرد در مورد اهداف سایرین اطلاعاتی کسب کرده و دلایل و انگیزه آنها را بفهمد و اعمالی را انجام دهد (مثلا پرداخت پول) تا سایرین را وادار به همکاری نماید. این نوع از همکاری نسبت به جابجایی سادهی اطلاعات باینری توسط کامپیوترها بسیار پیچیده بوده و کمتر درک شده است[۲۶].