
آموزش Qwen Code (کوئن کد): نصب، تنظیمات و اتصال به مدل روی سرور خودتان
راهنمای عملی Qwen Code به زبان ساده: نصب، فایل QWEN.md، حالتهای تأیید، دستورهای روزانه، MCP، اجرای خودکار و اتصال به مدل باز روی سرور خودتان با Ollama یا vLLM.
ادامه مطلبراهنمای عملی Hermes Agent از Nous Research به زبان ساده: نصب، انتخاب ارائهدهنده مدل، اتصال به مدل باز روی سرور خودتان، فایل AGENTS.md، تأیید فرمانها و MCP.

Hermes Agent یک ایجنت هوش مصنوعی متنباز از شرکت Nous Research است. در ترمینال اجرا میشود، فایلها را میخواند و ویرایش میکند، فرمان اجرا میکند، در وب جستوجو میکند و میتواند از راه تلگرام، دیسکورد یا اسلک هم پیام بگیرد. دو ویژگی آن را از ابزارهایی مثل Claude Code جدا میکند: به هیچ مدل خاصی بسته نیست و میتوانید آن را به دهها ارائهدهنده یا به مدلی روی سرور خودتان وصل کنید، و حافظه و مهارتهایش را از تجربه کارهای قبلی خودش بهروز میکند.
این راهنما از صفر شروع میکند: پیشنیازها، نصب، انتخاب مدل، فایل دستورکار پروژه، تنظیم تأیید فرمانها و محیط ایزوله، دستورهای روزانه، MCP و اجرای خودکار. همه فرمانها و نام تنظیمات در ۶ مهر ۱۴۰۵ (۲۸ سپتامبر ۲۰۲۶) با مستندات رسمی Hermes و مخزن رسمی پروژه در گیتهاب تطبیق داده شدهاند. این پروژه تقریباً هر روز تغییر میکند؛ اگر فرمانی رفتار دیگری داشت، صفحه پیوندشده را ببینید. اگر میخواهید مدل را روی سرور خودتان اجرا کنید، تنظیمات دقیقش در بخش «اتصال Hermes به مدلی روی سرور خودتان» آمده است.
تصویر رسمی داشبورد وب Hermes Agent از مخزن پروژه
Hermes را میشود یک دستیار همهکاره و ماندگار دانست، نه فقط ابزاری برای کد. همان برنامه چند رابط دارد: خط فرمان کلاسیک، یک رابط ترمینالی تازهتر که با hermes --tui باز میشود، برنامه دسکتاپ، داشبورد وب محلی و یک «درگاه پیامرسان» که ایجنت را به تلگرام، دیسکورد، اسلک، واتساپ، سیگنال یا ایمیل وصل میکند. کارهای زمانبندیشده، حافظه بلندمدت، مهارتها و سابایجنتها هم داخل خود ابزار هستند.
مجوز انتشار کد پروژه طبق مخزن گیتهاب، MIT است؛ یعنی نرمافزار آزاد است و هر کسی میتواند آن را نصب، بررسی و تغییر دهد. مدل زبانی جزو این نرمافزار نیست. Hermes فقط رابطی است که درخواستها را به مدلی میفرستد که خودتان انتخاب کردهاید، و همه کیفیت و هزینه و ریسک حقوقی کار به همین انتخاب برمیگردد.
برای برنامهنویسی هم بهخوبی کار میکند، اما یک تفاوت مهم را در نظر داشته باشید: ایجنتی که همیشه روشن است، به پیامرسان وصل است و حافظه دارد، دسترسی بیشتری از یک جلسه کوتاه کدنویسی پیدا میکند. به همین دلیل در این راهنما قابلیتها را یکییکی و با کنترل اضافه میکنیم.
در لینوکس، مک یا WSL2 این فرمان را اجرا کنید:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
در ویندوز بدون WSL، این فرمان را در PowerShell بزنید:
iex (irm https://hermes-agent.nousresearch.com/install.ps1)
طبق راهنمای نصب، اسکریپت کد برنامه را در ~/.hermes/hermes-agent/ میگذارد، فرمان hermes را در ~/.local/bin/ میسازد و تنظیمات و دادههای شما را در ~/.hermes/ نگه میدارد. در ویندوز همه اینها زیر %LOCALAPPDATA%\hermes قرار میگیرد. کاربران مک و ویندوز میتوانند نسخه دسکتاپ را هم از سایت پروژه بگیرند. نصبکننده ابزارهای کنترل مرورگر را هم بهطور پیشفرض دانلود میکند؛ اگر لازمشان ندارید، راهنمای نصب گزینه حذفشان را توضیح داده است.
بعد از نصب، شل را دوباره بارگذاری کنید و وضعیت نصب را ببینید:
source ~/.bashrc # or: source ~/.zshrc
hermes --version
hermes doctor
فرمان hermes doctor تنظیمات ناقص، کلیدهای جاافتاده و مشکلات نصب را گزارش میدهد و اولین جایی است که هنگام هر خطایی باید سراغش بروید. طبق صفحه بهروزرسانی، در نصب با اسکریپت، بهروزرسانی با hermes update انجام میشود. نسخه دسکتاپ دکمه بهروزرسانی خودش را دارد و در Docker باید تصویر تازه را بگیرید و کانتینر را با همان پوشه داده دوباره بسازید.
مهمترین قدم، انتخاب ارائهدهنده مدل است. فرمان hermes setup سه حالت پیشنهاد میکند:
اگر میخواهید دقیقاً بدانید ایجنت به چه چیزهایی دسترسی دارد، شروع از صفر بهترین انتخاب است. بعداً هر ابزاری را که لازم شد، با hermes tools روشن کنید.
برای انتخاب یا عوض کردن مدل، از hermes model استفاده کنید. فهرست ارائهدهندهها طولانی است: Nous Portal، OpenRouter، Anthropic، اشتراک ChatGPT و Codex، Google AI Studio، DeepSeek، Hugging Face، AWS Bedrock و بسیاری دیگر، و در آخر گزینه «نقطه اتصال سفارشی» برای هر سروری که رابط سازگار با OpenAI دارد. هر کدام را که انتخاب کنید، مستندات برای جداکردن رمزها از تنظیمات یک قاعده دارد: کلیدها و توکنها در ~/.hermes/.env میروند و بقیه تنظیمات در ~/.hermes/config.yaml. فرمان hermes config set هر مقدار را خودش به فایل درست میفرستد.
تصویر رسمی صفحه مدلها در Hermes Agent
حالا به پوشه پروژه بروید، مطمئن شوید تغییر ذخیرهنشدهای ندارید و جلسه را شروع کنید:
cd path/to/your-project
git status
hermes
در بالای صفحه، مدل و ارائهدهنده فعال نوشته شده است؛ همین را اول بررسی کنید. بعد چند سؤال بیخطر بپرسید:
اگر جوابها درست بود و ایجنت توانست فایلی را بخواند، پایه کار آماده است. راهنمای شروع سریع صریحاً توصیه میکند تا وقتی یک گفتوگوی ساده بیخطا کار نکرده، قابلیت دیگری اضافه نکنید. برای ادامه آخرین جلسه بعداً hermes -c را بزنید.
Hermes هنگام شروع هر جلسه، فایلهای دستورکار پروژه را خودکار پیدا میکند. طبق صفحه فایلهای زمینه، در هر جلسه فقط یک نوع فایل پروژه خوانده میشود و ترتیب اولویت این است: .hermes.md یا HERMES.md، بعد AGENTS.override.md، بعد AGENTS.md، بعد CLAUDE.md و در آخر .cursorrules. پس اگر پروژهتان از قبل برای Claude Code یا Cursor فایل دستورکار دارد، Hermes همان را هم میخواند.
سادهترین شروع، دستور /init داخل جلسه است. این دستور مخزن را با ابزارهای فقطخواندنی بررسی میکند و یک AGENTS.md کوتاه مینویسد، و اگر فایل از قبل وجود داشته باشد، محتوای شما را نگه میدارد و فقط بهروزش میکند. بعد آنچه را که از روی کد قابل حدس نیست، خودتان اضافه کنید:
# Project notes for agents
- Stack: Django 5 backend in backend/, Vue 3 frontend in web/
- Run backend tests: cd backend && pytest -q
- Never run manage.py migrate against anything but the local database
- Persian UI strings live in web/src/i18n/fa.json
- Ask before adding a new dependency
چند نکته درباره رفتار این فایلها:
AGENTS.md ریشه مخزن و فایلهای پوشههای میانی تا پوشهای که در آن هستید، همه خوانده میشوند و فایل دقیقتر اولویت دارد. وقتی ایجنت سراغ زیرپوشهای میرود، AGENTS.md آن پوشه هم همان لحظه اضافه میشود.~/.hermes/SOUL.md لحن و شخصیت کلی ایجنت را تعیین میکند و فقط از پوشه خانه Hermes خوانده میشود، نه از پوشه پروژه./context نشان میدهد کدام فایلها خوانده شدهاند، کدام کوتاه شدهاند و کدام به خاطر اولویت کنار گذاشته شدهاند.این مهمترین بخش راهنماست، چون رفتار پیشفرض Hermes با Claude Code فرق دارد. طبق صفحه امنیت، Hermes پیش از هر فرمان فقط آن را با فهرستی از الگوهای خطرناک مقایسه میکند؛ مثل حذف بازگشتی، chmod 777، DROP TABLE یا اجرای مستقیم اسکریپتی که از اینترنت دانلود شده. فرمانهای معمولی بدون پرسش اجرا میشوند. نوشتن در فایلها هم معمولاً پرسشی ندارد و فقط چند مسیر حساس، مثل ~/.ssh/ و فایلهای رمز خود Hermes، همیشه بستهاند.
سیاست تأیید با کلید approvals.mode تعیین میشود:
| حالت | رفتار |
|---|---|
smart (پیشفرض) | یک مدل کمکی ریسک فرمان خطرناک را میسنجد: کمخطرها را اجرا میکند، واقعاً خطرناکها را رد میکند و موارد مشکوک را از شما میپرسد |
manual | برای هر فرمان خطرناک از شما میپرسد |
off | هیچ پرسشی نمیکند؛ معادل پرچم --yolo |
وقتی پرسش ظاهر میشود، چهار گزینه دارید: یک بار، برای کل جلسه، همیشه، یا رد. گزینه «همیشه» آن الگو را برای همه جلسههای بعدی در config.yaml ثبت میکند؛ پس با احتیاط انتخابش کنید. جدا از همه اینها، یک فهرست ثابت از فرمانهای فاجعهبار مثل پاک کردن ریشه سیستم وجود دارد که حتی با --yolo هم اجرا نمیشود.
چون فرمانهای معمولی و نوشتن فایلها بیپرسش انجام میشوند، مرز واقعی را باید محیط اجرا بسازد. مستندات چند ابزار در اختیارتان میگذارد و این نمونه آنها را در ~/.hermes/config.yaml کنار هم میگذارد:
approvals:
mode: manual
deny:
- "git push --force*"
- "dd if=* of=/dev/*"
terminal:
backend: docker
checkpoints:
enabled: true
skills:
write_approval: true
memory:
write_approval: true
هر بخش این تنظیمات یک کار مشخص انجام میدهد:
approvals: هر فرمان خطرناک را از شما میپرسد و الگوهای فهرست deny را، حتی در حالت --yolo، همیشه رد میکند.terminal.backend: docker: فرمانها را بهجای سیستم شما داخل یک کانتینر Docker اجرا میکند. در این حالت خود کانتینر مرز امنیتی است و بررسی فرمانهای خطرناک کنار گذاشته میشود، پس کانتینر را بدون کلید و داده واقعی بسازید.checkpoints: طبق صفحه نقطههای بازگشت، پیش از هر ویرایش فایل یا فرمان تخریبی یک عکس فوری از پروژه در انباری جدا از git خود پروژه میگیرد تا با /rollback برگردید. این قابلیت بهطور پیشفرض خاموش است.write_approval: Hermes بعد از کارها ممکن است خودش مهارت تازه بنویسد یا چیزی به حافظهاش اضافه کند و مقدار پیشفرض این دو کلید false است، یعنی بیاجازه. با true هر تغییر برای بازبینی نگه داشته میشود و با /skills pending و /memory pending آن را میبینید.یک محدودیت دیگر هم هست: متغیر HERMES_WRITE_SAFE_ROOT ابزار نوشتن فایل را به یک پوشه محدود میکند، اما مستندات صریحاً میگوید فرمانهای ترمینال همچنان با دسترسی کاربر شما اجرا میشوند و میتوانند از این محدودیت عبور کنند. این قفل کمکی است، نه محیط ایزوله.
هر پیامی که با / شروع شود یک دستور است. فهرست کامل در مرجع دستورهای اسلش آمده و اینها برای کار روزانه کافی است:
| دستور | کاربرد |
|---|---|
/help | فهرست دستورها |
/model | دیدن یا عوض کردن مدل میان ارائهدهندههایی که قبلاً تنظیم شدهاند |
/tools | فهرست ابزارها و خاموش یا روشن کردنشان در همین جلسه |
/init | ساختن یا بهروزکردن AGENTS.md |
/plan | نوشتن برنامه اجرا در پوشه .hermes/plans/ بدون اجرای چیزی |
/diff | دیدن تغییرات git در پوشه کار |
/rollback | فهرست نقطههای بازگشت و برگرداندن یکی از آنها |
/context | دیدن اینکه پنجره متن مدل با چه چیزهایی پر شده است |
/compress | خلاصهکردن گفتوگو برای آزاد شدن پنجره متن |
/new | شروع جلسه تازه |
/resume | ادامه یک جلسه قبلی |
/status | دیدن مدل، ارائهدهنده، پوشه کار و مصرف توکن جلسه |
/approvals | دیدن یا عوض کردن حالت تأیید فرمانها |
/skills | جستوجو، نصب و بازبینی مهارتها |
بیرون از جلسه هم این فرمانها زیاد به کار میآیند: hermes model برای افزودن ارائهدهنده تازه، hermes tools برای روشن و خاموش کردن ابزارها، hermes config edit برای باز کردن فایل تنظیمات و hermes dashboard برای داشبورد وب که بهطور پیشفرض فقط روی 127.0.0.1 باز میشود. دستور /yolo را هم بشناسید تا اشتباهی نزنید: همه پرسشهای تأیید را برای آن جلسه خاموش میکند.
ایجنتی که فرمانهای معمولی را بیپرسش اجرا میکند، به درخواست دقیقتری نیاز دارد. این دو را مقایسه کنید:
برای کارهای بزرگتر این ترتیب را پیشنهاد میکنیم:
hermes -w شروع کنید. طبق راهنمای خط فرمان، این پرچم یک worktree جدای git میسازد تا کار ایجنت از شاخه اصلی شما جدا بماند./plan بخواهید برنامه اجرا را بنویسد. این دستور فقط برنامه را در پوشه .hermes/plans/ ذخیره میکند و چیزی را اجرا نمیکند./diff یا git diff مرور کنید. اگر نقطههای بازگشت روشن است و نتیجه بد بود، با /rollback برگردید.بعد از یک کار موفق، Hermes ممکن است از آن مهارت یا یادداشت حافظه بسازد. اگر write_approval را روشن کرده باشید، این تغییرات منتظر تأیید شما میمانند. آنها را مثل کد بازبینی کنید؛ یک بار موفقیت دلیل نمیشود که روشی برای همیشه قاعده شود.
طبق مستندات MCP در Hermes، سرورها در بخش mcp_servers فایل ~/.hermes/config.yaml تعریف میشوند. سروری که روی سیستم خودتان اجرا میشود با command و args و سرور راه دور با url مشخص میشود:
mcp_servers:
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "${workspaceFolder}"]
internal-docs:
url: "https://mcp.example.internal/mcp"
trust: untrusted
tools:
include: ["search_*", "get_*"]
با tools.include فقط ابزارهایی را که لازم دارید در اختیار مدل میگذارید. مقدار trust: untrusted باعث میشود هر ابزار آن سرور که ادعای فقطخواندنی بودن نکرده، پیش از اجرا از شما تأیید بگیرد؛ مستندات توصیه میکند هر سروری را که کاملاً در اختیار خودتان نیست، همینطور علامت بزنید. کلیدها را در ~/.hermes/.env بگذارید و در این فایل با ${env:NAME} به آنها اشاره کنید. بعد از تغییر، /reload-mcp سرورها را دوباره بارگذاری میکند و hermes mcp هم فهرستی از سرورهای بررسیشده توسط Nous را برای نصب نشان میدهد.
درگاه پیامرسان با hermes gateway setup راهاندازی میشود. بهطور پیشفرض هیچ کاربری اجازه پیام دادن ندارد تا وقتی شناسهاش را در فهرست مجاز بگذارید یا با کد جفتسازی تأییدش کنید. ایجنتی را که به ترمینال و فایلها دسترسی دارد، هرگز روی یک ربات عمومی باز نکنید و در نظر داشته باشید که پیامها و پیوستها هم میتوانند دستور مخرب با خودشان بیاورند. معماری امن این اتصالها را در راهنمای معماری یکپارچهسازی MCP شرح دادهایم.
برای اسکریپت و خط لوله CI، حالت یکپرسشی را به کار ببرید. این نمونهها از راهنمای خط فرمان هستند:
# One question, then exit
hermes chat -q "Summarize the open TODO comments in this repository"
# Read the prompt from a file, with a fixed provider and model
hermes chat --provider openrouter --model "anthropic/claude-sonnet-4" --query-file prompt.txt
# Limit the toolsets for this run
hermes chat --toolsets "terminal,skills" -q "Run the test suite and summarize failures"
# Single query inside a fresh git worktree
hermes -w -z "Fix issue #123"
در حالت یکپرسشی کسی نیست که به پرسش تأیید جواب دهد. کلید approvals.single_query_mode که مقدار پیشفرضش deny است، فرمانهای خطرناک را در این حالت رد میکند و ایجنت باید راه دیگری پیدا کند. همین منطق برای کارهای زمانبندیشده با کلید approvals.cron_mode برقرار است. کارهای زمانبندیشده را با hermes cron یا دستور /cron مدیریت میکنید. هر کار تازه را اول چند بار دستی اجرا کنید و فقط وقتی نتیجهاش قابل اعتماد بود، زمانبندیاش کنید.
Hermes به مدل خاصی بسته نیست و یکی از گزینههایی که رسماً پشتیبانی میکند، مدلی است که خودتان اجرا میکنید: یک مدل باز روی رایانه یا سرور خودتان، یا هر سرویسی که رابط سازگار با OpenAI دارد و درباره محل و مدت نگهداری داده جواب روشن میدهد. این راه وقتی به کار میآید که نمیخواهید کد و داده از شبکه خودتان بیرون برود، هزینه ثابت سرور را به پرداخت برای هر توکن ترجیح میدهید، یا میخواهید نسخه مدل دقیقاً در اختیار خودتان بماند و بیخبر عوض نشود. طبق صفحه ارائهدهندهها، هر سروری که مسیر /v1/chat/completions را پیاده کرده باشد، با این چند خط در ~/.hermes/config.yaml وصل میشود:
model:
default: your-model-name
provider: custom
base_url: http://localhost:8000/v1 # or the address of your own server
api_key: your-key-or-leave-empty-for-local
اگر از Ollama استفاده میکنید، طبق راهنمای اجرای محلی با Ollama نشانی http://localhost:11434/v1 است و کلید لازم ندارد. Ollama بهطور پیشفرض پنجره متن کوچکی دارد، پس باید نسخهای با پنجره ۶۴ هزار توکنی بسازید:
# Ollama starts with a small context window; Hermes needs at least 64K
cat > Modelfile << 'EOF'
FROM gemma4:31b
PARAMETER num_ctx 64000
EOF
ollama create gemma4-64k -f Modelfile
و بعد در تنظیمات، default: "gemma4-64k" و base_url: "http://localhost:11434/v1" را بگذارید. روی سرور گرافیکی، vLLM انتخاب رایجتری است. مستندات تأکید میکند بدون دو پرچم فراخوانی ابزار، مدل فقط متن تولید میکند و نمیتواند فایل ویرایش کند یا فرمان اجرا کند:
# Serve an open-weight model with tool calling switched on
vllm serve <model-id> \
--port 8000 \
--max-model-len 65536 \
--enable-auto-tool-choice \
--tool-call-parser <parser>
مقدار <parser> باید با خانواده مدل جور باشد. مستندات این مقدارها را فهرست کرده است: hermes برای Qwen 2.5 و مدلهای Hermes، llama3_json برای Llama 3، و mistral، deepseek_v3 و deepseek_v31 برای خانوادههای دیگر. در این حالت کارهای جانبی مثل خلاصهسازی هم بهطور پیشفرض به همان مدل اصلی فرستاده میشوند، پس همه درخواستهای مدل به سرور خودتان میرود. ابزارهای جانبی مثل جستوجوی وب اما بهطور پیشفرض به سرویسهای میزبانیشده بیرونی متکیاند؛ اگر میخواهید دادهای از سرور شما بیرون نرود، آنها را خاموش نگه دارید و فقط وقتی لازم شد روشنشان کنید.
برای انتخاب مدل، مقایسه Qwen3.8، GLM-5.2 و DeepSeek-V4 برای برنامهنویسی را ببینید. اگر کارتان بیشتر برنامهنویسی است و ایجنتی مخصوص ترمینال و مخزن کد میخواهید، آموزش OpenCode و آموزش Qwen Code هم همین نوع اتصال به مدل خودتان را پشتیبانی میکنند. مدل باز کوچک در کارهای چندمرحلهای با مدلهای بزرگ تجاری برابر نیست؛ آن را روی کارهای واقعی خودتان آزمایش کنید.
Hermes در سازمان معمولاً به شکل یک دستیار مشترک یا ربات پیامرسان به کار میرود و دسترسیاش از یک ابزار شخصی بیشتر است. پیش از راهاندازی این موارد را روشن کنید:
AGENTS.md کوتاه در مخزن git، با فرمانهای ساخت و تست و کارهای ممنوع؛manual، اجرای فرمانها در Docker، فهرست deny مشترک، و روشن بودن write_approval برای مهارت و حافظه؛اگر میخواهید Hermes یا ایجنتی مشابه را روی مدلی که روی سرور خودتان اجرا میشود، با تنظیمات امن و قاعدههای روشن بازبینی برای تیمتان راه بیندازید، با ما صحبت کنید: تماس تلفنی با ۰۹۰۱ ۵۵۵ ۵۶۵۱ یا پیام در واتساپ. جزئیات این خدمت را در صفحه آموزش هوش مصنوعی و ایجنت برنامهنویسی برای تیمها هم میتوانید ببینید.
همه فرمانها و تنظیمات این راهنما در تاریخ بالا با این صفحههای رسمی تطبیق داده شد:

راهنمای عملی Qwen Code به زبان ساده: نصب، فایل QWEN.md، حالتهای تأیید، دستورهای روزانه، MCP، اجرای خودکار و اتصال به مدل باز روی سرور خودتان با Ollama یا vLLM.
ادامه مطلب
نصب Cursor در ویندوز، مک و لینوکس، Tab، ویرایش درونخطی، حالتهای ایجنت و Plan، فایلهای rules، MCP، حریم خصوصی، قیمتها و وضعیت دسترسی کاربران ایران را یاد بگیرید.
ادامه مطلب
نصب n8n روی سرور ایران با Docker Compose، PostgreSQL و HTTPS؛ از میرور داخلی داکر، پشتیبانگیری و ارتقا تا مدل محلی Ollama و تاریخ شمسی در ورکفلو.
ادامه مطلباگر میخواهید ایجنتهای هوش مصنوعی و اتوماسیون این راهنما را در تیم نرمافزار یا فرایندهای سازمانتان به کار بگیرید، از یک آزمایش کوچک شروع کنید که بتوانید نتیجهاش را بسنجید.