در فرهنگ لغات  Agent چنین معنی می شود :"فاعل ، نماینده ، گماشته ، وکیل ، مامور ، عامل ، مباشر، واسطه ، پیشکار ، امین و کارگزار ". بدین ترتیب به عنوان یک تعریف پایه می توان Agent   را کسی دانست که به جای شخص یا چیز دیگری عمل می کند.
یک عامل دارای خصوصیات مختلفی است ؛ داشتن برخی از این خصوصیات برای یک عامل اجباری و بقیه اختیاری است. از جمله خصوصیات اجباری می توان به خواص autonomous (خودمختار بودن) ، interactive (دارای عمل متقابل بودن) و reactive (واکنش دار بودن )اشاره كرد.ازجمله خصوصیات اختیاری میتوان به خواص mobility (متحرک بودن ) ، ntelligence (هوش )وtrustworthiness (قابلیت اعتماد)اشاره کرد.این خصوصیات  عبارتند از :
-خودمختار بودن (Autonomous) : بتواند بدون دخالت یک محرک خارجی کارکند و تاحدی با استفاده از تجربه های شخصی بر حالات درونی و رفتارهای خود کنترل داشته باشد.
- دارای عمل متقابل بودن (Interactive) : با محیط و سایر عامل ها رابطه داشته باشد.
- سازگاری (Adaptive) : قابلیت پاسخگویی به محیط یا سایر عامل ها در درجات مختلف (بیشترین سازگاری زمانی است که عامل اجازه داشته باشد رفتار خود را بر اساس تجربیاتش تغییر دهد).
- اجتماعی بودن (Sociable) : با سایر عامل های دوست یا همکار تعامل خوب، دوستانه و اجتماعی داشته باشد.
- متحرک بودن (Mobile) : بتواند از یک محیط به یک محیط دیگر برود.
- وکالت (Proxy) : بتواند به عنوان وکیل شخص یا چیز دیگر عمل کند. بدین شکل که مطابق میل آن رفتار کند. یا مسئولیت های آن را قبول کند و یا برای بدست آوردن منافع او تلاش کند.
-کنشگرا(Proactive): هدفمند وبا قصدمشخص،به عبارت دیگرصرفا درمقابل محیط واکنش های ساده نمی کند.
- هوشمند(Intelligent) :حالتها با دانشهایی شکل رسمی گرفته (مانند اعتقادات ، اهداف ، برنامه ها و فرضیات) و عامل با سایر عاملها با یک زبان سمبولیک تعامل می کند.
-منطقی (Rational) : قابلیت عام را داشته باشد که کاری را بر اساس اهداف داخلی خود انجام دهد که وی را به این اهداف نزدیک سازد.
-غیرقابل پیش بینی (Unpredictable) : بتواند به نوعی رفتار کند که کاملا قابل پیش بینی نباشد حتی اگر شرایط آغازین کار کاملا شناخته شده باشد. به عبارت دیگر بتواند به طور غیرقطعی رفتار کند.
-پیوسته زمانی (Temporally Continuous) : فرآیند اجرای پیوسته ای داشته باشد.
-شخصیت (Character) : شخصیت و احساس قابل باوری داشته باشد.
-شفاف و قابل حساب (Transparent and Accountable) : به اندازه کافی شفاف باشد و درموقع نیازگزارش فعالیت های خود را ثبت کند .
- هماهنگ (Coordinative) : بتواند فعالیتهایی را با سایر عاملها دریک محیط مشترک انجام دهد.این فعالیت ها اغلب در قالب یک برنامه، جریان کار و یا یک مکانیسم دیگر مدیریت پردازش ها هماهنگ شده اند.
- همکاری(Cooperative) :بتواندباسایرعاملها برای رسیدن به یک هدف مشخص هماهنگ عمل کند بطوری که شکست یاموفقیت عامل به این رابطه وابسته باشد.(مفهموم Collaboration نیزمفهومی نزدیک به این رابطه دارد.)
-رقابت (Competitive) : با سایر عاملهای دیگر چنان هماهنگ باشد که موفقیت یک عامل سبب شکست دیگری باشد . (مخالف همکاری)
-نیرومند (Rugged) : بتواند با خطاها و یا اطلاعات ناقص رفتار محکم و درستی داشته باشد.
-تقابل اعتماد (Trustworthy) : به قوانین موجود وفادار بوده، راستگو باشد.
در منابع مختلف بسته به دیدگاه نویسنده تعاریف مختلفی برای عامل ارائه شده است در زیر به برخی از این تعاریف اشاره می کنم:
عامل Mubot : "لغت عامل برای نشان دادن دو مفهوم متعامد به کار می رود. اولین مفهوم قابلیت اجرای خودکار عامل می باشد و دومین مفهوم قابلیت انجام دادن تصمیم گیری های مبتی بر دامنه است ."
عامل AIMA : "یک عامل چیزی است که می تواند محیط را از طریق حسگر هایش درک کند و با کمک عملگرهایش بر روی محیط تاثیر بگذارد."
عامل Maes : "عامل خودکار یک سیستم محاسباتی است که در یک محیط پیچیده پویا ساکن است. در این محیط به صورت خودکار حس می کند و بر اساس آن عمل می کند و بدین ترتیب اهدافی که بر اساس آن طراحی شده است را محقق می سازد."
عامل KidSim : "عامل بدین صورت تعریف می شود : یک موجودیت نرم افزار پایدار که برای یک هدف خاص در نظر گرفته شده است. پایداری عامل را از زیربرنامه ها متمایز می سازد؛ عاملها نظرات خاص خود را در مورد انجام یک عمل دارند . هدف خاص آنها را از سایر برنامه های چند کاره جدا می سازد؛ عاملها بسیار کوچک ترند. "
عامل Hayes-Roth : "عاملهای هوشمند به طور پیوسته سه عمل را انجام می دهند: استنباط شرایط پویا در محیط ، استدلال برای تفسیر این استنباط ها، حل مساله، ترسیم نتیجه گیری ها و تعیین اعمال ."
عامل IBM : "عاملهای هوشمند موجودیت های نرم افزاری هستند که یک سری عملیات را به عنوان نماینده یک کاربر یا یک برنامه دیگر و با درجه خاصی از استقلال یا خودمختاری برعهده دارند و برای انجام چنین کاری بخشی از دانش و یا نمایش اهداف و امیال کاربر را به کار می گیرند."
عامل Wooldridge : " سیستم کامپیوتری مبتنی بر سخت افزار و یا به طور معمول تر نرم افزاری که مشخصات زیر را داشته باشد :
• خودمختاری : عامل بدون دخالت مستقیم انسان و یا دیگران عمل می کند و تا حدودی بر عملکرد و حالات درونی خود کنترل دارد.
•قابلیت اجتماعی : عاملها با سایرعاملها (وحتی انسانها) بوسیله انواع زبانهای ارتباطی عاملها در تعامل می باشند.
•واکنش پذیری : عامل محیط خود را درک می کند (ممکن است یک کلمه باشد ، یک کاربر از طریق یک واسط کاربری باشد، مجموعه ای از عاملهای دیگر باشد ویا ترکیبی از همه اینها ) و به موقع در مقابل تغییرات اعمال شده در آن واکنش نشان می دهد.
•Pro-activeness: عاملها تنها به واسطه پاسخ به محیط عمل نمی کنند بلکه خود می توانند به واسطه اهداف خود آغاز گر یک عمل باشند. "
عامل SodaBot :"عامل های نرم افزاری ،برنامه هایی هستند که دریک گفتگو شرکت می کنند، مذاکره می کنند و تبادل اطلاعات را هماهنگ می کنند. "
عامل Brustoloni : "عاملهای خودمختار سیستمهایی هستند که می توانند در دنیای واقعی خودمختار و هدفمند عمل کند. "
عامل Jennings : "یك عامل یك سیستم كامپیوتری كپسوله است كه در یك محیط قرار دارد و قادر به انجام عملیات خودكار و قابل انعطاف در این محیط برای رسیدن به اهداف طراحی آن می باشد."
تعریف اخیر تعریفی است که در عین سادگی به نظر می رسد نمایانگر مشخصات اصلی یک عامل است.
با طرح تعاریفی درموردعاملها(Agents)می خواهیم نگاهی به سیستمهای چند عامله،Multi Agent System،  داشته باشیم.بسیاری ازسیستم های تجاری اولیه عامل رابرای هدف جستجومورداستفاده قراردادند.دراین سیستم ها عاملهای منفرد به مراکزمعینی متصل می شدند،اطلاعات لازم راجمع آوری میکردندودرنهایت به نزدکاربردرخواست کننده برمی گشتند.به عبارت دیگرعاملها یک کار انفرادی داشتندودرمقیاس بسیار کمی (اگر بود) با عاملهای دیگرتعامل داشتند.این روش باوجودیکه کاربردهای زیاد خاص خود را داردنمی تواند به تنهایی یک اجتماع یا یک سازمان ایجادکندکه بتواند نیازهای دیگرکاربران رابرآورده سازد.درعوض درمحیط های انسانی ما یک شبکه از افرادرا داریم که برای منظورهای مختلف بایکدیگردرتعامل می باشند.بدین ترتیب برای ایجاد یک جامعه از عاملها نه تنها نیازاست که بین آنها ارتباط برقرارکردبلکه عاملها باید بتوانند با یکدیگرهماهنگ هم باشند.این هماهنگی می تواند جنبه های مختلف همکاری و یا رقابتی داشته باشد.این جوامع، سیستمهای چند عامله (MAS) نامیده می شوند.
به عبارت دیگر "یک سیستم چند عامله یک  پیاده سازی با تاکید بر همکاری از برنامه ها (عاملها) است که با یکدیگر هماهنگ شده اند برای رسیدن به همگرایی روی  پاسخ یک یا چند وظیفه".
سیستم های چندعامله،سیستم هایی هستندکه ازجمع شدن عاملهای هماهنگ شده با هم و روابط بین آنها تشکیل شده اند.دراین سیستم هرکس وظیفه خود را می داندومیجداندکه چه زمانی بادیگری بایدارتباط برقرار کند.
سیستم های چندعاملی (MAS)  روش نوینی برای حل مسائل و پیاده‌سازی پروژه‌های نرم‌افزاری رایانه‌ای است.
با اینكه زمان زیادی ازپیدایش این گونه سیستم‌ها نمی‌گذرد ولی استفاده از روش‌های طراحی بر اساس عامل یكی از موفق‌ترین راه‌حل‌های موجود بوده و حاصل این شیوه طراحی یعنی سیستم‌ حل مسائل به صورت توزیع‌شده از بهترین سیستم‌ها به شمار می‌آید و به عنوان ابزار جدیدی برای حل انواع فرآیندهای انسانی شناخته می‌شود. این نوع سیستم‌ها نسبت به سیستم‌های معمولی و تك‌عاملی، مزایای زیادی دارند؛ از جمله اینكه در اكثر شرایط كار می‌كنند. به این معنا كه چون مغز متفكر واحد ندارند و تصمیم‌گیری در آنها به صورت توزیع‌شده است، چنانچه حتی بخشی از آنها نیز از كار بیفتد باز هم به كار خود ادامه می‌دهند.
 همچنین این نوع سیستم‌ها برای محیط‌هایی با مقیاس وسیع(Large Scale)  و محیط‌های ناشناخته نیز گزینه مناسبی نسبت به سیستم‌های تك‌عاملی به شمار می‌آیند.
سیستم‌های مبتنی بر عامل، پردازش موازی را آسان كرده و به راحتی موازی می‌شوند. منظور از پردازش موازی این است كه به جای انجام یك پروژه با محاسبات زیاد و پردازش‌های سنگین توسط یك پردازشگر، همان پروژه را به پردازش‌‌های كوچكتر با حجم محاسبات كمتر شكسته و آن را توسط چندین عامل انجام دهیم. مثلاً میزی را تصوركنید كه برای بلند كردنش به 100 نیوتن نیرو احتیاج داریم،حال هم می‌توانیم آن را توسط یك نفر كه توانایی اعمال 100 نیوتن نیرو را دارد، بلندكنیم و هم این كار را به كمك چهارنفركه هركدام25 نیوتن نیرو به اشتراك می‌گذارند، انجام دهیم.درنتیجه،هزینه‌ها درچنین سیستمی پایین می‌آیدونیازی به صرف هزینه كلان جهت ایجادامكان پردازش سنگین برای یك عامل نیست. در این صورت، چندین عامل با قدرت پردازشی كمتر همان كار را حتی سریع‌تر انجام می‌دهند.البته این نوع سیستم‌ها به نوبه خودمعایبی نیزدارندكه استفاده از آنها را محدود می‌كند.مهمترین عیب این سیستم‌ها،كندی اندك دركارطراحی آنها و موازی‌سازی است كه به نتیجه رساندن پروژه را به تعویق می‌اندازد.
برخی دلایل منطقی وجودی سیستم های چند عامله عبارتند از:
- یک عامل می تواند همه چیز را بسازد اما عاملهای چاق (!) باعث بروز نارسایی هایی در سرعت،قابلیت اطمینان ، قابلیت نگهداری و نظایر آن می شوند.(به عبارت دیگر عامل همه کاره وجود ندارد.) تقسیم کارکرد ها بین عاملهای مختلف مزایای واحدبندی شدن ،قابلیت انعطاف، قابلیت تغییرپذیری وقابلیت توسعه را فراهم می سازد.
- دانش های تخصصی اغلب ازیک عامل بدست نمی آیند(به عبارت دیگر عامل عالم مطلق وجود ندارد )دانشی که در بین منابع (عاملهای) مختلف گسترده شده است می تواند درهنگام نیاز دریک دیدگاه بسیارکاملتر جمع گردد.
- کاربردهایی که به محاسبات توزیع شده نیاز دارند بهترتوسط MAS حمایت می شوند.در اینجا عاملها می توانند به صورت مولفه های خودمختار ریز شده ای طراحی شوند که به صورت موازی عمل می کنند. پردازش همزمان و حل مساله می تواند برای بسیاری از مسائل که تاکنون به صورت خطی حل می شدند راه حل های مناسب تری ارائه کند. بدین ترتیب فن آوری عاملها نهایی ترین حد را در فن آوری مولفه های توزیع شده فراهم می سازد.
- MAS برای کاربردهایی که ذات توزیع شده و غیرهمگن دارند مانند تجارت الکترونیک و نظایر آن مناسب ترین گزینه است. در این گونه محیط ها , عاملها می توانند مستقل از یکدیگر و توسط توسعه دهندگان مختلف طراحی و تولید شوند و با وضع قوانین تعامل با یکدیگر هماهنگ گردند واهداف طراحی را برآورده سازند.
عامل‌ها و سیستم‌های خبره  (Expert Systems)
سئوالی كه مطرح می‌شود این است كه آیا عامل‌ها همان سیستم خبره هستند ولی با نامی متفاوت؟ ابتدا ببینیم سیستم خبره چیست؟ سیستم خبره، یك برنامه كامپیوتری است كه عملیات مربوط به تصمیم‌گیری و استدلال و اظهار نظر در رابطه با یك موضوع را با تركیبی از اطلاعات، تعقل و دانش و همچنین با در دست داشتن دانش و تجربه یك متخصص انجام می‌دهد و بر این اساس، وظیفه حل مشكلات یا ارائه مشاوره را بر عهده دارد.
 سیستم‌های خبره به طور معمول بدون بدنه و ساختاری بیرونی هستند كه در یك زمینه خاصی متخصص و یا به اصطلاح خبره می‌شوند. برای مثال سیستم MYCIN نمونه‌ای از یك سیستم خبره است كه مطالب زیادی درباره بیماری‌های خونی انسان‌ها می‌داند. در این سیستم، اطلاعات بسیار وسیعی در مورد بیماری‌ها و امراض خونی به فرم یك سری قاعده و دستورات ذخیره شده كه می‌تواند با گرفتن مشخصات بیمار و شرایط موجود، نوع بیماری را تشخیص دهد. یك پزشك به راحتی می‌تواند با دادن واقعیت‌های موجود به سیستم، توصیه‌های تخصصی و در اكثر مواقع قابل‌اعتمادی را از این ماشین دریافت كند.
 تفاوت اصلی سیستم‌های خبره با سیستم‌های چندعاملی را می‌توان در دو مورد زیر بیان كرد:
1- عامل‌ها در محیطی قرار می‌گیرند كه می‌توانند روی آن تاثیرگذار باشند و از آن تاثیر بپذیرند؛ در حالی كه عملكرد سیستم‌های خبره مانند MYCIN  كاملاً مستقل از محیط بوده و از دنیای اطراف آگاه نیست و اطلاعات به دست آمده از سیستم خبره مبتنی بر پایگاه دانش‌اش و سئوالاتی است كه از كاربر می‌پرسد.
2- عامل به عنوان نماینده‌ای از طرف كاربر، عملی را انجام می‌دهد ولی سیستم خبره مانند MYCIN  هیچ عملی در محیط یا روی بیمار انجام نمی‌دهد.
یك سیستم خبره به جای انجام عملیات ریاضی و استدلال، بر پایه دانش انسانی تعقل می‌كند. در این روش، دانش در لفاف یك زبان مخصوص، درون برنامه نگهداری می‌شود كه به عنوان پایگاه دانش سیستم خبره شناخته می‌شود. پس به زبانی ساده، یك سیستم خبره را می‌توان به صورت زیر تعریف كرد:
سیستم خبره  یك برنامه كامپیوتری است كه  با استفاده  ازپایگاه  دانش  و  موتور استنتاج  یا  نتیجه‌گیری خود،دانش و تجربه لازم درموردیك موضوع مشخص را دركناردریافت اطلاعات درموردمسئله یاموقعیت كنونی(كه مربوط به دانش خودش است)به كارمی‌گیردوتصمیم‌گیری یا نتیجه‌گیری درستی را كه از یك انسان خبره انتظار می‌رود، انجام می‌دهد.در حالی كه عامل یك سیستم كامپیوتری است كه قادر به انجام اعمال مستقل و اتوماتیك ازطرف كاربر یا صاحب خود است.
پس با مقایسه تعاریف و نحوه عمل و طراحی هر كدام متوجه می‌شویم كه این دو سیستم متفاوت‌اند و نباید آنها را درهم آمیخت.
عامل‌های هوشمند و هوش مصنوعی (AI)
سؤالی كه در مورد سیستم‌های چندعاملی و هوش مصنوعی به ذهن می‌آید این است كه آیا طراحی سیستم‌های چندعاملی همان پروژه‌های مطرح در هوش مصنوعی است؟ آیا ساختن یك عامل تماماً همان موضوعات مورد بحث در هوش مصنوعی نیست؟
در جواب باید گفت، هدف هوش مصنوعی، ساختن سیستم‌های هوشمندی است كه بتوانند به خوبی زبان طبیعی را بفهمند، احساس را درك كنند و قادر به استفاده از حواس پنج‌گانه انسانی بوده، دارای فكر خلاق باشند و ... كه كار بسیار مشكلی است. پس آیا ساخت یك عامل توسط الگوریتم‌های هوش مصنوعی كه بتواند همه این كارها را انجام دهد، نیازمند حل همه این الگوریتم‌ها نیست؟ مسلماً جواب مثبت است.
ولی ما درهنگام ساخت یك عامل،به طورساده سیستمی می‌خواهیم كه بتوانددریك محیط محدودعمل مناسب و درست را انتخاب كرده و انجام دهد.بنابراین برای ساخت یك عامل ما ملزم به حل همه مسائل موجود در هوش مصنوعی نیستیم.
همانطور كه گفته شد با وجود عمر كم سیستم‌های مبتنی بر چندعامل، به دلیل قابلیت بالا در موازی‌سازی، روش طراحی براساس عامل و حل مسائل به صورت توزیع‌شده جزء موفق‌ترین روش‌های حل مسئله است و این سیستم‌ها ابزار بسیار بدیعی برای شبیه‌سازی كامپیوتری فراهم آورده‌اند كه می‌تواند نور امیدی برای روشن شدن انواع مسائل مربوط به انسان و زندگی او باشد.
عامل
عامل هر چیزی است که قادر به درک محیط پیرامون خود از طریق حس گر ها (sensor) و اثر گذاری بر روی محیط از طریق اثر کننده ها (effectors) باشد. عامل انسانی اندام هایی مانند گوش ها ، چشم ها و دیگر ارگان ها برای حس کردن و دست ها،پاها، بینی و دیگر اندام ها برای اثر گذاری دارد. عامل رباتیک دوربین ها و یابنده های مادون قرمز را به جای حس گر ها و انواع موتور ها را به جای اثر کننده ها جایگزین کرده است. عامل نرم افزاری رشته های بیتی را به عنوان درک محیط و عمل ، کدگذاری می کند.

عامل ها چگونه باید عمل کنند؟
عامل منطقی چیزی است که کار درست انجام می دهد . آشکارا ، این بهتر از آن است که کار نادرست انجام گیرد. اما این چه معنی می دهد؟ به عنوان اولین تخمین می گوییم عمل درست آن است که باعث موفق ترین شدن عامل گردد. اما این بیان مسئله ، تصمیم گیری درباره چگونگی و زمان محاسبه موفقیت عامل را نادیده می گیرد.
نمی توان عاملی را برای چیزی که قابل درک نیست یا به علت عدم انجام عمل غیر قابل انجامی سرزنش نمود. تنها یک معیارثابت برای تمامی عامل ها وجود ندارد. برای مثال اگر عاملی بخواهد زمینی را تمیز کند معیار هایی چون میزان تمیزی دریک بازه زمانی معین، مصرف برق و سروصدای تولید شده درهمان بازه زمانی،تمیزکردن زمین درزمانی کوتاه وجود دارند.
دانش کل و منطق
عامل دانای کل معنی خروجی واقعی اعمال خود را دانسته و بر پایه آن عمل می کند، اما دانش کل در واقعیت غیر ممکن است. برای مثال : فردی می خواسته از خیابان رد شود . ترافیکی هم نبوده که به او آسیبی برسد. پس منطقی است که از خیابان رد شود. ولی هنگامی که داشته از خیابان رد می شده ، هواپیمایی در همان جا سقوط می کند و او کشته می شود. آیا می توان گفت که او برای رد شدن از خیابان عملی غیر منطقی انجام داده؟ خیر، چون رد شدن از خیابان اکثرا موفقیت آمیز است و منطقی بودن بر امید موفقیت که درک می شود متمرکز است.
به طور خلاصه آنچه در هر در هر زمانی منطقی است به چهار چیز وابسته است:
معیار کارایی که درجه موفقیت را تعیین می کند.
هر چیزی که تا کنون عامل ادراک نموده است. ما این تاریخچه کامل ادراکی را دنباله ادراکی می نامیم.
آنچه که عامل درباره محیط خود می داند.
اعمالی که عامل می تواند صورت دهد.
از آنجا که  دریافتیم  رفتارعامل وابسته  به  دنباله  ادراکی  تاحال است می توان هرعامل خاصی را بوسیله ساخت جدولی از عمل آن درپاسخ به هردنباله ادراکی توصیف كرد چنین لیستی نگاشت(mapping)دنباله های ادراکی نامیده میشود.
این عوامل راهنمای تعریف یک عامل منطقی ایده آل هستند :«برای هردنباله ادراکی ممکن،عامل منطقی ایده آل بایدهرکاری را که انتظار می رود باعث حداکثر سازی معیار کارایی می شود،انجام دهد و این عمل بر پایه شواهدی که ازطریق دنباله ادراکی آماده شده وهر آنچه که دانش درونی عامل است ، انجام می گردد.» ابتدا به نظر می رسد که یک عامل منطقی ایده آل می تواند دربعضی موارد نیمه هوشمند،زیاده روی کند. مثال: عاملی برای رد شدن از یک خیابان شلوغ،به خیابان نگاه نمی کند.آنگاه دنباله ادراکی او به او نمی گوید که کامیونی با سرعت زیاد در حال نزدیک شدن است.طبق تعریف،همه چیز برای ردشدن ازخیابان درست است.ولی این تفسیر ازدونظراشتباه است.
1.   منطقی نیست که بدون نگاه کردن از خیابان رد شویم.
2.   عامل منطقی واقعی باید نگاه کردن به خیابان برای رد شدن از آن را انتخاب کند. زیرا نگاه کردن به حداکثر سازی کارایی مورد انتظار کمک می کند.
خودمختاری (Autonomy)
مورد دیگری که درتعریف عامل منطقی ایده آل بایدلحاظ شود،بخش دانش درونی است.اگر اعمال عامل ها کاملا بر پایه دانش درونی باشد، چنان چه هیچ توجهی به ادراک خود نکنند ، می گوییم که عامل فاقد خود مختاری است. مثال : اگر سازنده ساعتی پیش بینی کند که صاحب ساعت در چه تاریخی از کالیفرنیا به استرالیا سفر می کند و مکانیزمی درساعت تعبیه کند که درآن تاریخ 6 ساعت جا به جا شود،این رفتار به طورعمومی موفقیت آمیز است. اماهوشمندیجمتعلق به ساعت ساز است.عاملی که برمفروضات درونی خودجعمل میکندجتنها زمانی میتواند موفق باشد که مفروضات درونی او برقرارباشندواین یعنی فقدان انعطاف پذیری.مثال: اگرچنین عاملی را که آن راA می نامیم برای کارلوله گذاری تعیین کنندوA شامل سه قسمت حفاری، لوله گذاری وخاکریزی باشد.هنگامی که قسمت لوله گذاری ازکاربیافتد،عاملAبه کارخود ادامه میدهد.درنتیجه کاری انجام نمی شود.عامل هوشمند واقعا خودمختارباید قادر به عمل موفقیت آمیز در دامنه وسیعی از محیط ها باشد و البته باید زمان کافی برای تطبیق نیز به آن داده شود.
اگراعمال  عاملها برپایه دانش درونی باشد,چنانچه توجهی به ادراک خودنکنند,گوییم  عامل فاقدجخودمختاری است.
وظیفه هوش مصنوعی طراحی برنامه عامل است,تابعی که نگاشت عامل از ادراک به عملیات را پیاده سازی می کند.
ساختار عاملهای هوشمند
تاكنون درباره عامل ها از طریق توصیف رفتارشان بحث شد، عملی كه بعد از هر دنباله ادراكی داده شده انجام می گیرد.حال  زمان آن رسیده كه به اصل مطلب بپردازیم و درباره چگونگی كاركرد داخلی آن گفتگو كنیم. وظیفه هوش مصنوعی طراحی برنامه عامل است، تابعی كه نگاشت عامل از ادراك به عملیات را پیاده سازی می كند. فرض می كنیم این برنامه بر روی نوعی ابزار محاسبه گر اجرا می گردد كه آن را معماری می نامیم.
بدیهی است، برنامه ای كه انتخاب می كنیم باید آن برنامه ای باشد كه توسط معماری قابل پذیرش واجرا باشد.
معماری ممكن است یك كامپیوتر یا سخت افزارها ی خاص برای مقاصد معین باشد، به عنوان مثال دوربین های پردازش تصویر یا ورودی فیلتر شده صدا. همچنین ممكن است شامل نرم افزاری گردد كه درجه ای از پوشش بین كامپیوتر به عنوان سخت افزار صرف و برنامه عامل را ایجاد نماید وبنابراین برنامه نویسی در سطح بالا تری صورت می گیرد. عموماً، معماری ادراك از طریق حس گر ها را برای برنامه آماده ساخته، برنامه را اجرا نموده و اعمال انتخابی برنامه را به عمل كننده های سیستم منتقل خواهد كرد. ارتباط ما بین عامل ها، معماری هاوبرنامه ها را می توان  به صورت ذیل جمع بندی نمود:
برنامه + معماری = عامل
قبل از آنكه به طراحی عامل بپردازیم، ابتدا باید تصویر خوبی از ادراكات وعملیات ممكن، اهداف یا معیار كارآیی عامل كه می خواهد به آن برسد و نوع محیطی كه در آن فعالیت می كند،را داشته باشیم.این مباحث عناوین گسترده ای را شامل می گردد.شكل زیر عناصر پایه برای انتخاب انواع عامل را نشان می دهد.
 
محیط   اهداف   عملیات   ادراكات   نوع عامل     
بیمار، بیمارستان   بیمارسالم، حداقل هزینه   سؤالات،
آزمونها،
رفتارها   علائم،
یافته ها، پاسخهای بیمار   سیستم تشخیص پزشكی     
تصاویر  ماهواره ای   طبقه بندی
صحیح   چاپ یك صحنه طبقه بندی شده   پیكسل های با شدت متفاوت،
رنگ   سیستم تحلیل تصویرماهواره ای     
تسمه حمل كننده اجزاء   قرار دادن اجزاء در دسته
صحیح   برداشتن اجزاء
و مرتب سازی آنها به صورت دسته ای   پیكسلها با شدت
متفاوت   روبات جابه جا كننده اشیاء     
پالایشگاه   افزایش خلوص،
محصول،ایمنی   بازو بسته كردن
سوپاپها،
تعدیل دما   دما، فشارسنجها   كنترل كننده
پالایشگاه     
مجموعه     دانش آموزان   افزایش نمرات
دانش آموزان در آزمونها   تمرینهای
چاپ شده،پیشنهادات،
اصلاحات   كلمات تایپ شده   آموزش دهنده زبان انگلیسی
با ارتباط متقابل   


شاید برای برخی از خوانندگان تعجب آور باشد كه ما درلیست انواع عامل ها برخی برنامه ها را ذكر كرده ایم كه در محیط كاملاً مصنوعی كه به وسیله ورودی صفحه كلید و خروجی كاراكتربر روی صفحه نمایش تعریف می شود، مطرح می گردند مطمئناًبرخی خواهند گفت، «آیا این یك محیط واقعی است؟» در حقیقت مسئله مهم تمایز محیط های« واقعی » و «مصنوعی » نیست، بلكه مسئله اصلی پیچیدگی ما بین ارتباط رفتار عامل، دنباله ادراكی تولید شده بوسیله محیط، و اهدافی است كه عامل قصد حصول آن را دارد،می باشند. برخی محیط های « واقعی » در عمل بسیار ساده هستند.برای مثال،روباتی كه برای بازرسی قطعاتی كه بر روی تسمه نقاله می آیند، طراحی شده می تواند فرضیات ساده كننده ای را در نظر گیرد: این فرض كه روشنایی همواره وجود دارد،این فرض كه فقط قطعات خاصی بر روی تسمه نقاله انتقال می یابند و اینكه تنها دو عمل اعریف شده است،قبول قطعه یا علامت گذاری روی آن برای رد قطعه.
در مقابل برخی عامل های نرم افزاری (Software agents) در دامنه های نا محدود و غنی وجود دارند (به این نرم افزار ها ،روبات های نرم افزاری یا( softbots ) نیز می گویند). روبات نرم افزاری را تصور كنید كه برای شبیه سازی پرواز 747 طراحی شده است. شبیه ساز درای محیطی پیچیده و بسیارجزیی است و عامل نرم افزاری بایدازمیان طیف گسترده ای  از عملیات در شرایط بلاد رنگ انتخابی را انجامدهد. و یا عامل نرم افزاری را تصور كنید كه برای مرور منابع اخبار و نمایش اقلام مورد توجه مشتریان طراحی شده است.برای انجام درست كار، باید قابلیت پردازش زبان طبیعی را داشته باشد، نیازمند یادگیری علایق  مشتریان خواهد بود و می بایست توانایی تغییر پویای برنامه خود را برای زمانی داشته باشد كه برای مثال اتصال به یك منبع خبری از بین رود و یا یك منبع جدید خبریروی خط بیاید.
برخی محیط ها تمایز بین « واقعی » و« مصنوعی » را محو می كنند.در محیط  ALIVE (Maes  et al.1994)، عامل های نرم افزاری داده شده ناد كه قادر به درك تصاویر دوربین دیجیتال اتاقی هستند كه انسانی گرداگرد آن قدم میزند. عامل، عامل تصویر دوربین را پردازش كرده و عملی را انتخاب می كند.محیط همچنین تصویر دوربین را بر روی پرده نمایش بزرگی كه انسان قادربه دیدن آن باشد نمایش می دهد تا بتواند بر روی تصویر افكت های گرافیك كامپیوتری را اضافه كند.چنین تصویری می تواند سگ كارتونی باشد كه برناوه ریزی شده تا بسوی انسان حركت كند (مگر اینكه فرد به جایی اشاره كند تا سگ دور شود) و یا دست خود را تكان داده و یا مشتاقانه بپرد زمانی كه انسان اداهای خاصی از خود در آورد.
سیستم رانندگی هوشمند
برای ملموس ترشدن بحث برنامه ها،یک محیط خاص رادرنظرمی گیریم.نقش رانندگی ماشین را به راحتی می توان درک کرد.بنابر این این محیط را مورد مطالعه قرار می دهیم. راننده به طور کلی نیازمند دانستن موارد زیر است:
·   در کجا قرار دارد.
·   سرعت او چقدر است.
·   چه افراد و اجسام دیگری در خیابان هستند.
·   اجسام و افراد دیگر با چه سرعتی حرکت می کنند.
اعمالی که باید راننده انجام بدهد:
·   کنترل فرمان (وضعیت چرخ ها)
·   کنترل سرعت
·   کنترل وضعیت ماشین (گرمای موتور،·    روغن،·    دور موتور و ...)
معیار هایی که راننده نیازمند دانستن آن ها است :
·   صحیح و سالم به مقصد رسیدن
·   حداقل سازی مصرف سوخت
·   حداقل سازی زمان
·   حداقل سازی تخلفات رانندگی
مکانیزم های مورد نیاز برای انجام فعالیت های فوق:
·   سیستم مکان یابی جهانی (GPS=Global Positioning System)
·   دوربین های تصویر برداری دیجیتالی
·   سنسورهای مادون قرمز و رادار
·   میکروفون یا صفحه کلید برای دریافت مقصد توسط مسافران
·   کیلومتر سنج،·    شمارش دور موتور و ...
·   و...
در نهایت اگر این یک پروژه واقعی باشد، باید محیط های رانندگی متفاوت را برای برنامه تعیین کرد. (آیا در شهر رانندگی می کند یا در آزاد راه؟ در مناطق قطبی رانندگی می کند یا در مناطق استوایی؟ و ...)
برای ساخت برنامه عامل واقعی از چهار نوع برنامه عامل می توان استفاده کرد:
·   عامل های واکنشی ساده
·   عامل هایی که اثرات دنیا را حفظ می کنند.
·   عامل های هدف گرا
·   عامل های سودمند
عامل های واکنشی ساده
در ماشین هنگامی که ماشین جلویی ترمز می کند و چراغ ترمز های آن روشن گردد، آن گاه راننده باید متوجه آن شده و ترمز کند. به عبارت دیگر هنگامی که شرایطی که ما آن را ترمز کردن ماشین جلویی می نامیم روی دهد، پردازش هایی که روی تصویر انجام می گیرد متوقف می شود، سپس این رویداد باعث فعال شدن برخی موارد در برنامه عامل خواهد شد که عمل اقدام به ترمز را فعال می سازد. چنین اقدامی را یک قانون شرط-عمل (Condition-Action Rule) می نامیم. این چنین عامل هایی می توانند کاملا کارا پیاده سازی شوند، ولی محدوده کاربردی آن ها بسیار محدود هستند.
عامل هایی که اثرات دنیا را حفظ می کنند
راننده ها برای تغییر لاین نیازمند استفاده از آینه ها برای تشخیص جای ماشین های دیگر هستند. ولی سنسور ها نمی توانند دسترسی کامل به وضعیت دنیا داشته باشند. عامل نیازمند دستکاری برخی از اطلاعات وضعیت داخلی است تا از طریق آن تمایز بین وضعیت های دنیا (که در ظاهر ورودی ادراکی یکسانی می کنند) را میسر سازد. عامل به دو نوع دانش کد شده در برنامه نیاز دارد تا اطلاعات وضعیت داخلی را به هنگام کند. اول نیازمند آن است که برخی اطلاعات درباره چگونگی تغییرات جهان مستقل از عامل را داشته باشد.(مثلا ماشین جلویی چند لحظه قبل نزدیک شده است.) دوم نیازمند اطلاعاتی درباره اعمال خود عامل است که بر دنیا اثر می گذارند. (مثلا وقتی ماشین لاین خود را تغییر می دهد، حداقل برای مدت کمی فاصله ای در لاین قبلی ایجاد می شود.)
عامل های هدف گرا
دانستن وضعیت کنونی همواره برای تصمیم گیری نمیتواندکافی باشد.برای مثال در یک چهارراه،ماشین می تواند به چپ یا راست و یا مستقیم برود. تصمیم صحیح بستگی به مقصد ماشین دارد. بنابراین همانگونه که عامل نیازمند دانستن وضعیت جاری است، نیازمند اطلاعات هدف ،که ما آن را Goal می نامیم، است. گاهی عامل باید دنباله های طولانی را در نظر بگیرد تا راهی برای دستیابی به هدف پیدا کند. جستجو و برنامه ریزی(Planning) برای یافتن دنباله اعمال برای حصول اهداف عامل استفاده می شوند.
نکته: تصمیم گیری های این عامل با قوانین شرط-عمل متفاوت هستند.
زیرا در قوانین شرط-عمل ، طراح برای حالات متفاوت ، عملی درست را پیش بینی کرده است. عامل هدف گرا بسیار انعطاف پذیر می باشد. اگر باران شروع شود، این عامل می تواند دانش خود را در مورد چگونگی کیفیت ترمز به هنگام سازی کند. این فرآیند به طور خودکار باعث می شود که تمامی رفتار های مربوط برای وفق دادن با شرایط جدید ، تغییر پیدا کنند. درحالی که برای عامل واکنشی ما مجبور به نوشتن دوباره بسیاری از قوانین خواهیم بود. عامل های واکنشی برای زمانی تنها برای یک مقصد کار می کنند، عکس العمل نسبتا خوبی دارند. ولی با تغییر شرایط و یا هدف باید تغییر پیدا کنند. این در حالی است که عامل های هدف گرا برای رسیدن به مقاصد متفاوت و شرایط متفاوت بسیار انعطاف پذیرند و به سادگی به رفتار تازه ای می رسند.
عامل های سودمند
اهداف به تنهایی برای تولید رفتاری با کیفیت بالا کافی نیستند. برای مثال ، دنباله های عملیات زیادی وجود دارند که ماشین را به هدف می رسانند. اما برخی سریع تر ، امن تر ، مطمئن تر یا ارزان تر از دیگران هستند. عامل سودمند بر اساس رضایت عامل در صورت حصول هدف، مقایسه و تصمیم گیری می کند. به دلیل اینکه رضایت صحت علمی زیادی ندارد، بهتر است بگوییم هنگامی که یک وضعیت به دیگری ترجیح داده می شود ، آن گاه آن برای عامل سودمند است.بنابراین سودمندی تابعی است که یک وضعیت را به عددحقیقی تبدیل می کند (که درجه رضایت مربوطه را تعیین می کند). تابع سودمندی امکان تصمیم گیری های منطقی در دو حالت را ایجاد می کند.
·   زمانی که اهداف متناقض وجود دارد،·    تنها برخی از آن ها قابل حصول خواهد بود،·    تابع سودمندی مورد مناسب را تعیین می کند.
·   زمانی که چندین هدف وجود دارند که عامل می تواند آن ها را هدف قرار دهد و هیچ کدام از آن ها با قطعیت قابل حصول نیست،·    تابع سودمندی راهی را ایجاد می کند که در آن احتمال موفقیت در مقابل اهمیت هدف باید مقایسه شوند.
محیط ها
 اعمال بوسیله عامل بر محیط انجام می شود، كه خود ادراك عامل را مهیا می سازد. اول، انواع متفاوت محیط ها وچگونگی اثر آنها بر طراحی عامل را تشریح نموده و سپس برنامه های محیطی را تشریح خواهد كرد كه می تواند به عنوان بستر آزمون برنامه های عامل مورد استفاده قرار گیرد.


خواص محیط ها
 محیط ها از چند منظر مورد توجه قرار می گیرند. تمایز های پایه به قرار زیر ایجاد می شوند:
قابل دسترسی در مقابل غیرقابل دسترسی
اگر ابزارحس كننده عاملی امكان دسترسی به وضعیت كامل محیط را بدهد،آنگاه می گوئیم محیط برای عامل قابل دسترسی است.محیط مؤثرقابل دسترسی است.اگرحس گرها تمامی جنبه هایی را كه برای انتخاب عمل لازم است شناسایی كنند. محیط قابل دسترسی راحت است زیرا عامل نیازمند دستكاری هیچ وضعیت داخلی برای حفظ دنیا را نخواهد داشت.
قطعی در مقابل غیر قطعی
اگروضعیت بعدی محیط به وسیله وضعیت كنونی و اعمالی كه با عامل انتخاب گردد، تعیین شود،می گوئیم محیط قطعی است. به طور كلی، عامل نباید درباره عدم قطعیت در محیط قطعی وقابل دسترسی نگران باشد. اگر محیط قابل دسترسی نباشد، ممكن است غیر قطعی به نظر برسد. اگر محیط پیچیده باشد این مطلب به طور اخص صحیح است،  كه نگهداری تمامی جنبه های غیرقابل دسترسی را دشوار می سازد. بنابراین، بهتر است به قطعی یا غیر قطعی بودن محیط از دیدگاه عامل نگاه كنیم.
اپیزودیك در مقابل غیر اپیزودیك
در محیط اپیزودیك(episodic)، تجربه عامل به اپیزود هایی تقسیم می گردد. هر اپیزود شامل درك و عمل عامل است.كیفیت اعمال ان تنها به خود اپیزود وابسته است، زیرا اپیزود های بعدی وابسته به اعمالی كه در اپیزود های قبلی صورت می گیرد نیستند. محیط های اپیزودی بسیار ساده ترند زیرا عامل نباید به جلو تر فكر كند.
ایستا در مقابل پویا
اگر محیط درحین سنجیدن عامل تغییر كند، می گوئیم محیط برای عامل پویا است، در غیر این صورت پویا است. محیط های ایستا برای كار ساده هستند زیرا عامل نیازمند نگاه كردن به دنیا درحین تصمیم گیری عملی نداشته و همچنین در مورد گذرزمان نیز نگران نمی باشد. اگر محیط با گذر زمان تغییر نیابد اما امتیاز كارایی تغییر كند، می گوئیم محیط نیمه پویا (semidynamic ) است.
گسسته در مقابل پیوسته
اگر تعداد محدود و مجزا از ادراك و اعمال بوضوح تعریف شده باشد، می گوئیم محیط گسسته است. بازی شطرنج گسسته است، تعداد ثابتی در هر نوبت بازی وجود دارد. رانندگی تاكسی پیوسته است، سرعت و محل تاكسی و دیگر مشخصات خودرو در بازده مقادیر پیوسته تغییر می كنند. مشاهده خواهیم كرد كه انواع متفاوت محیط ها نیاز مند برنامه های عامل تا حدودی متفاوت هستند تا قادر به عملكرد كارا باشند. بعداً روشن خواهد شد كه سخت ترین حالت، همانطور كه شما ممكن است حدس زده باشید، غیر قابل دسترسی، غیر اپیزودیك، پویا و پیوسته است. همچنین خواهیم دید كه اكثریت وضعیت های واقعی چنان پیچیده هستند كه اگرواقعاً قطعی باشند، برای اهداف عملی، غیر قطعی در نظر گرفته می شود.
برنامه محیط
شبیه ساز یك یا چند عامل را به عنوان ورودی گرفته و بگونه ای عمل می كند كه هر عامل ادراك درست و نتیجه بازگشتی عمل خود را بدست آورد. سپس شبیه ساز محیط را بر اساس اعمال و احتمالاً دیگر فرایند های پویای محیط كه به عنوان عامل ها در نظر گرفته نمی شوند(مثل باران)، بهنگام می سازد. بنابراین محیط با وضعیت آغازین و تابع بهنگام سازی تعریف می گردد. البته، عاملی كه در شبیه ساز كار می كند باید قادر به كار كردن در محیط واقعی باشد كه همان انواع ادراك را ایجاد نموده و همان انواع اعمال را قبول كند
به طور كلی، ملاك كارایی وابسته به كل دنباله وضعیت های محیط است كه در حین عمل برنامه تولید می گردد. معمولاً، ملاك كارایی با یك تجمع ساده مثل جمع، میانگین یا حداكثر كار می كند. برای مثال، اگر ملاك كارایی برای عامل vaccum-cleaning  جئع كل زباله هایی باشد كه در یك شیفت كاری تمیز كرده باشد، scores تنها مقدار زباله تمیز شده تا كنون را نگهداری می كند. RUN-EVAL - ENVIRONMENT ملاك كارایی برای محیط واحدی برمی گرداند كه به وسیله وضعیت آغازین واحد وتابع بهنگام سازی ویژه تعریف می گردد. معمولاًعامل برای كار در یك دسته محیط (environment class) طراحی شده است، مجموعه جامعی ازانواع محیط ها. برای مثال،ما برنامه شطرنج را برای بازی در رقابت با رقبای متفاوت ماشینی و انسانی طراحی میجكنیم. اگرآن را برای یك رقیب واحدطراحی كنیم،ممكن است قادربه استفاده ازضعف خاص آن رقیب باشیم، اما این طرح نمی تواند برنامه خوبی برای نرم افزار بازی عمومی باشد.به بیان دقیق تر،برای اندازه گیری كارایی یك عامل،نیازمندتولید كننده محیطی هستیم كه محیط های خاص (با احتمالات كلی) را برای اجرای عامل انتخاب كند سپس ما علاقه مند به میزان كارایی متوسط عامل بر روی كلاس محیط هستیم.
یك اشتباه رایج بین دو مفهوم متغیر وضعیت درمحیط شبیه ساز و متغیر در خود عامل (مراجعه شود به REFLEX-AGENT-WITH-STATE) ممكن است روی دهد. به عنوان برنامه نویسی كه هر دو محیط شبیه ساز و عامل را پیاده سازی می كند، اغوا برانگیز خواهد بود كه عانل قادر به دسترسی متغیر وضعیت شبیه ساز محیط باشد. این فریفتگی باید به هر قیمتی سركوب شود! نسخه عامل وضعیت تنها باید از روی ادراك آن ساخته شود، بدون آنكه دسترسی به اطلاعات كامل وضعیت داشته باشد.
مذاكره بین عاملها
در تعریف مذاكره آمده است:
 ” نوعی از تصمیم گیری كه در آن دو یا چند طرف مشتركا و با هدف رسیدن به یك اجماع به دنبال یك راه حل احتمالی می گردند“
بدین ترتیب،  دلیل اینکه یک مذاکره اتفاق می افتد چنین بیان شده است :
"مذاکره به یکی از دو دلیل ذیل رخ می دهد :
1-برای ایجاد چیز جدیدی که هیچکدام از طرفین نمی توانند آن را به تنهایی بسازند.
2-برای حل مساله یا مشاجره بین طرفین"
با این تعاریف عمومی از مذاکره می توان مذاکره را با توجه به دیدگاههای مختلف تعریف نمود :

-در تئوری بازیهاو حراجها : دراین تئوری مذاکره را معادل معامله در نظرگرفته اند و آن راچنین تعریف می کنند : "بوسیله معامله ما مذاکره بین دو یا چند طرف را در مورد یک همکاری احتمالی را در نظر می گیریم که شامل مبادله ، استخدام .... و نظایر آن می شود "
-در تحلیل های تصمیم گیری و مذاکره : یک تعریف در این دیدگاه چنین است :" مذاکره نوعی تصمیم گیری است که دو یا چند عامل به صورت فعال که خود نمی توانند به صورت مستقل تصمیم بگیرند ، در آن شرکت دارند و بنابراین باید بپذیرند که روی این تصمیم با یکدیگر مصالحه کنند."
در این دیدگاه مشخصات عمومی یک مذاکره چنین آمده است:
1-در مذاکره دو یا چند طرف شرکت می کنند. این طرفین می توانند افراد مستقل، گروهها و با سازمانها باشند.
2-بین علاقه های دو یا چند طرف یک تضاد وجود دارد. بدین معنی که چیزی که یکی می خواهد لزوما جیزی نیست که دیگری نیز بخواهد و طرفین بایستی به دنبال راه حلی بگردند که این تضاد را برطرف کنند.
3- طرفین مذاکره می کنند چون آنها فکر می کنند می توانند از شکلی از تاثیر استفاده کنند تا معامله بهتری نسبت به زمانی که به سادگی هر چیزی که طرف مقابل داوطلبانه به آنها می دهد، قبول کنند، داشته باشند.
4-طرفین مذاکره حداقل برای یک لحظه ترجیح می دهند که دنبال یک توافق جستجو کنند تا اینکه آشکار مبارزه کنند، تسلیم طرف مقابل شوند، به طور همیشگی قرار داد را فسخ کنند، یا بحث خود را به حدی بالاتری از اقتدار خود برای حل آن ببرند. مذاکره زمانی رخ می دهد که هیچ سیستم و هیچ مجموعه قواعد یا روالهای مشخص ثابت برای رفع اختلاف وجود نداشته باشد.
5-زمانی که مذاکره می کنیم ما فرض می کنیم که می دهیم و می گیریم.
6-مذاکره موفق شامل مدیریت نامحسوسها به همان خوبی محسوسات است (برای مثال قیمت یا عبارات توافق)"
-تحقیقات سیستم های اطلاعاتی : و در این دیدگاه : "فرآیند مذاکره می تواند در شکل های زیادی صورت گیرد، از یک معامله غیرساختیافته بین دو طرف تا یک محیط بازار سریع از مبادلات سهام تا تمامی روال های حراج"
همچنین تعریف دیگری که محدود به عاملهای خودمختار نرم افزاری است ارائه شده است :"مذاکره در تجارت الکترونیک به عنوان پردازشی تعریف می شود که دو یا چند طرف به صورت چندجانبه و با استفاده از تکنیک ها و ابزارهای تجارت الکترونیک برای بدست آوردن سود متقابل به داد و ستد منابع می پردازند. [...] پردازشی که در آن دو عامل نرم افزاری هوشمند روی یک راه حل به صورت الکترونیکی مذاکره می کنند و سپس نتیجه را برای مدیر خود آماده می کنند."
-تحقیقات هوش مصنوعی :به جز تعریفی که در ابتدا آورده شد، تعریف دیگری که تمرکز به "مذاکره خودکار " در زمینه هوش مصنوعی توزیع شده دارد چنین است : در مذاکره خودکار ، عاملهای محاسباتی قراردادهایی را به عنوان نمایند طرفین دنیای واقعی خود پیدا و آماده می کنند.این خودکاری زمان مذاکره انسانی را ذخیره می کند و عاملهای محاسباتی اغلب در دادوستد های ترکیبی و باتنظیمات پیچیده سوق الجیشی بهترعمل می کنند."
و نیز در یک چشم انداز تکاملی محاسباتی :"مذاکره یک فرآیند جستجو است . برای مثال دو بازیکن ، معامله جامع را می توان به شکل دو مذاکره کننده که مشترکا یک فضای چندبعدی را جستجو می کنند و سپس روی یک نقطه یکتا در فضا توافق می کنند مشاهده کرد. "
-‌ سیستم های چند عامله : و بدین ترتیب می توان در این دیدگاه مذاکره را چنین تعریف کرد : ”مذاكره پردازشی است كه گروهی از عامل ها در یك موضوع مشخص به یك توافق قابل قبول برای همه دست یابند“.
مذاكره همواره به عنوان یكی از بخش های اساسی سیستم های چند عامله ای (Multi Agent System) كه شامل عامل های خودمختار ، تصمیم گیرنده و دارای منافع شخصی می باشند مطرح می شود و با توجه به تعریف هر مساله، طراحی روشی كارا برای مذاكره بین عاملها در آن اهمیت ویژه ای دارد.
همانگونه که در داد و ستدها، قراردادها و روابط انسانی (نظیر آنچه در مذاکرات اتمی ایران مشهود است) مذاکره مهم ، حساس و پیچیده است، در سیستمهای چند عامله نیز این مطلب به همین گونه است.