GitHub Copilot چیست؟ آموزش کامل VS Code، Copilot CLI، Agent Mode و اتصال به API درواره

در این راهنمای عملی، GitHub Copilot را در VS Code و Terminal راه‌اندازی می‌کنید، با Agent Mode، Copilot CLI، Code Review و Custom Instructions کار می‌کنید و CLI را به API درواره متصل می‌کنید.

Share
GitHub Copilot چیست؟ آموزش کامل VS Code، Copilot CLI، Agent Mode و اتصال به API درواره

GitHub Copilot یکی از شناخته‌شده‌ترین ابزارهای برنامه‌نویسی با هوش مصنوعی است. این ابزار ابتدا به‌عنوان یک تکمیل‌کننده هوشمند کد معرفی شد، اما اکنون به مجموعه‌ای از قابلیت‌های Agentic تبدیل شده است که می‌تواند پروژه را بررسی کند، چند فایل را تغییر دهد، فرمان اجرا کند، تست بنویسد، Pull Request را بازبینی کند و حتی بعضی وظایف را به یک Agent ابری واگذار کند.

GitHub Copilot امروزی فقط چند خط کد را تکمیل نمی‌کند. قابلیت‌های آن شامل این موارد است:

  • پیشنهاد کد داخل ویرایشگر
  • تکمیل چندخطی تابع و کلاس
  • Copilot Chat
  • توضیح کد
  • تولید تست
  • رفع خطا
  • Refactor
  • Agent Mode در IDE
  • Copilot CLI در Terminal
  • Plan Mode
  • Code Review
  • Copilot Cloud Agent
  • Custom Instructions
  • Custom Agents
  • Agent Skills
  • اتصال به MCP Server
  • استفاده از مدل و Provider اختصاصی در Copilot CLI

در این مقاله GitHub Copilot را از صفر راه‌اندازی می‌کنیم، روش استفاده حرفه‌ای از آن را یاد می‌گیریم و در بخش عملی، Copilot CLI را با قابلیت BYOK به API هوش مصنوعی درواره متصل می‌کنیم.

GitHub Copilot چیست؟

GitHub Copilot یک دستیار و عامل برنامه‌نویسی هوش مصنوعی است که توسط GitHub ارائه می‌شود. این ابزار در محیط‌هایی مانند Visual Studio Code، Visual Studio، JetBrains IDEs، GitHub.com و Terminal قابل استفاده است.

GitHub Copilot یک مدل هوش مصنوعی واحد نیست. این محصول می‌تواند براساس پلن، تنظیمات و محیط استفاده از مدل‌های مختلف بهره ببرد. بنابراین باید میان «ابزار Copilot» و «مدلی که پاسخ را تولید می‌کند» تفاوت قائل شویم.

معماری ساده آن به این شکل است:

توسعه‌دهنده
    ↓
GitHub Copilot در IDE یا CLI
    ↓
مدل هوش مصنوعی
    ↓
پیشنهاد، کد، برنامه یا عملیات
    ↓
بررسی و تأیید توسعه‌دهنده

براساس فهرست رسمی قابلیت‌های GitHub Copilot، این محصول علاوه بر پیشنهاد کد و Chat، قابلیت‌هایی مانند Cloud Agent و Code Review را نیز ارائه می‌دهد.

GitHub Copilot چه کارهایی انجام می‌دهد؟

تکمیل خودکار کد

هنگام نوشتن کد، Copilot ادامه خط یا چند خط بعدی را پیشنهاد می‌دهد. پیشنهاد می‌تواند براساس این اطلاعات ساخته شود:

  • کد اطراف Cursor
  • نام تابع
  • Comment
  • فایل باز
  • زبان برنامه‌نویسی
  • الگوهای موجود در پروژه
  • Context در دسترس ابزار

تولید کد از روی توضیح

می‌توانید قبل از تابع، هدف آن را در قالب Comment بنویسید:

# Validate an Iranian mobile number and return a normalized value

Copilot ممکن است بدنه اولیه تابع را پیشنهاد دهد. این خروجی باید از نظر ورودی‌های مرزی، Regex، تست و رفتار خطا بررسی شود.

توضیح کد

برای ورود به یک پروژه قدیمی می‌توانید بپرسید:

این سرویس چه کاری انجام می‌دهد؟
جریان احراز هویت از کدام فایل شروع می‌شود؟
این تابع در چه شرایطی Exception ایجاد می‌کند؟

تولید تست

Copilot می‌تواند تست اولیه Unit یا Integration ایجاد کند:

برای این سرویس تست بنویس.
Happy Path، ورودی نامعتبر، Timeout و خطای Database را پوشش بده.

Refactor

می‌توانید از Copilot بخواهید تابع بزرگ را کوچک کند، کد تکراری را استخراج کند یا نام‌گذاری را بهبود دهد.

رفع خطا

با ارائه پیام خطا، Stack Trace، رفتار مورد انتظار و مراحل بازتولید، Copilot می‌تواند علت احتمالی را پیدا کند.

Code Review

Copilot می‌تواند Pull Request یا تغییرات محلی را بررسی و مشکل‌های احتمالی را پیشنهاد کند. GitHub تأکید می‌کند که Code Review هوش مصنوعی باید مکمل بازبینی انسانی باشد، نه جایگزین کامل آن. مستندات GitHub Copilot Code Review

اجرای وظیفه به‌صورت Agent

در Agent Mode، Copilot فقط پاسخ متنی نمی‌دهد. می‌تواند فایل‌ها را بررسی کند، برنامه بسازد، تغییرات چندفایلی انجام دهد و تست یا فرمان مرتبط را اجرا کند.

تفاوت Inline Completion، Chat، Edit و Agent Mode

حالتکاربردمیزان استقلال
Inline Completionپیشنهاد ادامه کدکم
Chatپرسش و پاسخ درباره کدکم
Editاعمال تغییر در فایل‌های مشخصمتوسط
Agent Modeتحلیل پروژه و اجرای چندمرحله‌ایزیاد
Cloud Agentانجام وظیفه در محیط ابری و ساخت Branch یا PRزیاد
Copilot CLIکار Agentic داخل Terminalزیاد

برای نوشتن یک خط ساده از Agent Mode استفاده نکنید. هرچه استقلال ابزار بیشتر باشد، هزینه Context و احتمال تغییر ناخواسته نیز بیشتر می‌شود.

Agent Mode چیست؟

Agent Mode برای وظایفی طراحی شده که به چند مرحله نیاز دارند. برای مثال:

یک Endpoint جدید برای ثبت سفارش بساز.
Schema ورودی را تعریف کن.
Service و Repository را اضافه کن.
Migration موردنیاز را بساز.
تست Unit و Integration بنویس.
مستندات OpenAPI را به‌روزرسانی کن.
در پایان تست‌ها را اجرا کن.

Agent برای انجام این درخواست باید:

۱. ساختار پروژه را بررسی کند.

۲. Framework و Conventionها را تشخیص دهد.

۳. فایل‌های مرتبط را پیدا کند.

۴. تغییرات را برنامه‌ریزی کند.

۵. چند فایل را ویرایش کند.

۶. تست‌ها را اجرا کند.

۷. خطاها را بررسی کند.

۸. نتیجه را برای بازبینی ارائه دهد.

Agent Mode در محیط محلی توسعه‌دهنده کار می‌کند و با Cloud Agent یکسان نیست.

تفاوت Agent Mode و Copilot Cloud Agent

GitHub میان Agent محلی IDE و Cloud Agent تفاوت قائل می‌شود.

Agent Mode در IDE

  • روی Workspace محلی کار می‌کند.
  • فایل‌های سیستم محلی را می‌بیند.
  • تغییرات را در پروژه باز اعمال می‌کند.
  • فرمان‌ها را در محیط توسعه‌دهنده اجرا می‌کند.
  • برای همکاری تعاملی مناسب است.

Copilot Cloud Agent

  • وظیفه را در محیط مبتنی بر GitHub Actions انجام می‌دهد.
  • می‌تواند Issue را بررسی کند.
  • روی Branch تغییر ایجاد کند.
  • برنامه پیاده‌سازی بسازد.
  • در پایان Pull Request باز کند.
  • برای وظایف مستقل و قابل واگذاری مناسب است.

GitHub توضیح می‌دهد که Cloud Agent می‌تواند Repository را بررسی، برنامه‌ریزی و تغییرات را روی Branch ایجاد کند؛ درحالی‌که Agent Mode در IDE مستقیماً در محیط محلی فعالیت دارد. مستندات Copilot Cloud Agent

نصب GitHub Copilot در Visual Studio Code

پیش‌نیازها

  • حساب GitHub
  • نسخه جدید Visual Studio Code
  • دسترسی به یکی از پلن‌های GitHub Copilot
  • اتصال اینترنت
  • پروژه آزمایشی
  • نصب Git در صورت نیاز

مراحل نصب

۱. Visual Studio Code را باز کنید.

۲. وارد بخش Extensions شوید.

۳. عبارت زیر را جست‌وجو کنید:

GitHub Copilot

۴. Extension رسمی GitHub را نصب کنید.

۵. در صورت نمایش Extension مربوط به Chat، آن را نیز مطابق راهنمای نسخه فعلی نصب یا فعال کنید.

۶. روی گزینه Sign in to GitHub کلیک کنید.

۷. مجوز اتصال VS Code به حساب GitHub را تأیید کنید.

۸. یک فایل کد باز کنید.

۹. شروع به نوشتن تابع یا Comment کنید.

GitHub برای VS Code و Visual Studio امکان شروع Copilot Free از داخل محیط برنامه‌نویسی را نیز ارائه کرده است. راهنمای شروع پلن GitHub Copilot

اولین آزمایش GitHub Copilot

یک فایل Python بسازید:

def calculate_cart_total(items, discount_percent=0):

چند لحظه صبر کنید تا Copilot ادامه تابع را پیشنهاد دهد.

قبل از قبول پیشنهاد، این موارد را بررسی کنید:

  • آیا items ساختار مشخصی دارد؟
  • آیا قیمت منفی مجاز است؟
  • تخفیف بیشتر از ۱۰۰ چگونه مدیریت می‌شود؟
  • آیا اعشار پولی با float محاسبه شده است؟
  • آیا ورودی خالی پشتیبانی می‌شود؟
  • آیا تست وجود دارد؟

پیشنهاد هوش مصنوعی ممکن است از نظر Syntax صحیح، اما از نظر منطق کسب‌وکار اشتباه باشد.

نوشتن Comment مؤثر برای Copilot

Comment ضعیف:

# Calculate total

Comment بهتر:

# Calculate the shopping cart total using Decimal.
# Reject negative prices and quantities.
# Apply a discount between 0 and 100 percent.
# Return the final amount rounded to two decimal places.

Comment دقیق‌تر باعث می‌شود Copilot ورودی، محدودیت و خروجی را بهتر درک کند.

آموزش GitHub Copilot Chat

Copilot Chat برای پرسش درباره پروژه، تولید کد، توضیح خطا و برنامه‌ریزی استفاده می‌شود.

نمونه پرسش برای شناخت پروژه

ساختار این Repository را توضیح بده.
Entry Point برنامه کجاست؟
درخواست HTTP از Controller تا Database چه مسیری را طی می‌کند؟
فعلاً هیچ فایلی را تغییر نده.

نمونه پرسش برای رفع خطا

این Endpoint در بار بالا گاهی پاسخ 500 می‌دهد.

انتظار:
همیشه پاسخ JSON معتبر برگردد.

اطلاعات:
- Framework: FastAPI
- Database: PostgreSQL
- ORM: SQLAlchemy
- خطا: connection pool exhausted

ابتدا علت را تحلیل کن.
بعد فایل‌های مرتبط را پیدا کن.
فعلاً کد را تغییر نده.

نمونه پرسش برای Refactor

این Service را بررسی کن و مشکلات آن را فهرست کن.

اهداف:
- کاهش وابستگی مستقیم به Database
- ساده‌ترشدن تست
- حذف کد تکراری
- حفظ API فعلی

ابتدا یک برنامه Refactor بنویس.
پس از تأیید من تغییرات را اعمال کن.

فرمول یک پرامپت حرفه‌ای برای برنامه‌نویسی

پرامپت مناسب بهتر است این بخش‌ها را داشته باشد:

نقش + هدف + Context + محدودیت + معیار پذیرش + روش بررسی

مثال:

نقش:
مانند یک Senior Backend Engineer متخصص FastAPI عمل کن.

هدف:
قابلیت بازیابی رمز عبور را اضافه کن.

Context:
- FastAPI
- PostgreSQL
- SQLAlchemy 2
- Alembic
- Redis
- pytest

محدودیت:
- ساختار فعلی لایه‌ها حفظ شود.
- نام Endpointهای قبلی تغییر نکند.
- وابستگی جدید بدون دلیل اضافه نشود.
- Token بازیابی ۱۵ دقیقه معتبر باشد.

معیار پذیرش:
- درخواست بازیابی همیشه پاسخ عمومی بدهد.
- تست درخواست معتبر و نامعتبر وجود داشته باشد.
- Migration در صورت نیاز ساخته شود.
- تست‌ها اجرا شوند.

روش کار:
ابتدا پروژه را بررسی و Plan ارائه کن.
تا قبل از تأیید من فایل‌ها را تغییر نده.

چرا باید ابتدا Plan بخواهیم؟

وقتی Agent مستقیماً وارد پیاده‌سازی می‌شود، ممکن است معماری را اشتباه بفهمد و تغییرات زیادی ایجاد کند.

جریان کاری بهتر:

Explore → Plan → Review → Implement → Test → Review Diff

پرامپت‌های مرحله‌ای:

ساختار احراز هویت را بررسی کن، اما چیزی را تغییر نده.
برای افزودن ورود با Google یک Plan دقیق بنویس.
Plan را اصلاح کن تا Session فعلی حفظ شود.
حالا مرحله اول Plan را پیاده‌سازی کن.
تست‌ها را اجرا کن و فقط خطاهای مرتبط را رفع کن.

ساخت فایل Custom Instructions

اگر در هر درخواست مجبور هستید Framework، فرمان تست و Conventionهای پروژه را تکرار کنید، یک فایل دستورالعمل Repository بسازید.

مسیر رایج:

.github/copilot-instructions.md

GitHub این فایل را برای تعریف دستورالعمل سراسری Repository پشتیبانی می‌کند. مستندات Custom Instructions در GitHub Copilot

نمونه کامل برای پروژه FastAPI

# Project Overview

This repository is a production FastAPI application.

## Technology Stack

- Python 3.12
- FastAPI
- PostgreSQL
- SQLAlchemy 2
- Alembic
- Redis
- pytest
- Ruff
- mypy

## Architecture

- API routes belong in `app/api`.
- Business logic belongs in `app/services`.
- Database access belongs in `app/repositories`.
- Pydantic schemas belong in `app/schemas`.
- ORM models belong in `app/models`.

Do not place business logic inside route handlers.

## Coding Rules

- Use type hints for public functions.
- Prefer async functions for I/O operations.
- Do not catch broad `Exception` without re-raising or logging.
- Do not add dependencies without explaining why.
- Avoid changing public APIs unless explicitly requested.
- Use UTC for stored timestamps.
- Never hard-code credentials or secrets.

## Database Rules

- All schema changes require an Alembic migration.
- Avoid N+1 queries.
- Transactions must be explicit for multi-step writes.
- Repository methods must not return active query objects.

## Testing

Run:

```bash
pytest -q

Lint with:

ruff check .

Type-check with:

mypy app

Every bug fix must include a regression test.

Definition of Done

Before completing a task:

  1. Run relevant tests.
  2. Run lint checks.
  3. Review the diff.
  4. Summarize changed files.
  5. Report any assumptions or unverified behavior.

این فایل باید کوتاه، دقیق و مطابق واقعیت پروژه باشد. قرار دادن دستورهای متناقض یا منسوخ کیفیت خروجی را کاهش می‌دهد.

## دستورالعمل‌های Path-specific

ممکن است قوانین Frontend و Backend متفاوت باشند. در محیط‌هایی که Path-specific Instructions پشتیبانی می‌شوند، می‌توان فایل‌های دستورالعمل مخصوص مسیر ساخت.

برای مثال:

```text
.github/instructions/backend.instructions.md
.github/instructions/frontend.instructions.md
.github/instructions/tests.instructions.md

نمونه:

---
applyTo: "frontend/**/*.tsx"
---

- Use functional React components.
- Use TypeScript strict mode.
- Do not use `any`.
- Keep data fetching outside presentational components.
- Add accessibility labels to interactive elements.

پشتیبانی دقیق این فایل‌ها به IDE و نسخه Copilot بستگی دارد و باید با جدول پشتیبانی رسمی GitHub بررسی شود. راهنمای پشتیبانی از Custom Instructions

نصب GitHub Copilot CLI

Copilot CLI امکان استفاده از عامل برنامه‌نویسی GitHub داخل Terminal را فراهم می‌کند.

GitHub روش‌های مختلفی برای نصب Copilot CLI ارائه می‌دهد:

  • npm
  • WinGet
  • Homebrew
  • Install Script
  • دانلود فایل اجرایی

براساس مستندات رسمی نصب Copilot CLI، نصب با npm به Node.js 22 یا جدیدتر نیاز دارد.

نصب با npm

npm install -g @github/copilot

بررسی نصب:

copilot --version

نصب در Windows با WinGet

winget install GitHub.Copilot

نصب با Homebrew در macOS یا Linux

brew install --cask copilot-cli

نصب با Script در macOS یا Linux

curl -fsSL https://gh.io/copilot-install | bash

قبل از اجرای Install Script اینترنتی، آدرس و محتوای آن را با مستندات رسمی نسخه فعلی تطبیق دهید.

اجرای Copilot CLI

وارد پوشه پروژه شوید:

cd /path/to/project

Copilot را اجرا کنید:

copilot

در اولین اجرا ممکن است لازم باشد با فرمان زیر وارد حساب GitHub شوید:

/login

Copilot درباره اعتماد به Directory سؤال می‌کند. فقط پوشه‌ای را تأیید کنید که فایل‌های آن را می‌شناسید.

طبق راهنمای استفاده از Copilot CLI، این ابزار در طول Session ممکن است فایل‌های داخل Directory را بخواند، تغییر دهد و فرمان اجرا کند.

نمونه استفاده از Copilot CLI

شناخت پروژه

ساختار این Repository را بررسی کن.
فایل‌های اصلی، فرمان اجرا و جریان درخواست را توضیح بده.
فعلاً هیچ تغییری ایجاد نکن.

پیدا‌کردن خطا

تست‌های مرتبط با ثبت‌نام را اجرا کن.
علت Fail شدن آن‌ها را پیدا کن.
قبل از تغییر فایل‌ها، نتیجه تحلیل را بگو.

تولید Plan

/plan یک قابلیت Pagination استاندارد به Endpoint کاربران اضافه کن.

بررسی تغییرات

تغییرات فعلی Branch را نسبت به main بازبینی کن.
روی Bug، Regression و تست‌های ناقص تمرکز کن.

ساخت تست

برای تغییرات فعلی تست Regression بنویس.
ابتدا تست باید خطا را بازتولید کند.
سپس با کمترین تغییر مشکل را رفع کن.

اتصال Copilot CLI به API درواره

یکی از قابلیت‌های مهم نسخه‌های جدید Copilot CLI، استفاده از Provider اختصاصی یا BYOK است. GitHub اجازه می‌دهد Copilot CLI به Endpointهای سازگار با OpenAI متصل شود.

این قابلیت به‌طور مشخص مربوط به Copilot CLI است. نباید فرض کرد تمام بخش‌های Extension اصلی Copilot در IDE نیز Base URL سفارشی را با همین روش پشتیبانی می‌کنند.

براساس مستندات رسمی BYOK در Copilot CLI، Provider از طریق Environment Variable تنظیم می‌شود.

متغیرهای اصلی:

متغیرکاربرد
COPILOT_PROVIDER_BASE_URLBase URL ارائه‌دهنده مدل
COPILOT_PROVIDER_TYPEنوع Provider
COPILOT_PROVIDER_API_KEYکلید API
COPILOT_MODELشناسه مدل

برای API درواره:

Base URL: https://api.darvareh.ir/v1
Provider Type: openai
API Key: YOUR_DARVAREH_API_KEY
Model: YOUR_MODEL_ID

پیش‌نیاز مدل برای Copilot CLI

مدلی که در Copilot CLI استفاده می‌شود باید:

  • از Streaming پشتیبانی کند.
  • از Tool Calling یا Function Calling پشتیبانی کند.
  • Context کافی برای پروژه داشته باشد.
  • در تولید و ویرایش کد عملکرد مناسبی ارائه دهد.

GitHub برای بهترین نتیجه، Context Window حداقل ۱۲۸ هزار توکن را توصیه می‌کند. اگر مدل Tool Calling یا Streaming را پشتیبانی نکند، Copilot CLI خطا برمی‌گرداند.

برای انتخاب Model ID سازگار و مشاهده مشخصات مدل‌ها، صفحه مدل‌های درواره را بررسی کنید.

اتصال در Linux و macOS

Terminal را باز کنید:

export COPILOT_PROVIDER_BASE_URL="https://api.darvareh.ir/v1"
export COPILOT_PROVIDER_TYPE="openai"
export COPILOT_PROVIDER_API_KEY="YOUR_DARVAREH_API_KEY"
export COPILOT_MODEL="YOUR_MODEL_ID"

سپس وارد پروژه شوید:

cd /path/to/project

Copilot CLI را اجرا کنید:

copilot

این Environment Variableها فقط در همان Shell Session فعال هستند. برای اجرای بعدی باید دوباره تنظیم شوند یا با روش مناسب سیستم‌عامل مدیریت شوند.

اتصال در Windows PowerShell

$env:COPILOT_PROVIDER_BASE_URL = "https://api.darvareh.ir/v1"
$env:COPILOT_PROVIDER_TYPE = "openai"
$env:COPILOT_PROVIDER_API_KEY = "YOUR_DARVAREH_API_KEY"
$env:COPILOT_MODEL = "YOUR_MODEL_ID"

سپس:

cd C:\path\to\project
copilot

برای بررسی مقدار بدون نمایش کلید:

$env:COPILOT_PROVIDER_BASE_URL
$env:COPILOT_PROVIDER_TYPE
$env:COPILOT_MODEL

کلید API را در Screenshot، Log، فایل پروژه یا Repository ذخیره نکنید.

تست اتصال Copilot CLI به درواره

بعد از اجرا، ابتدا یک وظیفه فقط‌خواندنی بدهید:

نام فایل‌های اصلی پروژه را پیدا کن.
Architecture را توضیح بده.
هیچ فایل یا فرمانی را تغییر یا اجرا نکن.

سپس یک وظیفه محدود:

فایل README را بررسی کن و فقط سه پیشنهاد برای بهبود آن بده.
هیچ تغییری اعمال نکن.

در مرحله بعد:

یک فایل آزمایشی با نام example_test.py بساز
که یک تست ساده و مستقل داشته باشد.
قبل از ساخت فایل از من اجازه بگیر.

اگر Model ID نامعتبر، Streaming غیرفعال یا Tool Calling پشتیبانی‌نشده باشد، Copilot CLI ممکن است هنگام شروع یا اجرای Tool خطا نمایش دهد.

برای مشاهده راهنمای Providerها:

copilot help providers

آیا برای BYOK باید وارد GitHub شویم؟

طبق مستندات GitHub، استفاده از Provider اختصاصی در Copilot CLI الزاماً به Authentication گیت‌هاب نیاز ندارد. بااین‌حال، بدون ورود به GitHub بعضی قابلیت‌های متصل به سرویس GitHub در دسترس نیستند؛ از جمله:

  • واگذاری وظیفه با /delegate
  • GitHub MCP Server
  • GitHub Code Search

در حالت BYOK، Prompt، Context کد و پاسخ مستقیماً به Provider انتخاب‌شده ارسال می‌شوند و از مدل‌های میزبانی‌شده GitHub عبور نمی‌کنند. توضیحات Responsible Use برای Provider اختصاصی

اجرای Copilot CLI در حالت Offline

Copilot CLI دارای حالت Offline برای Provider محلی یا On-premises است:

export COPILOT_OFFLINE=true

اما اگر Base URL شما یک Endpoint اینترنتی مانند API درواره باشد، درخواست‌های مدل همچنان به همان Endpoint ارسال می‌شوند. Offline Mode فقط زمانی اجرای کاملاً محلی ایجاد می‌کند که خود Provider نیز داخل همان سیستم یا شبکه ایزوله باشد.

برای اتصال به درواره، Offline Mode را فعال نکنید؛ زیرا درواره یک API آنلاین است.

Plan Mode در Copilot CLI

Plan Mode برای تغییرات چندفایلی و پیچیده مناسب است. براساس راهنمای رسمی Copilot CLI، می‌توان با /plan یا کلید مربوط به تغییر Mode، از Agent خواست پیش از کدنویسی برنامه بسازد. بهترین روش‌های Copilot CLI

نمونه:

/plan سیستم ارسال ایمیل را از اجرای مستقیم داخل Request
به Background Job منتقل کن.

Plan مناسب باید شامل این بخش‌ها باشد:

  • فایل‌های درگیر
  • تغییرات Database
  • سازگاری عقب‌رو
  • Migration
  • تست‌ها
  • Observability
  • Rollback
  • ریسک‌ها

تا زمانی که Plan را بررسی نکرده‌اید، اجازه پیاده‌سازی ندهید.

اتصال Copilot CLI به VS Code

Copilot CLI می‌تواند به Workspace بازشده در VS Code متصل شود. این اتصال امکان استفاده از Context انتخاب‌شده در Editor، نمایش Diff و مشاهده Diagnosticهای VS Code را فراهم می‌کند.

اگر پروژه یکسان در VS Code و Terminal باز باشد، اتصال ممکن است به‌صورت خودکار انجام شود. برای مدیریت اتصال می‌توان از دستور زیر در CLI استفاده کرد:

/ide

طبق مستندات اتصال Copilot CLI به VS Code، تغییرات پیشنهادی CLI می‌توانند به‌صورت Diff کنارهم در VS Code نمایش داده شوند.

استفاده از Copilot برای Test-driven Development

جریان کاری پیشنهادی:

مرحله اول: تعریف رفتار

رفتار مورد انتظار این Bug را به یک تست Regression تبدیل کن.
فعلاً Production Code را تغییر نده.

مرحله دوم: اجرای تست

تست جدید را اجرا کن و تأیید کن که به دلیل Bug فعلی Fail می‌شود.

مرحله سوم: اصلاح محدود

با کمترین تغییر Production Code تست را Pass کن.

مرحله چهارم: اجرای مجموعه تست

تست‌های مرتبط و سپس مجموعه تست کامل را اجرا کن.

مرحله پنجم: بررسی Diff

Diff نهایی را بررسی کن.
هر تغییری که برای رفع Bug ضروری نیست مشخص کن.

این روش از تولید کد زیاد و بدون معیار جلوگیری می‌کند.

استفاده از Copilot برای Code Review

پرامپت عمومی:

کد را بررسی کن.

پرامپت بهتر:

تغییرات Branch فعلی را نسبت به main بررسی کن.

اولویت‌ها:
1. Bug و Regression
2. مدیریت Transaction
3. Race Condition
4. N+1 Query
5. رفتار در Timeout
6. تست‌های ناقص

برای هر مشکل:
- Severity
- فایل و بخش مرتبط
- دلیل
- سناریوی بازتولید
- اصلاح پیشنهادی

از تعریف و تمجید عمومی خودداری کن و فقط Findings عملی بده.

Copilot Code Review می‌تواند Suggestion قابل اعمال ارائه دهد، اما نتیجه باید توسط توسعه‌دهنده بررسی شود.

استفاده از Cloud Agent

Cloud Agent برای این وظایف مناسب است:

  • به‌روزرسانی مستندات
  • افزودن تست به بخش مشخص
  • رفع Issue کوچک و مستقل
  • Refactor محدود
  • تغییر نام کنترل‌شده
  • اصلاح Lint
  • اضافه‌کردن یک قابلیت کوچک با Acceptance Criteria روشن

برای این وظایف مناسب نیست:

  • تصمیم معماری مبهم
  • تغییر گسترده بدون تست
  • Migration حساس
  • مسئله‌ای که نیازمند Context شفاهی تیم است
  • وظیفه‌ای که Acceptance Criteria ندارد
  • تغییراتی که اثر آن‌ها به زیرساخت خارجی ناشناخته وابسته است

نمونه Issue مناسب:

## Goal

Add pagination to `GET /api/users`.

## Requirements

- Accept `page` and `page_size`.
- Default page size: 20.
- Maximum page size: 100.
- Preserve the current response fields.
- Add total count and total pages.
- Add unit and integration tests.
- Update OpenAPI examples.

## Out of Scope

- Cursor pagination
- Changes to other endpoints

## Validation

- Run `pytest tests/api/test_users.py`
- Run `ruff check .`

هرچه Issue دقیق‌تر باشد، احتمال موفقیت Agent بیشتر می‌شود.

Custom Agents در GitHub Copilot

Custom Agent یک نسخه تخصصی از Agent است که نقش، ابزارها و دستورالعمل‌های مشخص دارد.

نمونه Agentهای تیم توسعه:

  • Backend Agent
  • Frontend Agent
  • Test Agent
  • Documentation Agent
  • Database Migration Agent
  • Code Review Agent

یک Custom Agent مناسب باید مشخص کند:

  • چه کاری انجام دهد.
  • چه کاری انجام ندهد.
  • به چه Toolهایی دسترسی داشته باشد.
  • چه فرمان‌هایی را اجرا کند.
  • تعریف Done چیست.
  • خروجی را با چه قالبی ارائه دهد.

GitHub Custom Agentها را به‌عنوان Agentهای تخصصی متناسب با Workflow و استانداردهای تیم معرفی می‌کند. مستندات Custom Agents

Agent Skills در GitHub Copilot

Agent Skill مجموعه‌ای از Instruction، Script و Resource است که Agent هنگام نیاز بارگذاری می‌کند.

ساختار ساده:

skills/
└── create-api-endpoint/
    ├── SKILL.md
    ├── templates/
    └── scripts/

نمونه SKILL.md:

# Create FastAPI Endpoint

Use this skill when adding a new REST endpoint.

## Workflow

1. Inspect similar endpoints.
2. Define request and response schemas.
3. Add service logic.
4. Add repository methods.
5. Add tests.
6. Update OpenAPI examples.
7. Run lint and tests.

## Rules

- Do not put business logic in route handlers.
- Use existing dependency injection patterns.
- Do not introduce a new library without approval.
- Every new endpoint requires tests.

GitHub برای Skill از فایل SKILL.md و منابع اختیاری پشتیبانی می‌کند. راهنمای افزودن Agent Skills

استفاده از MCP در GitHub Copilot

Model Context Protocol یا MCP به Agent اجازه می‌دهد به ابزارها و منابع خارجی متصل شود.

کاربردها:

  • دسترسی به مستندات داخلی
  • جست‌وجوی Issueها
  • خواندن اطلاعات پروژه
  • اتصال به ابزار مدیریت کار
  • اجرای ابزارهای تخصصی
  • دسترسی کنترل‌شده به Database آزمایشی
  • استفاده از Browser Automation در محیط مجاز

GitHub Copilot از MCP برای گسترش قابلیت‌های Agent Mode استفاده می‌کند. راهنمای MCP در GitHub Copilot

دسترسی MCP را محدود نگه دارید. هر Server فقط باید ابزارها و داده‌های ضروری همان وظیفه را ارائه دهد.

قیمت GitHub Copilot

پلن‌ها و شیوه Billing ممکن است تغییر کنند؛ بنابراین برای تصمیم خرید باید صفحه رسمی GitHub را بررسی کنید.

در زمان بررسی این مقاله، پلن‌های فردی شامل موارد زیر هستند:

پلنقیمت ماهانه اعلام‌شده
Copilot Freeرایگان با محدودیت
Copilot Studentرایگان برای دانشجویان تأییدشده
Copilot Pro۱۰ دلار
Copilot Pro+۳۹ دلار
Copilot Max۱۰۰ دلار

پلن‌های سازمانی اعلام‌شده:

پلنقیمت ماهانه به‌ازای هر کاربر
Copilot Business۱۹ دلار
Copilot Enterprise۳۹ دلار

GitHub در سال ۲۰۲۶ Billing را به ساختار مبتنی بر AI Credit و میزان استفاده از مدل‌ها تغییر داده است. قیمت، Credit و قابلیت‌ها ممکن است در آینده تغییر کنند. برای اطلاعات نهایی به صفحه رسمی پلن‌های GitHub Copilot مراجعه کنید.

این قیمت‌ها به API درواره ارتباطی ندارند. قیمت مدل‌های قابل استفاده از طریق درواره را باید در صفحه مدل‌های درواره مشاهده کنید.

Copilot Free چه محدودیت‌هایی دارد؟

براساس مستندات فعلی GitHub، پلن Free دارای تعداد محدود Code Completion و سهمیه محدود تعامل با Chat و Agent است. پلن‌های پولی Completion نامحدود و سهمیه بیشتری از AI Credit ارائه می‌کنند.

پلن Free برای این موارد مناسب است:

  • آشنایی با Inline Completion
  • آزمایش Copilot Chat
  • پروژه‌های کوچک
  • ارزیابی تجربه کاربری

اگر استفاده روزانه، Agent Mode یا مدل‌های پیشرفته نیاز دارید، محدودیت پلن Free ممکن است زودتر تمام شود.

GitHub Copilot یا ابزارهای قابل اتصال به درواره؟

GitHub Copilot برای کاربرانی مناسب است که یکپارچگی عمیق با GitHub و VS Code می‌خواهند. در مقابل، ابزارهایی مانند Cline، Roo Code، OpenCode و بعضی Coding Agentهای دیگر امکان انتخاب مستقیم API و Model ID را با انعطاف بیشتری ارائه می‌کنند.

نکته مهم این است که Copilot CLI اکنون از Provider سفارشی و OpenAI-compatible Endpoint پشتیبانی می‌کند و می‌توان آن را مستقیماً به درواره متصل کرد.

معیارGitHub Copilotابزار قابل تنظیم با API درواره
Inline Completionبسیار خوبوابسته به ابزار
یکپارچگی GitHubبسیار قویمتفاوت
Agent در IDEدارددارد
Cloud Agentداردمعمولاً متفاوت
انتخاب Provider در Extensionمحدودترانعطاف بیشتر
Provider سفارشی در CLIداردمعمولاً دارد
انتخاب Model IDدر BYOK CLI بلهبله
پرداخت ریالی مدلدر Copilot اصلی خیراز طریق درواره
دسترسی به مدل‌های متعددوابسته به Copilotاز طریق درواره
Custom Instructionsدارداغلب دارد
MCPدارددر بسیاری از ابزارها دارد

انتخاب نهایی به Workflow تیم بستگی دارد. ممکن است تیم از Copilot برای Completion و از Copilot CLI متصل به درواره برای وظایف Agentic استفاده کند.

خطاهای رایج GitHub Copilot

Copilot در VS Code پیشنهاد نمی‌دهد

  • ورود به حساب GitHub را بررسی کنید.
  • فعال‌بودن Extension را کنترل کنید.
  • وضعیت پلن را بررسی کنید.
  • زبان فایل را مشخص کنید.
  • VS Code را به‌روزرسانی کنید.
  • Extension را Reload کنید.
  • Log مربوط به Copilot را بررسی کنید.

Copilot Context پروژه را اشتباه می‌فهمد

  • فایل Custom Instructions بسازید.
  • فایل‌های مرتبط را مشخص کنید.
  • ابتدا از Agent بخواهید پروژه را توضیح دهد.
  • Acceptance Criteria بنویسید.
  • وظیفه را کوچک‌تر کنید.
  • Context غیرمرتبط را حذف کنید.

Copilot تغییرات زیادی ایجاد می‌کند

  • ابتدا Plan بخواهید.
  • دامنه فایل‌های مجاز را مشخص کنید.
  • تغییرات را مرحله‌ای انجام دهید.
  • بگویید API عمومی تغییر نکند.
  • Diff را پس از هر مرحله بررسی کنید.
  • از Branch جداگانه استفاده کنید.

Copilot CLI به درواره متصل نمی‌شود

Environment Variableها را بررسی کنید:

echo $COPILOT_PROVIDER_BASE_URL
echo $COPILOT_PROVIDER_TYPE
echo $COPILOT_MODEL

در PowerShell:

$env:COPILOT_PROVIDER_BASE_URL
$env:COPILOT_PROVIDER_TYPE
$env:COPILOT_MODEL

موارد رایج:

  • Base URL اشتباه
  • API Key نامعتبر
  • Model ID اشتباه
  • مدل بدون Tool Calling
  • مدل بدون Streaming
  • Timeout
  • موجودی ناکافی حساب
  • Context موردنیاز بیشتر از ظرفیت مدل

برای دریافت راهنمای داخلی:

copilot help providers

Agent در اجرای Tool خطا می‌دهد

ممکن است مدل پاسخ Tool Call معتبر نسازد یا Tool موردنیاز مجوز نداشته باشد. مدل دیگری با پشتیبانی بهتر Function Calling انتخاب کنید و مجوز Toolها را بررسی کنید.

بهترین روش استفاده حرفه‌ای

وظیفه را محدود کنید

بد:

کل پروژه را بهتر کن.

خوب:

فقط Endpoint ثبت‌نام را بررسی کن.
سه مشکل دارای بیشترین اثر را پیدا کن.
فعلاً هیچ تغییری ایجاد نکن.

معیار پذیرش بدهید

کار زمانی تمام است که:
- تست Regression اضافه شود.
- تمام تست‌های مرتبط Pass شوند.
- API فعلی تغییر نکند.
- Diff فقط شامل فایل‌های مرتبط باشد.

فرمان تست را مشخص کنید

pytest tests/auth -q
ruff check app/auth tests/auth

خروجی را بررسی کنید

  • Diff
  • تست‌ها
  • Migration
  • Dependencyها
  • فایل Lock
  • تنظیمات
  • Error Handling
  • Log
  • مستندات
  • رفتارهای مرزی

Agent را مرحله‌ای جلو ببرید

تحلیل کن → Plan بده → یک مرحله اجرا کن → تست کن → Diff را خلاصه کن

اشتباهات رایج توسعه‌دهندگان

قبول پیشنهاد Inline بدون خواندن

کدی که کامل به نظر می‌رسد ممکن است رفتار مرزی یا منطق تجاری اشتباه داشته باشد.

استفاده از Agent بدون تست

بدون تست، Agent معیار قابل‌اندازه‌گیری برای موفقیت ندارد.

ارسال درخواست مبهم

عبارت‌هایی مانند «بهترش کن» یا «تمیزش کن» دامنه مشخصی ندارند.

نادیده‌گرفتن Custom Instructions

بدون دستورالعمل Repository، Agent ممکن است معماری و Conventionها را حدس بزند.

دادن دسترسی نامحدود

Tool و Directory را متناسب با وظیفه محدود کنید.

تغییر هم‌زمان چند مسئله

هر Session را روی یک هدف مشخص نگه دارید.

استفاده از مدل نامناسب در BYOK

مدلی که Tool Calling یا Context کافی ندارد برای Copilot CLI مناسب نیست، حتی اگر در Chat عمومی عملکرد قابل قبولی داشته باشد.

جایگزین‌کردن کامل Code Review انسانی

Copilot می‌تواند مشکل‌ها را پیدا کند، اما Context محصول و تصمیم‌های معماری تیم را همیشه نمی‌داند.

چک‌لیست راه‌اندازی GitHub Copilot

VS Code

  • Extension رسمی نصب شده است.
  • حساب GitHub متصل است.
  • پلن فعال است.
  • Inline Completion آزمایش شده است.
  • Copilot Chat کار می‌کند.
  • Agent Mode در Workspace آزمایشی تست شده است.

Repository

  • فایل .github/copilot-instructions.md وجود دارد.
  • معماری پروژه توضیح داده شده است.
  • فرمان Build و Test مشخص است.
  • Definition of Done نوشته شده است.
  • قوانین Database و Migration ثبت شده‌اند.
  • اطلاعات محرمانه داخل Instruction نیست.

Copilot CLI

  • CLI از روش رسمی نصب شده است.
  • فرمان copilot اجرا می‌شود.
  • Directory صحیح انتخاب شده است.
  • Plan Mode آزمایش شده است.
  • مجوز Toolها محدود است.
  • Diff پیش از قبول بررسی می‌شود.

اتصال به درواره

  • COPILOT_PROVIDER_BASE_URL تنظیم شده است.
  • Provider Type روی openai قرار دارد.
  • API Key معتبر است.
  • Model ID صحیح است.
  • مدل از Streaming پشتیبانی می‌کند.
  • مدل از Tool Calling پشتیبانی می‌کند.
  • Context مدل برای پروژه کافی است.
  • یک وظیفه فقط‌خواندنی با موفقیت اجرا شده است.
  • کلید API داخل Repository ذخیره نشده است.

پرسش‌های متداول

GitHub Copilot چیست؟

GitHub Copilot یک دستیار و عامل برنامه‌نویسی هوش مصنوعی است که در IDE، GitHub و Terminal برای تکمیل کد، Chat، Refactor، تست، Code Review و اجرای وظایف چندمرحله‌ای استفاده می‌شود.

آیا GitHub Copilot رایگان است؟

Copilot یک پلن Free با استفاده محدود دارد. دانشجویان تأییدشده نیز ممکن است به پلن Student دسترسی داشته باشند. محدودیت‌ها و شرایط باید در صفحه رسمی GitHub بررسی شوند.

GitHub Copilot در چه محیط‌هایی کار می‌کند؟

از VS Code، Visual Studio، JetBrains IDEs، GitHub.com و Copilot CLI پشتیبانی می‌شود. قابلیت‌ها در همه محیط‌ها یکسان نیستند.

Agent Mode چیست؟

Agent Mode حالتی است که Copilot می‌تواند پروژه را بررسی، چند فایل را تغییر و برای تکمیل وظیفه فرمان یا تست اجرا کند.

Copilot Cloud Agent چیست؟

یک Agent ابری است که می‌تواند وظیفه را روی Repository انجام دهد، Branch ایجاد کند و Pull Request بسازد.

آیا GitHub Copilot می‌تواند تست بنویسد؟

بله. کیفیت تست به Context، معیار پذیرش و ساختار پروژه بستگی دارد. تست تولیدشده باید اجرا و بررسی شود.

آیا GitHub Copilot CLI به API سفارشی متصل می‌شود؟

بله. Copilot CLI از BYOK و Providerهای OpenAI-compatible پشتیبانی می‌کند.

آیا می‌توان Copilot CLI را به API درواره متصل کرد؟

بله. با تنظیم COPILOT_PROVIDER_BASE_URL، کلید API و Model ID می‌توان Copilot CLI را به API سازگار با OpenAI درواره متصل کرد.

آیا Extension اصلی Copilot در VS Code نیز با همین روش به درواره متصل می‌شود؟

تنظیم Provider با Environment Variableهای این مقاله مربوط به Copilot CLI است. نباید آن را به تمام قابلیت‌های Extension اصلی VS Code تعمیم داد.

مدل مناسب Copilot CLI چه ویژگی‌هایی دارد؟

مدل باید Streaming و Tool Calling را پشتیبانی کند. GitHub برای نتیجه بهتر Context Window حداقل ۱۲۸ هزار توکن را توصیه می‌کند.

آیا برای استفاده از درواره در Copilot CLI به اشتراک Copilot نیاز داریم؟

BYOK در Copilot CLI می‌تواند بدون GitHub Authentication نیز کار کند، اما برخی قابلیت‌های متصل به GitHub مانند /delegate، GitHub MCP Server و GitHub Code Search در این حالت در دسترس نیستند. شرایط توزیع و استفاده خود CLI ممکن است تغییر کند و باید با مستندات رسمی بررسی شود.

GitHub Copilot بهتر است یا Cline و OpenCode؟

Copilot یکپارچگی عمیق‌تری با GitHub و IDE دارد. ابزارهایی مانند Cline و OpenCode در انتخاب Provider و Model انعطاف زیادی دارند. انتخاب به Workflow، بودجه و نیاز تیم بستگی دارد.

آیا Copilot می‌تواند جایگزین برنامه‌نویس شود؟

خیر. این ابزار می‌تواند سرعت نوشتن، بررسی و تست کد را افزایش دهد، اما تعریف مسئله، معماری، ارزیابی خروجی و مسئولیت کیفیت همچنان بر عهده توسعه‌دهنده است.

جمع‌بندی

GitHub Copilot از یک ابزار تکمیل خودکار کد به یک پلتفرم Agentic برای توسعه نرم‌افزار تبدیل شده است. امروز می‌توان از آن برای پیشنهاد کد، Chat، تولید تست، Refactor، Code Review، کار در Terminal و واگذاری وظیفه به Cloud Agent استفاده کرد.

برای استفاده مؤثر از Copilot:

  • وظیفه را دقیق تعریف کنید.
  • ابتدا از Agent بخواهید پروژه را بررسی کند.
  • برای تغییرات پیچیده Plan بگیرید.
  • Custom Instructions بسازید.
  • Acceptance Criteria مشخص کنید.
  • تست‌ها را اجرا کنید.
  • Diff را قبل از قبول بخوانید.
  • Toolها و Directory را محدود کنید.
  • هر Session را روی یک هدف نگه دارید.

قابلیت BYOK در Copilot CLI اهمیت ویژه‌ای برای توسعه‌دهندگان دارد. با این قابلیت می‌توانید Copilot CLI را به یک Endpoint سازگار با OpenAI متصل و Model ID دلخواه را انتخاب کنید.

برای اتصال Copilot CLI به مدل‌های مختلف، مدیریت یکپارچه API و پرداخت ریالی می‌توانید در درواره ثبت‌نام کنید. برای مشاهده Model ID، قابلیت Tool Calling، Context و قیمت‌های به‌روز نیز صفحه مدل‌های درواره را ببینید.

مقالات مرتبط

برای مطالعه شرایط استفاده و محدودیت‌های مسئولیت، صفحه «سلب مسئولیت» را مشاهده کنید.

Read more

اتوماسیون هوش مصنوعی چیست؟ کاربردها و آموزش ساخت AI Automation

اتوماسیون هوش مصنوعی چیست؟ کاربردها و آموزش ساخت AI Automation

اتوماسیون هوش مصنوعی با ترکیب گردش‌کارهای خودکار و مدل‌های هوش مصنوعی، پردازش متن، دسته‌بندی، استخراج اطلاعات و تصمیم‌های پیشنهادی را خودکار می‌کند. در این راهنما، معماری و ساخت نمونه عملی آن با API درواره را می‌آموزید.

Agentic Commerce چیست؟ آینده خرید با ایجنت هوش مصنوعی

Agentic Commerce چیست؟ آینده خرید با ایجنت هوش مصنوعی

Agentic Commerce شیوه‌ای جدید برای خرید اینترنتی است که در آن ایجنت هوش مصنوعی می‌تواند نیاز کاربر را بفهمد، محصولات را جست‌وجو و مقایسه کند و فرایند خرید را پیش ببرد. در این راهنما با معماری، UCP، ACP و پیاده‌سازی آن با API درواره آشنا می‌شوید.