← بازگشت به صفحه اصلی

تجربه‌ی واقعی: راه‌اندازی Agentic Workflow روی موزونی

این مقاله بخش پنجم و آخر مجموعه‌ی GitHub‌ه، و با بقیه‌ی مقاله‌ها یه فرق اساسی داره: اینجا تئوری نیست. این دقیقاً چیزیه که موقع تلاش برای خودکار کردن نگهداری همین سایت باهاش روبه‌رو شدیم — با همه‌ی دست‌اندازهاش. اگه مقاله‌ی GitHub Agentic Workflows رو خوندی و فکر می‌کنی راه‌اندازیش ساده‌ست، این مقاله نشونت می‌ده واقعیت همیشه اون‌قدرها هم صاف نیست.

هدف چی بود؟

تو صفحه‌ی هوش مصنوعی‌های کاربردی، چند تا ابزار معرفی شدن، هر کدوم با یه لینک به وب‌سایت و اپلیکیشنش. لینک‌ها با گذر زمان خراب می‌شن یا عوض می‌شن، و چک کردن دستیشون هر چند وقت یه‌بار، یه کار تکراریه که دقیقاً مناسب خودکارسازیه. ایده این بود: یه Agentic Workflow بسازیم که هفته‌ای یه بار خودش این لینک‌ها رو چک کنه و اگه چیزی خراب بود، یه Pull Request پیش‌نویس برای بررسی بسازه — نه بیشتر، نه کمتر. قصدمون این بود که از یه کار ساده شروع کنیم، نه یه چیز پیچیده.

راه‌اندازی اولیه

مراحل دقیقاً همونی بود که تو مقاله‌ی قبلی توضیح دادیم: نصب افزونه‌ی gh aw، نوشتن یه فایل Markdown با frontmatter مشخص (trigger هفتگی، دسترسی فقط‌خواندنی، و safe-outputs محدود به ساختن یه Pull Request پیش‌نویس)، و کامپایل کردنش با gh aw compile تا فایل اجرایی (.lock.yml) ساخته بشه. این بخش بدون مشکل جلو رفت و اولین Workflow با موفقیت کامپایل و منتشر شد.

مانع اول: Gemini و تحریم

اولین تصمیم این بود که از Gemini به‌عنوان Agent استفاده کنیم، چون سطح رایگان سخاوتمندی داره. ولی وقتی خواستیم از Google AI Studio کلید API بگیریم، با یه خطای ۴۰۳ مواجه شدیم: «Your client does not have permission to get URL / from this server».

دلیلش چیز پیچیده‌ای نبود: گوگل، طبق تحریم‌های آمریکا (OFAC)، دسترسی به Google AI Studio و Gemini API رو برای کاربرهای ایران مسدود کرده. این یه تصمیم از طرف خود شرکته، نه یه مشکل فنی که با تنظیمات یا VPN قابل دور زدنه (و اصلاً پیشنهاد نمی‌کنیم دنبال دور زدن تحریم بگردی). نکته‌ی جالب اینه که همین محدودیت برای Claude و ChatGPT هم صدق می‌کنه؛ یعنی از بین Agentهای معرفی‌شده تو مستندات رسمی gh-aw (Copilot، Claude، Codex، Gemini)، عملاً فقط GitHub Copilot برای یه کاربر ایرانی در دسترسه — چون خود GitHub سال‌ها پیش یه مجوز رسمی از وزارت خزانه‌داری آمریکا گرفته که اجازه می‌ده توسعه‌دهنده‌های ایرانی ازش استفاده کنن.

مانع دوم: باگ Copilot Free تو Actions

پس برگشتیم سراغ Copilot، که از اول هم گزینه‌ی منطقی‌تری بود (رایگان، و قبلاً هم ثابت شده بود که برای کاربر ایرانی کار می‌کنه). طبق مستندات رسمی، پلن Free فقط به یه مدل مشخص (GPT-5 mini) دسترسی داره، پس همون رو تو frontmatter مشخص کردیم. نتیجه یه خطای عجیب بود:

400 The requested model is not supported.
model not supported — not retrying (the requested model
is unavailable for this subscription tier; specify a
supported model in the workflow frontmatter)

خودِ لاگ گفته بود «یه مدل پشتیبانی‌شده مشخص کن»، در حالی که دقیقاً همون مدلی که مستندات گفته بودن رو مشخص کرده بودیم! حتی گذاشتن model: auto (برای این‌که Copilot خودش انتخاب کنه) هم همون خطا رو داد.

بعد از کمی جستجو، معلوم شد این یه باگ شناخته‌شده و گزارش‌شده تو خود پروژه‌ی gh-awـه: رو اکانت‌های Copilot Free، که فقط اجازه‌ی «انتخاب خودکار مدل» رو دارن، وقتی Workflow از داخل GitHub Actions اجرا می‌شه، CLI هر مدلی که صریح بهش داده بشه رو رد می‌کنه — حتی اگه همون مدلی باشه که خودش به‌طور خودکار انتخاب می‌کنه. جالب اینه که دقیقاً همون نسخه‌ی CLI، رو یه کامپیوتر شخصی و بدون Actions، بدون مشکل و خودکار کار می‌کنه. یعنی مشکل فقط مخصوص اجرا شدن داخل Actionsه.

الان کجا ایستادیم؟

فعلاً این Workflow رو از تب Actions **غیرفعال** کردیم، نه حذف. همه‌ی فایل‌هاش (فایل Markdown و نسخه‌ی کامپایل‌شده) سر جاشون موندن، آماده‌ی فعال شدن دوباره. دو تا مسیر پیش رومونه:

  • صبر کردن: پروژه‌ی gh-aw فعاله و هر هفته آپدیت می‌گیره؛ امکان داره این باگ به‌زودی رفع بشه.
  • ارتقا به Copilot Pro: طبق گزارش همون باگ، این محدودیت فقط مخصوص پلن Freeـه؛ پلن‌های پولی این مشکل رو ندارن.

چیزهایی که یاد گرفتیم

  • مستندات همیشه کل داستان رو نمی‌گن. هم Google و هم GitHub جایی رسماً ننوشته بودن «این برای کاربر ایرانی کار نمی‌کنه» یا «این مدل تو Actions با خطا مواجه می‌شه»؛ این‌ها رو فقط با امتحان کردن و خوندن لاگ خام فهمیدیم.
  • لاگ خطا رو کامل بخون، نه فقط خط آخرش. پیام سطح بالا («۴۰۰، مدل پشتیبانی نمی‌شه») به‌تنهایی گمراه‌کننده بود؛ دلیل واقعی چند خط پایین‌تر، تو جزئیات فنی لاگ بود.
  • بعضی مشکلات اصلاً به تو ربطی ندارن. بعد از چندین بار تغییر تنظیمات، معلوم شد مشکل از یه باگ تو خود ابزاره، نه از کاری که ما اشتباه کرده باشیم. تشخیص این فرق، جلوی کلی وقت تلف‌شده رو می‌گیره.
  • شروع از یه کار ساده، تصمیم درستی بود. اگه از یه Workflow پیچیده‌تر شروع کرده بودیم، پیدا کردن ریشه‌ی مشکل خیلی سخت‌تر می‌شد.

جمع‌بندی

خودکارسازی با هوش مصنوعی روی کاغذ ساده به نظر می‌رسه، ولی وقتی پاش به شرایط واقعی (محدودیت جغرافیایی، پلن رایگان، باگ‌های تازه) باز می‌شه، همیشه یه چیزی سر راهته. این لزوماً چیز بدی نیست؛ بخشی از همون «ساختن» ـه که اسم سایت ازش می‌گه. هر وقت این Workflow بالاخره روشن بشه، همین‌جا به‌روزش می‌کنیم.

← بازگشت به صفحه اصلی