تا قبل از AI SDK 5، بیشتر انتزاعهای AI که به اپ Next.js میچسباندیم برای من بوی دمو میدادند. یک لفاف چت، یک هوک که متن را روی صفحه میریخت، و هیچ جای روشنی برای این سوال که قانون محصول کجا مینشیند. اواخر ژوئیه ۲۰۲۵ که نسخه ۵ منتشر شد، حس من این نبود که یک قابلیت درخشان اضافه شده. حس این بود که ارگونومی ساخت محصول بالاخره عملی شده. تولید، استریم، ابزار، و پاسخ ساختیافته بهجای اینکه هر کدام یک پروژه جانبی باشند، شکل قابل نگهداری پیدا کرده بودند.
امروز نسخههای بعدی همین خط را بالغتر کردهاند. اگر روی نسخه جدیدتری هستی، ۵ را هدف استقرار ندان. درس آن نسخه هنوز هدف است: انتزاعی که مسیر سالم را کوتاه کند، نه فریمورکی که بهجایت معماری انتخاب کند. جزئیات نام تابع بین نسخهها عوض شده. اگر کد را از حافظه نسخه ۵ کپی کنی، احتمال دارد با SDK فعلی نخواند. مفهوم را بردار، امضا را از همان نسخهای بخوان که در قفل وابستگی است.
لایه نازک، نه فریمورک جادویی
SDK وقتی برای من باارزش است که لایه محصول نازک بماند. ارائهدهنده را یکشکل کند تا عوض کردن مدل، بازنویسی UI نباشد. پاسخ استریم را طوری به کلاینت بدهد که رابط درباره وضعیت دروغ نگوید. ابزار و خروجی ساختیافته را از پراکنده شدن در چند مسیر باز دارد. همین.
قانون کسبوکار، دسترسی به داده، و مجوز در بقیه اپ میمانند. SDK نباید بداند کاربر حق دیدن کدام سند را دارد. نباید تراکنش دیتابیس را تمام کند. نباید تصمیم بگیرد یک عمل برگشتناپذیر اجرا شود یا نه. اینها اگر داخل پرامپت یا داخل «یک تابع جادویی تولید» بروند، دیگر قابل بازبینی نیستند.
جور بودن با الگوی React و Next.js بخش دیگر بلوغ بود. مسیر سرور مالک فراخوانی مدل است. کامپوننت وضعیت استریم را نشان میدهد، نه اینکه خودش کلید را نگه دارد. این تقسیم اگر در نسخه ۵ قابل بیان شد، بهخاطر این است که دیگر مجبور نبودی برای هر صفحه یک پروتکل شخصی بین بدنه خام و رابط اختراع کنی. اختراع پروتکل شخصی همان جایی است که تیم دومین نفر را از دست میدهد، چون فقط نویسنده اول یادش مانده کدام خط، توکن است و کدام خط، خطا.
چه چیزی آسانتر شد و چه چیزی نه
آسانتر شد اینکه یک فیچر کوچک را بدون سه کتابخانه ناسازگار به صفحه برسانی. استریم، تعویض مدل، و شکل پاسخ کمتر به چسب محلی نیاز داشتند. امنتر نشد بهمعنی ایمنی محصول. امنتر شد بهمعنی اینکه مسیر پیشفرض کمتر تو را هل میداد همه چیز را در یک رشته پرامپت قایم کنی. هنوز باید خودت سقف، تلاش دوباره، و مسیر جایگزین را طراحی کنی.
سخت ماند همان تصمیمهایی که هیچ SDKای نباید از تو بگیرد. این فیچر اصلاً مدل میخواهد یا یک قاعده کافی است. خروجی باید ذخیره شود یا فقط نمایش. شکست مدل برای کاربر چه شکلی است. کدام فراخوانی آنقدر گران است که نباید با هر بار زدن کلید تکرار شود. اگر اینها را به امید «نسخه جدید هندل میکند» رها کنی، انتزاع بهانه شده.
از نگاه روزانه، اثرش در تیکت دیده میشود نه در پست انتشار. یک مسیر که قبلاً همزمان و شکننده بود میتواند استریم شود، به شرطی که UI وضعیت را نشان بدهد. یک راهحل موقتی که بدنه مدل را با عبارت باقاعده پارس میکرد میتواند حذف شود، به شرطی که schema واقعاً مالک خروجی باشد. اگر بعد از ارتقا هنوز همان پارس را داری، SDK را مصرف نکردهای. فقط وابستگی را سنگین کردهای.
انتزاع جای تصمیم معماری را نمیگیرد
خطر اصلی هر SDK همین است که با آن از تصمیم فرار کنی. مدل داده مبهم، پرامپت بینسخه، و مشاهدهای که تا «دمو کار کرد» ادامه دارد، با ارتقا حل نمیشوند. ارتقا فقط مسیر سالم را، وقتی بقیه سیستم عمدی طراحی شده، ارزانتر میکند.
نشانهای که مسیر ناسالم است: نمیتوانی بگویی کدام فراخوانی گران است و چرا. یا UI مستقیماً چیزی را صدا میزند که باید از مسیر سرور و با مجوز رد شود. یا تعویض ارائهدهنده یعنی دست زدن به ده کامپوننت، چون لایه نازک را دور نزدهای و هر صفحه клиент خودش را ساخته. در این وضعیت AI SDK 5، یا هر نسخه بعدش، فقط آشفتگی را مرتبتر نشان میدهد.
کاری که همان هفته میکنم کوچک است. یک گردش کار که این شکل، اصطکاکش را کم میکند. مرز ابزار را روی کاغذ مینویسم. خروجی را تایپدار میکنم. لاگ را طوری میگذارم که شکست، تأخیر، و اینکه اصلاً مدل صدا زده شد از هم جدا باشند. اگر این سه تا بهتر نشد، جاهطلبی تازه اضافه نمیکنم.
نسخه را با بلوغ محصول عوض نکن
شماره ۵ برای من نقطه عطف اعتماد بود، نه خط پایان. نسخههای بعد حلقه ابزار، تأیید، و بلوغ را جلوتر بردند. اگر امروز مهاجرت میکنی، دلیل مهاجرت باید یک درد مشخص باشد: حلقهای که خودت نگهداریاش گران شده، یا مرزی که SDK حالا صریحتر از کد تو بیان میکند. دلیل مهاجرت نباید این باشد که شماره بزرگتر در عنوان مقاله آمده.
پیشفرضهای نسخه را هم ارث نبر بدون خواندن. سقف گام، شکل پیام UI، و معنای «ابزار» بین نسخهها جابهجا شدهاند. چیزی که در ۵ قابل قبول بود شاید در نسخه فعلی یا خیلی تنگ باشد یا خیلی باز. بودجه را از مستندات کپی نکن. از کاری کپی کن که کاربر واقعاً در آن مسیر انجام میدهد.
و پرامپت پهن را به داخل SDK قایم نکن به این امید که چون جای رسمیتری است، طراحی شده. جای رسمی فقط یعنی بقیه تیم پیدایش میکنند. اگر هنوز یک دستور همهکاره است، رسمی بودنش اوضاع را بدتر میکند، چون حذفش دیگر «یک آزمایش» نیست. جزئی از چارچوب به نظر میرسد.
AI SDK 5 قول میانبر دور طراحی محصول نداد. اصطکاک کار تکراری را کم کرد تا وقت تیم صرف گردش کار شود. همان را هنوز از هر نسخهای که اجرا میکنی میخواهم. اگر انتزاع تو را وادار کند قانون کسبوکار را به مدل بسپاری، انتزاع غلطی است، حتی اگر اولین بار باشد که از کار کردنش لذت بردهای.