iAct

Act on Ai

ساخت اپ ردیاب اسپرسو با Kilo Code (مدل رایگان) و AI Pass Spaces


ساخت اپ ردیاب اسپرسو با Kilo Code (مدل رایگان) و AI Pass Spaces
https://www.youtube.com/watch?v=mw0WH6eAzz4

چند روز پیش زیرِ یکی از ویدیوها ازم خواستین یه آموزش با Kilo Code هم بذارم. حقیقتش خودمِ من تا اون لحظه Kilo Code رو حتی نصب هم نکرده بودم — فقط اسمشو شنیده بودم. برای همین به‌جای اینکه برم از قبل تمرین کنم و بعد فیلم بگیرم، تصمیم گرفتم اولین‌بارِ واقعی رو جلوی دوربین انجام بدم: با هم نصبش کنیم، ببینیم مدل‌های رایگانش چیه، و در همون حین یه قابلیتِ تازه‌ی AI Pass Spaces رو هم امتحان کنیم — یه دیتابیسِ ساده که تازه بهش اضافه شده. برای تستِ واقعی، به‌جای یه اپِ الکی، رفتم سراغِ یه مشکلِ واقعیِ خودم: ردیابیِ شات‌های اسپرسو.

Kilo Code چیه، و چرا فرقی با بقیه ایجنت‌ها نداره

اولین چیزی که باید بدونی اینه که Kilo Code یه اپِ مستقل نیست. یه اکستنشنِ VS Code هستش — یعنی نصبش دقیقاً مثلِ نصبِ هر پلاگینِ دیگه‌ای روی VS Code‌ ئه، از همون Marketplace. بعضیا فکر می‌کنن باید یه چیزِ جدا دانلود کنن، ولی نه؛ کافیه VS Code داشته باشی.

از نظرِ معماری هم هیچ فرقِ بنیادینی با Claude Code یا Codex CLI نداره: یه لوپه که پرامپتِ تو رو می‌گیره، تصمیم می‌گیره چه ابزاری صدا بزنه (خوندنِ فایل، نوشتنِ فایل، اجرای ترمینال)، نتیجه رو می‌بینه، و دوباره تصمیم می‌گیره — تا کارش تموم بشه. این حلقه (agent loop) توی همه‌ی این ابزارها تقریباً یکیه. چیزی که واقعاً فرق می‌کنه، مدلیه که پشتِ این حلقه نشسته. Kilo Code هم مثلِ خیلی از این ابزارها بهت اجازه می‌ده مدل رو عوض کنی — از جمله چندتا مدلِ رایگان که موقعِ تست، دو تاش (از جمله یه نسخه از GLM) در دسترس بود.

برای وصل‌کردنش از AI Pass استفاده کردم: یه API Key ساختم، کپی کردم توی تنظیماتِ Kilo Code، و دیگه لازم نبود مستقیم برم اکانتِ یه شرکتِ دیگه بسازم.

چرا اسپرسو؟ یه مشکلِ واقعی که هوش مصنوعی می‌تونه کمک کنه

این روزها زیاد رفتم سراغِ درست‌کردنِ اسپرسو خونگی، و اگه خودت هم امتحان کرده باشی می‌دونی چقدر متغیر توش دخیله: چند گرم قهوه می‌ریزی داخلِ پرتافیلتر (dose)، دونه‌ها رو چقدر ریز آسیاب می‌کنی (grind size)، آبِ دستگاه چند درجه‌ست، چقدر طول می‌کشه تا قهوه بیرون بیاد، و چقدر قهوه در نهایت توی فنجونت جمع می‌شه (yield).

قاعده‌ی رایجی که خیلیا استفاده می‌کنن اینه: یه نسبتِ حدودِ ۱ به ۲ بینِ دُز و خروجی — مثلاً ۱۸ گرم پودر، ۳۶ گرم قهوه‌ی خروجی — و این کار باید یه‌جایی بینِ ۲۵ تا ۳۰ ثانیه اتفاق بیفته. اگه زمان خیلی کوتاه‌تر از این بازه بود (مثلاً ۲۲ ثانیه، دقیقاً همون چیزی که توی ویدیو برام پیش اومد)، یعنی آب خیلی سریع از قهوه رد شده و «under-extracted» شدی؛ نتیجه‌ش معمولاً طعمِ ترش و تیزه. راه‌حلش این نیست که وقتِ بیشتری صبر کنی، بلکه باید گریندِ ریزتری بزنی تا آب کندتر رد بشه. برعکسش هم هست: اگه شات خیلی طول بکشه یا تلخ دربیاد، معمولاً «over-extracted» شدی و باید گریند رو درشت‌تر کنی.

نکته اینجاست که این حلقه‌ی «امتحان کن → طعم بگیر → یه پارامتر رو کمی عوض کن → دوباره امتحان کن» دقیقاً همون چیزیه که یه دستیارِ هوش مصنوعی می‌تونه توش کمک کنه: تو فقط دیتا رو وارد می‌کنی و طعم رو توصیف می‌کنی، و مدل بر اساسِ اصولِ بالا بهت می‌گه دفعه‌ی بعد چی رو عوض کنی.

چرا این اپ قبلاً با AI Pass ممکن نبود

اینجاست که قابلیتِ تازه‌ی Spaces وارد می‌شه. تا همین اواخر، اپ‌هایی که روی AI Pass Spaces می‌ساختی جایی برای نگه‌داشتنِ دیتای کاربر نداشتن — یعنی هر بار که می‌بستی و دوباره باز می‌کردی، همه‌چیز از صفر شروع می‌شد. برای یه اپِ ردیابِ شات که کل ارزشش توی تاریخچه‌ست (بدونِ تاریخچه، نمی‌تونی مقایسه کنی که دیروز چیکار کردی که امروز بهتر شد)، این یه مانعِ اساسی بود.

فیچرِ جدید یه دیتابیسِ خیلی ساده به Spaces اضافه کرده: برای هر یوزر و هر اپ، یه فایلِ JSON ذخیره می‌شه — نه یه دیتابیسِ SQL با کوئری‌های پیچیده، فقط یه ساختارِ ساده که می‌تونی توش هر چیزی (تنظیمات، لیستِ شات‌ها، هر چی) نگه داری. برای کاری مثلِ ردیابیِ اسپرسو (یا هر اپِ شخصیِ کوچیک دیگه‌ای) دقیقاً کافیه، و چون به هویتِ یوزرِ AI Pass وصله، حتی اگه لاگ‌اوت کنی و دوباره لاگین کنی، دیتات سرِ جاشه.

روندِ کار: از پرامپت تا اپِ اول

قبل از اینکه هر چیزی بخوام بسازم، اول به ایجنت گفتم بره مستندات و اسکیلِ AI Pass Spaces رو بخونه و بفهمه اصلاً این پلتفرم چطور کار می‌کنه — این کاریه که همیشه انجام می‌دم، چون مدل‌ها معمولاً چند ماه قبل آموزش دیدن و از فیچرهای تازه خبر ندارن؛ اگه اول داکیومنتِ به‌روز رو بهش ندی، داره حدس می‌زنه.

بعد ایده‌ی اپ رو بهش گفتم: می‌خوام برای هر شات، اسمِ دونه‌ی قهوه، تاریخِ رُست، گرایندسایز، دُز، دما، زمان و طعم رو ثبت کنم؛ می‌خوام یه تایمر توی خودِ اپ باشه که استارت/استاپ کنم؛ نسبت (ratio) رو خودش حساب کنه؛ و در آخر بر اساسِ طعم بهم پیشنهاد بده. ایجنت هم چندتا سؤالِ تکمیلی پرسید (مثلاً چه‌جوری می‌خوای تاریخچه رو ببینی — لیست، نمودار، تقویم؟) و بعد یه پلن نوشت.

نتیجه‌ی اول: مدلِ رایگان، اما با دردسر

اینجا رسیدیم به نکته‌ی اصلیِ ویدیو. مدلی که پشتِ Kilo Code بود (یکی از مدل‌های رایگان، شبیهِ GLM) خیلی سریع جواب می‌داد — این رو واقعاً دوست داشتم، چون سرعت باعث می‌شه راحت‌تر چندبار تکرار کنی. ولی سرعت همه‌چیز نیست: بعد از اولین اجرا، دکمه‌ی start تایمر کار نمی‌کرد، و نمی‌تونستم زمان رو دستی هم وارد کنم. مجبور شدم چندبار برگردم و توضیح بدم دقیقاً چی خرابه تا درست بشه.

این تجربه یه چیزی رو برام روشن کرد: خودِ ایجنتِ Kilo Code بد نیست — ساختارش شبیهِ ایجنتِ Claude Code‌ ئه و منطقاً باید بتونه کارِ مشابهی انجام بده. مشکل از مدل بود، نه از ایجنت. وقتی از مدل‌های قوی‌تر (مثلِ خانواده‌ی Claude) استفاده می‌کنی، همون پرامپتِ اول معمولاً با دردسرِ کمتری جواب می‌ده. با مدلِ رایگان، باید حساب کنی که چندبار باید رفت‌وبرگشت کنی تا به نتیجه‌ی درست برسی.

مدل مهم‌تره یا ایجنت؟

این سؤالی‌یه که خیلیا می‌پرسن: باید کدوم ابزار (Claude Code، Kilo Code، Codex، …) رو انتخاب کنم؟ بعد از این تجربه، جوابم اینه: مدل مهم‌تر از ایجنته. اگه یه مدلِ یکسان رو پشتِ چند تا ایجنتِ مختلف بذاری و یه پرامپتِ ثابت بفرستی (که خیلیا دقیقاً همین بنچمارک‌ها رو انجام می‌دن)، خروجی‌ها معمولاً بهم نزدیک‌ترن تا وقتی که همون یه ایجنت رو با چند مدلِ مختلف تست کنی. یعنی انتخابِ ایجنت بیشتر به این برمی‌گرده که شخصاً کدوم رابط‌کاربری برات راحت‌تره، پلن‌های قیمتی‌ش چیه، و چه مدل‌هایی رو در اختیارت می‌ذاره — نه اینکه یکی «ذاتاً» باهوش‌تر از بقیه باشه.

نتیجه‌ی عملی‌ش هم اینه: اگه دسترسی داری و از نظرِ مالی برات مقدور هست، هزینه‌کردن برای یه مدلِ بهتر واقعاً وقتِ تو رو ذخیره می‌کنه. اگه دسترسی سخته — مثلاً بعضی‌ها گزارش دادن که اکانتِ Claude‌شون از ایران بسته شده — مدل‌های رایگان یه شروعِ کاملاً معتبرن، فقط باید برای رفت‌وبرگشتِ بیشتر آماده باشی.

اپِ نهایی: کار کرد، ولی صادقانه بگم

بعد از چندتا رفت‌وبرگشت، اپ به جایی رسید که واقعاً کار می‌کرد: یه شات رو با تایمر ثبت کردم (دونه‌ی برزیل، گرایندسایز ۲.۱، ۱۸ گرم دُز، ۲۲ ثانیه، ۳۶ گرم خروجی)، طعم رو نوشتم «کمی ترش»، و مدل دقیقاً همون توصیه‌ی درست رو داد: گرایند رو یکی‌دو کلیک ریزتر کن. شاتِ بعدی رو با همون پیشنهاد امتحان کردم — نتیجه به‌مراتب متعادل‌تر و شیرین‌تر بود، دقیقاً همون‌طور که تئوریِ استخراج پیش‌بینی می‌کرد.

با این‌حال چندجا هم گیر داشت — مثلاً وقتی سه‌تا خواسته رو تو یه پرامپتِ بلند بهش دادم، گیج شد و بعضی‌ها رو جا انداخت؛ وقتی هرکدوم رو جدا جدا خواستم، بهتر جواب داد. این خودش یه درسِ کوچیکِ دیگه‌ست: با مدل‌های رایگان و سریع، بهتره درخواست‌ها رو تکه‌تکه بدی تا یه‌جا همه‌چیزو بریزی روش.

جمع‌بندی

هدفِ این ویدیو صرفاً معرفیِ Kilo Code نبود؛ می‌خواستم نشون بدم قابلیتِ تازه‌ی ذخیره‌سازیِ دیتا در AI Pass Spaces چه دری رو باز می‌کنه: حالا می‌شه اپ‌های شخصیِ کوچیک ساخت که واقعاً «به‌خاطر می‌سپارن» — بدون اینکه لازم باشه خودت بک‌اند و دیتابیس راه بندازی. و اگه دنبالِ اولین تجربه‌ت با یه ایجنتِ کدنویسیِ رایگان هستی، Kilo Code گزینه‌ی به‌دردبخوریه — فقط توقع نداشته باش با یه پرامپت همه‌چی یک‌باره درست بشه؛ این به مدلی که پشتشه بستگی داره، نه به خودِ ابزار.


دیدگاهتان را بنویسید