نقشه‌ی راه یادگیری AI Engineering برای برنامه‌نویس دات‌نت: از اولین API تا ایجنت

پاسخ کوتاه: AI Engineering یعنی ساختن نرم‌افزار قابل‌اعتماد روی مدل‌های زبانی بزرگ (LLM) که از طریق API صدایشان می‌زنید. به این ترتیب یاد بگیرید: اول خود API مدل (توکن، کانتکست، خروجی ساختاریافته)، بعد RAG یا «تولید متن با بازیابی اطلاعات»، بعد MCP یا Model Context Protocol، بعد ایجنت‌هایی که در یک حلقه ابزار صدا می‌زنند، و در آخر Eval؛ تست‌هایی که می‌گویند این‌ها واقعاً کار می‌کنند یا نه. هر مرحله روی مرحله‌ی قبل بنا می‌شود و یک پروژه‌ی کوچک دارد که نشان می‌دهد آن را فهمیده‌اید.

چرا برنامه‌نویس بک‌اند نصف راه را رفته است

بیشتر کار یک قابلیت هوش مصنوعی خود مدل نیست؛ کدی است که دورش نوشته می‌شود: خواندن و تمیز کردن داده، صدا زدن یک API بیرونی که کند است و گاهی خطا می‌دهد، اعتبارسنجی خروجی، لاگ، تلاش دوباره (Retry)، سقف هزینه و تست. این‌ها کار هر روز برنامه‌نویس بک‌اند است.

چیزی که تازه است این است که این API بیرونی قطعی (Deterministic) نیست. یک ورودی ممکن است خروجی‌های متفاوتی بدهد و «درست» بودن اغلب قضاوت است، نه مقایسه‌ی برابری. ترتیب این نقشه‌ی راه طوری است که کنترل این عدم‌قطعیت را قدم‌به‌قدم یاد بگیرید، نه یک‌جا.

مرحله‌ی ۱: API مدل زبانی

یاد بگیرید: توکن چیست، پنجره‌ی کانتکست، System Prompt، خروجی ساختاریافته (JSON مطابق یک Schema)، استریم، دلیل توقف (Stop Reason) و اینکه مصرف توکن چطور به هزینه تبدیل می‌شود.

بسازید: دسته‌بندی‌کننده‌ی ایمیل‌های پشتیبانی که JSON تایپ‌دار و قابل‌اعتماد برمی‌گرداند.

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

مرحله‌ی ۲: RAG

یاد بگیرید: چرا مدل داده‌های خصوصی شما را نمی‌داند، تکه‌تکه کردن متن (Chunking)، Embedding و جست‌وجوی برداری، و اینکه مدل فقط از متن بازیابی‌شده جواب بدهد و به آن ارجاع دهد.

بسازید: «از مستندات بپرس» روی مستندات محصول یا ویکی داخلی خودتان.

RAG رایج‌ترین الگو در محصولات واقعی است، چون مدل عمومی را بدون آموزش دادن به داده‌ی خاص و به‌روز وصل می‌کند. ببینید: RAG در دات‌نت.

مرحله‌ی ۳: MCP

یاد بگیرید: پروتکل بازی که به اپ‌های هوش مصنوعی (ابزار هوش مصنوعی، دستیارهای IDE و غیره) اجازه می‌دهد ابزارها و داده‌هایی را که شما در اختیارشان می‌گذارید پیدا کنند و صدا بزنند؛ تفاوت Tools، Resources و Prompts؛ و انتقال از طریق stdio و HTTP.

بسازید: یک سرور MCP با سی‌شارپ که یک کوئری فقط‌خواندنی روی دیتابیس شما را در اختیار می‌گذارد.

MCP «اتصال سیستم من به یک اپ هوش مصنوعی» را از کد چسب جداگانه برای هر اپ، به یک سرور تبدیل می‌کند که همه‌ی کلاینت‌های MCP می‌توانند از آن استفاده کنند. ببینید: ساخت سرور MCP با سی‌شارپ.

مرحله‌ی ۴: ایجنت‌ها و فراخوانی ابزار

یاد بگیرید: حلقه‌ی استفاده از ابزار (مدل ابزاری را درخواست می‌کند، کد شما اجرایش می‌کند، نتیجه برمی‌گردد)، برگرداندن خطا به مدل، سقف تعداد دور، و نگه داشتن انسان در حلقه برای هر کار برگشت‌ناپذیر.

بسازید: دستیار پشتیبانی که سفارش را پیدا می‌کند و پیش‌نویس پاسخ می‌نویسد، ولی هیچ‌وقت خودش ایمیل نمی‌فرستد یا وجه برنمی‌گرداند.

ایجنت‌ها قدرتمندند و زیاده‌روی در استفاده از آن‌ها آسان است؛ با یک گردش‌کار (Workflow) ثابت شروع کنید و فقط جایی که می‌ارزد اختیار بیشتری بدهید. ببینید: ایجنت‌های هوش مصنوعی و فراخوانی ابزار در دات‌نت.

مرحله‌ی ۵: Eval و محیط عملیاتی

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

بسازید: یک Eval برای یکی از پروژه‌های قبلی که پیش از هر تغییر پرامپت اجرایش کنید.

Eval تست واحد (Unit Test) دنیای AI Engineering است. بدون آن، هر تغییر پرامپت یک حدس است.

اولین فراخوانی با سی‌شارپ

هر مرحله از همین درخواست شروع می‌شود. با dotnet new console یک برنامه‌ی کنسول بسازید، SDK رسمی را با dotnet add package Anthropic اضافه کنید، متغیر محیطی ANTHROPIC_API_KEY را تنظیم کنید و Program.cs را جایگزین کنید:

using Anthropic;
using Anthropic.Models.Messages;

AnthropicClient client = new(); // reads ANTHROPIC_API_KEY

var response = await client.Messages.Create(new MessageCreateParams
{
    Model = "claude-opus-5",
    MaxTokens = 1024,
    System = "You explain backend concepts to .NET developers in three sentences or fewer.",
    Messages = [new UserMessageParam { Content = "What is a context window?" }],
});

foreach (var text in response.Content.Select(b => b.Value).OfType<TextBlock>())
{
    Console.WriteLine(text.Text);
}

Console.WriteLine($"stop: {response.StopReason}, tokens in/out: {response.Usage.InputTokens}/{response.Usage.OutputTokens}");

همین حالا سه چیز را ببینید:

  • System Prompt قواعد را تعیین می‌کند و پیام کاربر ورودی را می‌آورد. این دو را جدا نگه دارید.
  • MaxTokens سقف طول پاسخ است، نه ورودی. اگر پاسخ به آن برسد، StopReason همین را می‌گوید و جواب ناقص است.
  • مصرف توکن (Usage) در هر پاسخ گزارش می‌شود. از روز اول لاگش کنید؛ این همان هزینه‌ی شماست.

چه چیزهایی را اول کار کنار بگذارید

  • آموزش یا Fine-tune کردن مدل. بیشتر مشکلات محصول با کانتکست بهتر (RAG) و دستورالعمل بهتر حل می‌شود، نه با آموزش.
  • فریم‌ورک‌های بزرگ ایجنت. اول حلقه‌ی ابزار را دستی بنویسید؛ حدود صد خط است. بعد می‌فهمید فریم‌ورک دقیقاً چه کاری برایتان می‌کند.
  • دنبال کردن هر مدل جدید. یکی را انتخاب کنید، رفتارش را بشناسید و Eval بسازید. وقتی بتوانید تفاوت را اندازه بگیرید، عوض کردن مدل ارزان است.

مزایا و معایب این ترتیب

مزایا

  • هر مرحله چیزی می‌سازد که به‌تنهایی کار می‌کند؛ هر جا متوقف شوید باز هم ارزشی تحویل داده‌اید.
  • مهارت‌های قابل‌اعتماد کردن خروجی (خروجی ساختاریافته، تکیه بر منبع، Eval) پیش از اختیار دادن به مدل می‌آید؛ همان جایی که بیشتر خرابی‌ها رخ می‌دهد.
  • از دانسته‌های فعلی برنامه‌نویس بک‌اند استفاده می‌کند: API، دیتابیس، تست.

معایب

  • Eval در فهرست آخر آمده، ولی از مرحله‌ی ۱ مفید است؛ وقتی چند نمونه‌ی واقعی دارید، زودتر شروعش کنید.
  • تمرکز روی ساختن با مدل‌های میزبانی‌شده است. اگر کارتان اجرای مدل‌های باز روی GPU خودتان است، یک مرحله‌ی اضافه برای استقرار و استنتاج لازم دارید.

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

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

برای AI Engineer شدن یادگیری ماشین و ریاضی لازم است؟

برای شروع نه. AI Engineering بیشتر مهندسی نرم‌افزار است حول مدلی که از طریق API صدا می‌زنید؛ پس کار با داده، API، تست و کنترل هزینه از آموزش مدل مهم‌تر است. آمار پایه بعداً، هنگام سنجش کیفیت، به کار می‌آید.

اول باید پایتون یاد بگیرم؟

برای خواندن نمونه‌ها مفید است ولی لازم نیست. SDKهای رسمی، از جمله SDK شرکت Anthropic و SDK پروتکل MCP، برای سی‌شارپ هم وجود دارند و همه‌ی مراحل این نقشه‌ی راه را می‌شود با دات‌نت ساخت.

این نقشه‌ی راه چقدر زمان می‌برد؟

با روزی یکی دو ساعت، حدود دو تا سه ماه برای گذراندن همه‌ی مراحل و ساختن پروژه‌ی کوچک هر کدام. ترتیب مراحل از سرعت مهم‌تر است.