🧭

مروری بر Cursor و Agent در کدنویسی

Nov 8, 2025

Overview

  • جلسه درباره Cursor و برنامه‌نویسی Agentic-AI؛ تاریخچه ابزارها، تفاوت‌ها، شیوه استفاده مؤثر، و دموی کدنویسی عملی.
  • تمرکز بر مدیریت کانتکست، نقش ایجنت‌ها، تنظیمات، هزینه‌ها، الگوهای کارآمد، و توصیه‌های مهارتی برای جونیورها و سینیورها.

تاریخچه ابزارها و تکامل برنامه‌نویسی با AI

  • شروع از ویرایشگرها و Auto-complete ساده؛ Kite AI نمونه اولیه (تا حدود 2021).
  • ظهور LLMها (ChatGPT در نوامبر 2022) و جهش کیفیت پیشنهادهای کد.
  • VS Code با Copilot پیشگام شد اما کند در ادغام LLMهای عمیق.
  • Cursor فورک VS Code با ادغام سریع LLM و Agent؛ رشد پذیرش و درآمد سریع.

تفاوت Auto-complete، LLM و Agent

  • Auto-complete: ادامه متن و الگوهای کوتاه؛ بدون درک عمیق یا اقدام.
  • LLM (Ask): پاسخ متنی، جست‌وجو وب در صورت افزودن افزونه؛ بدون تغییر فایل‌ها.
  • Agent: LLM با Function Calling؛ می‌خواند، ویرایش می‌کند، فایل می‌سازد/جابجا می‌کند، اسکریپت اجرا می‌کند.

راه‌اندازی و محیط Cursor

  • Cursor فورک VS Code است؛ منحنی یادگیری تقریباً صفر؛ تنظیمات VS Code قابل استفاده.
  • شورتکات‌ها: Command+B پنل کناری، Command+J ترمینال، Command+L مد Ask، Command+I مد Agent، تب‌های چندگانه برای جریان‌های جدا.
  • Context: افزودن فایل/بازه خطوط/ترمینال به کانتکست با Add Context؛ گزینش دقیق برای جلوگیری از آشفتگی.

انتخاب مدل‌ها و هزینه‌ها

  • انتخاب مدل از داخل Cursor؛ Auto برای انتخاب خودکار یا Max برای کیفیت بالاتر.
  • پلن پایه 20 دلار محدودیت دارد؛ استفاده سنگین می‌تواند هزینه ماهانه را زیاد کند.
  • امکان افزودن API Key شخصی (مثلاً OpenAI/OpenRouter) برای بیلینگ جدا از Cursor.

MCP و ایندکسینگ

  • MCP: Model Context Protocol؛ استانداردسازی تعریف/دسترسی ابزارها روی سرور برای ایجنت‌ها.
  • ایندکسینگ: فهرست‌سازی فایل‌ها برای جست‌وجوی کارآمد؛ فایل‌های حجیم/دیتاست‌ها معمولاً نادیده گرفته می‌شوند؛ نقش کلیدی در کارایی Agent.

مدیریت کانتکست و قواعد (Rules)

  • کانتکست کوچک و دقیق نگه دارید؛ از اضافه‌بار جلوگیری کنید.
  • افزودن Rules سراسری/پروژه‌ای: Keep it simple، Don’t add unnecessary code، اجتناب از trailing spaces، Newline انتهای فایل.
  • Disable/Enable مدل‌ها، افزودن کلیدهای API، سفارشی‌سازی رفتار Agent.

الگوی کار با Ask و Agent

  • Ask: پرسش مفهومی، توضیح کد ناآشنا، بررسی معماری و تصمیم‌ها.
  • Agent: اعمال تغییرات، ساخت فایل‌ها/پروژه، ریفکتور و اجرای اسکریپت‌ها.
  • جابه‌جایی آگاهانه بین مودها؛ تب جدید برای مراحل تازه؛ پرهیز از هدردادن توکن با تاریخچه گیج‌کننده.

بازبینی تغییرات و کنترل نسخه داخلی Cursor

  • نمایش Diff فایل‌های تغییر یافته؛ Accept/Reject تکی یا مرحله‌ای.
  • Review Next File برای مرور دنباله‌دار در پروژه‌های بزرگ.
  • Undo (Ctrl+Z) برای بازگشت؛ Restore Checkpoint و Revert برای مدیریت مسیر تغییرات.

بهترین شیوه‌های پرامپت و تعامل با Agent

  • شروع با دستور شفاف، جامع، و ساده؛ اگر انحراف رخ داد، از ابتدا با پرامپت بهتر.
  • نپرسیدن سؤالات لید‌کننده؛ درخواست مزایا/معایب و ارزیابی بی‌طرفانه.
  • Open-ended بگذارید تا ایده‌های بهتر بیاید؛ سپس ارزیابی و پالایش.
  • افزودن نمونه قواعد: use loguru for logging، follow best practices.

نکات فنی و سبک کدنویسی

  • اجتناب از کد اضافی؛ ساده‌سازی تدریجی؛ حذف try/except غیرضروری برای اسکریپت‌های ساده.
  • رعایت سبک: بدون trailing spaces؛ newline انتهای فایل؛ ساختاردهی پوشه‌ها و ماژول‌ها.
  • استفاده از اکستنشن‌های کاربردی (مثلاً نمایش trailing spaces).

دمو: اسکریپت خواندن فایل

  • تعریف هدف: خواندن فایل myfile.txt با اسکریپت پایتونی.
  • Agent: ساخت فولدر scripts، تولید read_file.py، ارائه مثال اجرا.
  • بازبینی کد، ساده‌سازی، حذف بخش‌های غیرضروری، آزمون در ترمینال.

دمو: ایجاد پروژه FastAPI تولیدی

  • هدف: دو اندپوینت health check و query llm؛ داشتن requirements و تولید آماده.
  • Agent: ایجاد ساختار app، routers، schemas، config، LLM client؛ به‌روزکردن README و ساختار پروژه.
  • تمیزکاری: ادغام main.py، استفاده از Routers، ریفکتور برای کد تمیز.
  • اجرا: pip install -r requirements.txt، تنظیم .env و OpenRouter API Key، uvicorn main:app --reload.
  • تست: /docs، اندپوینت /health و /query؛ تعیین مدل OpenRouter (مثلاً gpt-4o-mini).

سنجش کیفیت و یادگیری

  • کدهای AI اغلب مستندسازی خوب دارند؛ مرور دقیق و فهم بخش‌به‌بخش ضروری است.
  • پروژه‌های بزرگ: افزودن فولدرها به کانتکست، مشخص‌سازی ناحیه تغییر، ارزیابی گام‌به‌گام.
  • کیفیت مدل‌ها در پایتون بالاست؛ در زبان‌های کمتر رایج، دقت پایین‌تر.

توصیه‌های استفاده حرفه‌ای و استخدام

  • در مصاحبه‌ها: استفاده از LLM مجاز/مطلوب؛ نحوه استفاده و بازبینی کد اهمیت دارد.
  • پرهیز از Accept سریع و اجرای بی‌مرور؛ نشانه هشدار در ارزیابی.
  • مستندسازی خودکار (README، ساختار پروژه) مزیت بزرگ در کار تیمی.

رشد فردی: جونیور تا سینیور

  • جونیورها: بیشتر کار کنید تا مسیر اسمارت را کشف کنید؛ صرفاً Work smarter شعار کافی نیست.
  • تمرین مدیریت کانتکست، بازبینی دقیق، پرسش‌گری در مود Ask؛ یادگیری معماری با تکرار.
  • سینیورها: تعادل کیفیت/بهره‌وری، کنترل پرامپت، ساده‌سازی، و هدایت Agent.

خطاهای رایج و راه‌حل‌ها

  • کانتکست بزرگ و مبهم: از ابتدا جمع‌بندی روشن بدهید یا تب جدید آغاز کنید.
  • بهینه‌سازی زودهنگام/کد اضافه: Ruleهای سادگی و حذف افزوده‌ها را فعال کنید.
  • تمایل Agent به تغییرات بزرگ: درخواست حل بخش کوچک، ارزیابی، سپس گسترش.

جدول شورتکات‌ها و مودها

عملکردشورتکاتتوضیح
باز/بستن سایدبارCommand+Bمدیریت پنل کناری فایل‌ها و اکسپلورر
باز/بستن ترمینالCommand+J یا Control+`اجرای دستورات و مشاهده لاگ‌ها
ورود به AskCommand+Lپرسش مفهومی/توضیح، بدون ویرایش فایل
ورود به AgentCommand+Iاعمال تغییرات، ساخت/ویرایش فایل‌ها
تب جدیدCommand+Tشروع جریان تازه با تاریخچه جدا
Undo تغییراتCtrl+Zبازگشت به تغییر قبلی در ادیتور
Review Next File-مرور ترتیبی Diffها در پروژه‌های بزرگ

جدول گام‌های ایجاد پروژه FastAPI

گامشرحنکته کلیدی
1تعریف نیازمندی‌ها (اندپوینت‌ها، تولید آماده)پرامپت شفاف و کامل
2Agent ساختاردهی پروژهپوشه app، routers، schemas، config
3کلاینت LLM (OpenRouter)تعیین مدل و API Key
4نصب وابستگی‌هاpip install -r requirements.txt
5تنظیم محیط.env و متغیر OPENROUTER_API_KEY
6اجراuvicorn main:app --reload
7تست و مستندسازی/docs و به‌روزرسانی README خودکار

نکات هزینه و بهینگی

  • مود Max کیفیت بالا ولی پرهزینه؛ فقط برای تسک‌های حساس.
  • استفاده از کلیدهای شخصی برای کاهش هزینه Cursor.
  • پرهیز از ران‌های متعدد بی‌هدف؛ ارزیابی پاسخ و تکرار معنادار.

Action Items / Next Steps

  • تنظیم Rules پروژه: سادگی، حذف کد اضافی، سبک قالب‌بندی (newline، no trailing spaces).
  • تمرین گردش کار Ask/Agent با تب‌های مجزا؛ شروع از پرامپت جامع.
  • افزودن کلیدهای API (OpenRouter/OpenAI) و انتخاب مدل مناسب.
  • مدیریت کانتکست: افزودن خطوط/فایل‌های مرتبط، حذف موارد غیرلازم.
  • مرور Diffها و مستندات؛ پذیرش مرحله‌ای تغییرات پس از ارزیابی.