تفاوت AI Agent و LLM و AI Assistant چیست؟
تفاوت دقیق LLM، دستیار هوشمند و ایجنت را در معماری و هزینه بررسی کنید. یاد بگیرید چرا ایجنت به دلیل مدیریت credentials و حلقه اجرا، به سرور همیشه روشن نیاز دارد.
تفاوت بین یک AI agent، یک LLM و یک AI assistant چیست؟
یک AI agent، یک LLM و یک AI assistant سه لایه از یک پشته (stack) هستند و روش تشخیص آنها از یکدیگر، پرسش درباره نیاز هر کدام به سرور است. یک LLM (مدل زبانی بزرگ) فایلی از وزنها (weights) است که به RAM و توان پردازشی نیاز دارد. یک assistant همان مدل است که در یک رابط کاربری چت بستهبندی شده و دارای حساب کاربری و تاریخچه ذخیرهشده است که تقریباً همیشه روی سختافزار شخص دیگری میزبانی میشود. یک agent، یک assistant است که ابزارها و یک حلقه (loop) اجرایی نیز دارد و اعتبارنامهها (credentials) را نگهداری میکند؛ همین موضوع باعث میشود که حتماً روی ماشینی اجرا شود که همیشه روشن است.
بیشتر مطالب نوشتهشده در این باره، تنها به تعاریف بسنده میکنند. تعاریف فقط به این دلیل اهمیت دارند که هر لایه هزینه متفاوتی برای شما ایجاد میکند. اولی هزینه RAM دارد. دومی هزینه URL عمومی و TLS (امنیت لایه انتقال) را به همراه دارد. آخری هزینه اعتبارنامهها را دارد و اعتبارنامهای که یک agent از آن استفاده کرده، اعتبارنامهای است که اکنون باید آن را تغییر (rotate) دهید.
یک مدل زبانی بزرگ (LLM) مجموعهای از وزنهاست و وزنها به RAM نیاز دارند
یک LLM در واقع فایلی از اعداد است. شما آن را دانلود میکنید، یک runtime آن را در حافظه بارگذاری میکند و مدل در هر لحظه به یک درخواست پاسخ میدهد. قرارداد کارکرد آن محدود است: متن وارد میشود و متن خارج میشود. مدل بین فراخوانیها هیچ حافظهای ندارد، فاقد ساعت است، به شبکه دسترسی ندارد و نمیتواند فایلی را باز کند. هر چیزی که به نظر میرسد یک LLM به خاطر میآورد، توسط برنامهای که آن را فراخوانی کرده در context آن قرار داده شده است.
عددی که تعیینکننده طرح VPS شماست، اندازه همان فایل است، زیرا کل آن در حین اجرای مدل در حافظه باقی میماند. در کوانتیزاسیون 4-bit که Ollama بهصورت پیشفرض ارائه میدهد، حدود 0.6 گیگابایت به ازای هر میلیارد پارامتر در نظر بگیرید و سپس یک یا دو گیگابایت برای پنجره context و خودِ runtime اضافه کنید.
The data behind this chart
[
{
"label": "qwen3:4b",
"download_gb": 2.5,
"ram_gb_needed": 6
},
{
"label": "qwen3:8b",
"download_gb": 5.2,
"ram_gb_needed": 8
},
{
"label": "qwen3:14b",
"download_gb": 9.3,
"ram_gb_needed": 12
},
{
"label": "qwen3:32b",
"download_gb": 20.0,
"ram_gb_needed": 24
}
]بیلد qwen3:8b روی دیسک 5.2 گیگابایت است و برای اجرا بدون استفاده از swap، به حدود 8 گیگابایت RAM نیاز دارد. یک VPS با 4 گیگابایت RAM نمیتواند qwen3:14b را بارگذاری کند، چرا که قبل از تایپ حتی یک کلمه، حجم آن 9.3 گیگابایت است. بزرگترین ردیف در اینجا، یعنی qwen3:32b، به حدود 24 گیگابایت RAM نیاز دارد که در اکثر لیستهای قیمت، به معنای طرحی متفاوت و صورتحساب ماهانه متفاوت است.
جا شدن در حافظه یک بحث است و سرعت بحثی دیگر. در یک VPS که فقط از CPU استفاده میکند، گلوگاه اصلی پهنای باند حافظه است نه سرعت کلاک؛ بنابراین مدلی که در حافظه جا میشود، همچنان ممکن است با سرعت چند توکن در ثانیه پاسخ دهد. این سرعت برای کاری که در طول شب اجرا میشود مناسب است، اما برای چت آزاردهنده خواهد بود. یک GPU این عدد را تقریباً یک مرتبه بزرگی بهبود میبخشد و البته صورتحساب شما را هم تغییر میدهد، پس با اندازهگیری تصمیم بگیرید: بنچمارک گرفتن از VPS با workload مورد نظر خود و مطالعه چه زمانی یک VPS دارای GPU ارزش هزینه کردن دارد. برای شروع اجرای وزنها، با نصب Ollama روی VPS شخصی خود آغاز کنید.
دستیار، ترکیبی از یک مدل زبانی بزرگ (LLM) و رابط کاربری چت است
دستیار در واقع لایهٔ محصولی است که پیرامون یک مدل قرار میگیرد. ChatGPT و Claude دستیار هستند: شامل یک مدل، پنجرهٔ چت، حساب کاربری، تاریخچهٔ گفتگوها و محدودیت نرخ (rate limit). تقریباً هیچکدام از این موارد روی سختافزاری که شما کنترل میکنید اجرا نمیشوند؛ به همین دلیل است که دستیارهای میزبانیشده (hosted) هزینهٔ اشتراک دارند و رم سیستم شما را اشغال نمیکنند.
نسخهٔ خود-میزبانی (self-hosted)، یک رابط کاربری (front end) مانند Open WebUI است که به یک نمونهٔ محلی Ollama یا یک API میزبانیشده متصل میشود. این رابط کاربری نرمافزار سبکی است. انتظار داشته باشید که علاوه بر رم مورد نیاز مدل، حدود 1 گیگابایت رم برای اجرای رابط چت مصرف شود. آنچه این رابط نیاز دارد و یک مدل خام به آن نیازی ندارد، یک URL عمومی و یک گواهی معتبر است، زیرا میخواهید از طریق گوشی به آن دسترسی داشته باشید: صدور گواهی با Certbot و Nginx، یا پایان دادن به TLS در Traefik که در مقابل چندین برنامه قرار دارد. اگر هنوز در حال انتخاب رابط کاربری هستید، جایگزینهای Open WebUI را مقایسه کنید.
دستیار پاسخ میدهد، اما عمل نمیکند. وقتی دستیار یک دستور shell مینویسد، یک انسان آن دستور را میخواند و تصمیم میگیرد که آیا آن را اجرا کند یا خیر. آن انسان، لایهٔ امنیتی است و عامل (agent) چیزی است که این لایه را حذف میکند.
افزودن ابزار و حلقه به یک عامل
عامل (Agent) دستیاری است که میتواند توابع را فراخوانی کرده و نتایج آنها را بخواند. دو بخش این کار را انجام میدهند. بخش اول ابزار (Tool) است: توصیفی از تابعی که مدل ممکن است درخواست کند، به همراه کدی که آن را اجرا میکند. بخش دوم حلقه (Loop) است: برنامهٔ شما مدل را فراخوانی میکند، مدل درخواست ابزار میکند، برنامهٔ شما آن را اجرا میکند، خروجی را به گفتگو ضمیمه کرده و دوباره مدل را فراخوانی میکند. این چرخه تا زمانی که مدل اعلام پایان کند یا یک محدودیت آن را متوقف سازد، تکرار میشود.
حلقه یک کد معمولی است و یک نمونهٔ پایه از آن در کمتر از 100 خط جای میگیرد. چیزی که آن را به یک عامل تبدیل میکند این است که ابزارها دارای اعتبارنامههای واقعی هستند، بنابراین حلقه میتواند چیزی را در خارج از خود تغییر دهد. همین یک واقعیت، تمام تصمیمات میزبانی زیر را هدایت میکند. مهارتهای عامل و سرورهای MCP (پروتکل زمینه مدل) دو روش برای ارائه ابزارهای بیشتر به یک عامل بدون بازنویسی حلقه هستند.
- عمر آن از نشست شما بیشتر است. یک چت با بستن تب مرورگر پایان مییابد. اجرای یک عامل ممکن است 20 دقیقه طول بکشد و باید در برابر به خواب رفتن لپتاپ شما مقاوم باشد، بنابراین باید روی سیستمی اجرا شود که همیشه روشن است و توسط یک سرویس یا تایمر systemd راهاندازی شود تا پس از reboot دوباره بالا بیاید.
- اسرار را نگه میدارد. یک کلید API، یک کلید SSH، یک رمز عبور پایگاه داده. هر چیزی که عامل بتواند بخواند، با یک دستور مخرب پنهان در ورودیاش میتواند توسط آن استفاده شود، بنابراین اسرار را دور از دسترس عامل نگه دارید.
- هزینهٔ آن با حلقه رشد میکند، نه با پرسش شما. هر مرحله کل گفتگو را به عنوان ورودی دوباره ارسال میکند، بنابراین یک اجرای 10 مرحلهای، هزینهٔ آن متن را 10 بار پرداخت میکند. به همین دلیل است که توکنهای ورودی هزینهٔ اصلی عامل را تشکیل میدهند و چرا شما به یک سقف سخت برای هزینهٔ هر اجرا نیاز دارید.
- میتواند به شکلی اشتباه کند که منجر به نوشتن (تغییر) شود. یک پاسخ اشتباه در چت فقط هزینهٔ دوباره خواندن را دارد. یک حذف اشتباه در داخل حلقه، هزینهٔ از دست رفتن دایرکتوری را دارد. آن را به عنوان کاربری با کمترین سطح دسترسی که همچنان اجازه کار میدهد اجرا کنید و برای عاملهای برنامهنویسی، پیش از دادن مخزن کد به آن، آن را در یک sandbox قرار دهید.
نیازهای هر لایه از سرور
The data behind this chart
[
{
"label": "LLM (weights you host)",
"ram_gb": 8,
"gpu": "helps a lot",
"public_url": "no",
"credentials": "none"
},
{
"label": "Assistant (chat surface)",
"ram_gb": 1,
"gpu": "no",
"public_url": "yes",
"credentials": "one login"
},
{
"label": "Agent (tools and a loop)",
"ram_gb": 2,
"gpu": "no",
"public_url": "only for webhooks",
"credentials": "several"
}
]ستون RAM را با دقت مطالعه کنید، زیرا مدل را شامل نمیشود. رابط کاربری چت و runtime عامل (agent) هر دو برنامههای کوچکی هستند. اگر عامل از یک مدل میزبانیشده (hosted) استفاده کند، 2 گیگابایت رم برای اجرای آن کافی است و یک پلن ارزانقیمت، یک راهکار واقعی است نه یک مصالحه. اگر وزنهای مدل را روی همان سرور قرار دهید، سطر مدل 8 گیگابایتی بر همه چیز غلبه میکند.
سایر ستونها بیش از آنچه تصور میشود اهمیت دارند. فقط لایه مدل با GPU سریعتر میشود. فقط لایه دستیار (assistant) به طور معمول به یک URL عمومی نیاز دارد، زیرا مرورگر باید به آن دسترسی داشته باشد؛ یک عامل تنها زمانی به URL نیاز دارد که چیزی از خارج بخواهد با آن ارتباط برقرار کند، مانند webhook. همچنین یک عامل several اعتبارنامه (credential) را نگهداری میکند، که این تفاوت اصلی بین آن و یک پنجره چت است. یک پنجره چت ممکن است اشتباه کند. یک عامل میتواند اشتباه کند و سپس بر اساس آن عمل کند.
آیا برای اجرای یک AI agent به GPU نیاز دارید؟
خیر، مگر آنکه بخواهید وزنهای مدل (weights) را نیز روی همان ماشین میزبانی کنید. حلقهٔ اجرای agent شامل درخواستهای HTTP، تجزیه JSON و فراخوانی subprocess است و CPU در حین انتظار برای شبکه، تقریباً در حالت بیکار (idle) باقی میماند. مسئلهٔ GPU در واقع به لایهٔ LLM مربوط میشود.
بنابراین تصمیم خود را تفکیک کنید. اگر متن نباید از سرور شما خارج شود، هزینهٔ حافظهٔ لازم برای بارگذاری مدل و برای دستیابی به سرعت قابلقبول، هزینهٔ یک GPU را بپردازید. اگر فقط به اتوماسیون نیاز دارید، مدل را به صورت توکنی اجاره کنید و بودجهٔ خود را صرف پایداری (uptime) و تهیه نسخهٔ پشتیبان کنید. اکثر agentهای self-hosted در سال 2026 از مدلهای میزبانیشده (hosted) استفاده میکنند و اجرای آنها به این روش ارزانتر است.
آیا میتوان یک AI agent را بهصورت self-hosted اجرا کرد؟
بله، و این لایه همان بخشی است که بیشترین ارزش را برای self-hosting دارد، زیرا حلقهٔ پردازش، محل نگهداری دادهها و اعتبارنامههای شماست. یک VPS کوچک با 2 GB رم، یک service manager و دسترسی شبکه به بیرون، برای اجرای یک agent واقعی کافی است. اگر میخواهید کنترل کامل حلقه را در دست بگیرید، مسیر ساخت agent شخصی روی VPS را دنبال کنید، یا اگر ترجیح میدهید با یک راهکار آماده شروع کنید، یکی از agentهای آمادهٔ self-hosted را مستقر کنید.
میزبانی دستیار (assistant) ساده است: تنها شامل یک container و یک گواهی است. میزبانی مدل (model) بخش پرهزینه است و همان جایی است که کاربران پس از مشاهدهٔ سرعت بسیار پایین تولید توکنها روی CPU، از آن صرفنظر میکنند. زمانی که دادهها نباید از سرور خارج شوند یا حجم استفاده بهگونهای است که هزینههای پرداختی به ازای هر توکن توجیهپذیر نیست، وزنهای مدل (weights) را بهصورت محلی میزبانی کنید. در غیر این صورت، اجازه دهید agent از طریق API فراخوانی شود و بخشهای مهم و حساس را بهصورت محلی نگه دارید.
آیا ChatGPT یک ایجنت هوش مصنوعی است؟
یک محصول چت زمانی به یک ایجنت تبدیل میشود که بتواند بدون پرسش قبلی از شما، یک ابزار را فراخوانی کرده و بر اساس نتیجهٔ آن عمل کند. با این معیار، دستیارهای میزبانیشده (hosted) که قابلیت جستجو در وب، اجرای کد یا اتصال به سرویسهای دیگر را دارند، ایجنت محسوب میشوند. تفاوت برای شما در این است که حلقهٔ پردازش کجا اجرا میشود و از اعتبارنامههای چه کسی استفاده میکند. در یک محصول میزبانیشده، هر دو متعلق به فروشنده هستند. در سرور شخصی خودتان، هر دو متعلق به شما هستند و مسئولیت هر عملی که این حلقه در ساعت 3 صبح انجام میدهد نیز بر عهدهٔ شماست.
عوامل واکنشی، برنامهریز و چندعاملی
بررسیهای اجمالی معمولاً 7 نوع عامل را فهرست میکنند. بیشتر این دستهبندیها جنبه بازاریابی دارند. دو تمایز وجود دارد که کدی که مینویسید را تغییر میدهد و یکی از آنها هزینهها را دگرگون میکند. یک عامل واکنشی (reactive) یک ابزار را فراخوانی میکند، پاسخ را میخواند و پاسخ میدهد. یک عامل برنامهریز (planning) ابتدا یک طرح مینویسد و سپس آن را اجرا میکند؛ این روش در کارهای طولانیمدت پایداری بیشتری دارد اما توکنهای بیشتری مصرف میکند، زیرا طرح در هر مرحله دوباره ارسال میشود. یک ساختار چندعاملی (multi-agent) به یک عامل اجازه میدهد عوامل دیگری را راهاندازی کند، که این کار همزمان مصرف توکن و حالتهای شکست را افزایش میدهد؛ بنابراین تنها زمانی ارزش دارد که زیروظایف واقعاً مستقل باشند، مانند جستجو در 4 منبع بهطور همزمان. با مدل واکنشی شروع کنید. وقتی اجراها طولانی شدند، برنامهریزی را اضافه کنید. در نهایت به سراغ مدل چندعاملی بروید. برای مشاهده نقشه جامعتر، به آنچه در سال 2026 ارزش یادگیری درباره عوامل هوش مصنوعی را دارد مراجعه کنید.
چگونه تشخیص دهیم که واقعاً در حال اجرای کدام لایه هستید
روی سرور، بررسی کنید که کدام پردازشها حافظه را اشغال کردهاند.
free -h
ps -eo rss,comm --sort=-rss | head -5اگر در خط اول، ollama یا llama-server چندین گیگابایت از RSS (اندازه مجموعه مقیم، یعنی حافظهای که یک پردازش واقعاً اشغال میکند) را در اختیار دارند، شما در حال میزبانی مدل هستید. اگر هیچ پردازشی بیش از چند صد مگابایت اشغال نکرده است و صورتحساب API شما مدام افزایش مییابد، شما در حال میزبانی یک عامل (agent) یا دستیار هستید و مدل را اجاره کردهاید. اگر این لیست خالی است، چون همه چیز در یک تب مرورگر اتفاق میافتد، شما مشتری یک دستیار هستید؛ وضعیتی که تا زمانی که به نرمافزاری برای انجام کارها از طرف خودتان نیاز نداشته باشید، کاملاً مناسب است.
کدام یک را میخواهید اجرا کنید؟
- برای خصوصی نگهداشتن متن، مدل را اجرا کنید: میزبانی شخصی یک LLM با Ollama، سپس زمانهای اجرا را با مقایسه Ollama و vLLM هنگامی که تعداد کاربران از یک به ده رسید، مقایسه کنید.
- برای در اختیار داشتن حلقه و ابزارها، عامل (agent) خود را بسازید: ساخت عامل هوش مصنوعی شخصی روی یک VPS.
- برای داشتن چیزی که همین امشب کار کند، یک نمونه آماده را از عاملهای قابل میزبانی شخصی که ارزش اجرا دارند مستقر کنید.
- اگر هنوز هیچکدام از این موارد سروری در زیرساخت خود ندارند، از آنچه یک VPS واقعاً به شما میدهد شروع کنید.
FAQ
آیا یک ایجنت هوش مصنوعی صرفاً یک LLM با چند مرحله اضافی است؟
مراحل اضافی، همان محصول نهایی هستند. یک LLM متن را به متن تبدیل میکند و کار دیگری انجام نمیدهد. یک ایجنت، آن را با ابزارهایی که میتواند فراخوانی کند و حلقهای که مدام آنها را اجرا میکند، احاطه کرده است. این ابزارها دارای اعتبارنامههایی هستند، بنابراین خروجی میتواند یک فایل، یک پایگاه داده یا یک سرویس زنده را تغییر دهد. به همین دلیل است که یک ایجنت به ماشینی که همیشه روشن باشد، یک مدیر سرویس و یک سیاست امنیتی برای مدیریت اسرار نیاز دارد، در حالی که یک LLM تنها به حافظه کافی برای نگهداری وزنهای خود در حین پاسخدهی نیاز دارد.
آیا برای اجرای یک ایجنت هوش مصنوعی به GPU نیاز دارم؟
برای خودِ ایجنت خیر. حلقه اجرا شامل درخواستهای HTTP، پردازش JSON و فراخوانی زیرفرآیندها است که هر CPU در حین انتظار برای شبکه، بهراحتی از پس آن برمیآید. شما تنها زمانی به GPU نیاز دارید که وزنهای مدل را خودتان میزبانی کنید و بخواهید بیش از چند توکن در ثانیه از آن دریافت کنید. ایجنتی که یک مدل میزبانیشده را فراخوانی میکند، بهراحتی روی یک VPS کوچک بدون هیچ GPU اجرا میشود.
یک VPS برای ایجنت هوش مصنوعی به چه مقدار RAM نیاز دارد؟
هنگامی که ایجنت یک مدل میزبانیشده را فراخوانی میکند، حدود 2 گیگابایت RAM نیاز است، زیرا محیط اجرا، وابستگیهای آن و یک پایگاه داده محلی کوچک، تنها چیزهایی هستند که در حافظه نگه داشته میشوند. اگر وزنهای مدل را خودتان میزبانی میکنید، باید مقدار RAM مدل را نیز به آن اضافه کنید: qwen3:8b بهتنهایی حدود 8 گیگابایت RAM میخواهد، بنابراین یک سرور همهکاره از این مقدار شروع شده و بسته به مدلی که انتخاب میکنید، افزایش مییابد.
آیا میتوانم یک دستیار هوش مصنوعی را خود-میزبانی کنم و مکالماتم را خصوصی نگه دارم؟
بله، با یک شرط که تعیینکننده همه چیز است. یک رابط کاربری خود-میزبانیشده مانند Open WebUI، حسابها و تاریخچه را روی سرور شما نگه میدارد. مکالمات تنها در صورتی خصوصی میمانند که مدل پشت آن نیز محلی باشد. اگر همان رابط کاربری را به یک API میزبانیشده متصل کنید، متن در هر پیام از سرور شما خارج میشود؛ بنابراین شما تاریخچه را حفظ میکنید، اما حریم خصوصی را خیر.
تفاوت بین ایجنت هوش مصنوعی و چتبات چیست؟
یک چتبات پاسخ میدهد و متوقف میشود. یک ایجنت تصمیم میگیرد که گام بعدی چیست، یک ابزار را فراخوانی میکند، نتیجه را میخواند و دوباره تصمیم میگیرد تا زمانی که کار تمام شود یا یک محدودیت آن را متوقف کند. آزمون عملی این است: اگر نرمافزار بتواند بدون اینکه انسانی بین پاسخ و عمل دکمهای را فشار دهد، چیزی را تغییر دهد، آن نرمافزار یک ایجنت است و به میزبانی و محافظهای امنیتی همراه آن نیاز دارد.