Flue و Agents SDK: استک سهلایهٔ ایجنتهای پروداکشنی
خلاصهٔ کاملتر
توماس گووَن تو بلاگ کلادفلر نوشته ۲۰۲۶ سالیه که «هارنس»های ایجنت میرن پروداکشن — نرمافزارهایی مثل Codex، Claude Code، OpenCode، Pi و Project Think که دسترسی مدل به دنیای بیرون رو کنترل میکنن. ولی ساختن ایجنتی که تو پروداکشن دووم بیاره سخته: وقتی ایجنت وسط کار قطع میشه چطور بدون از دست دادن کانتکست و سوزوندن توکن ادامه بده؟ چطور کد نامطمئن رو امن اجرا کنه؟ به گفتهٔ نویسنده اینها مسئلهٔ سیستمهای توزیعشدهان و به state و storage و compute گره خوردن، پس هارنس بهتنهایی نمیتونه حلشون کنه.
پیشنهاد کلادفلر یه استک سهلایهست: فریمورک (مثل Flue) که ساختار پروژه، کنوانسیونها، اینتگریشنها، CLI و تجربهٔ توسعه رو میده؛ هارنس (مثل Pi و Project Think) که همون حلقهٔ ایجنتیه — ابزار صدا میزنه، نتیجه میخونه، کانتکست رو مدیریت میکنه و تا تموم شدن کار ادامه میده؛ و رانتایم/پلتفرم (همون Cloudflare Agents SDK) که compute و state و storage زیر بقیه رو فراهم میکنه.
Flue این هفته ۱.۰ بتا رو منتشر کرده؛ فریمورک اپنسورسی از تیم پشت Astro که روی هارنس Pi سواره. تفاوتش تو رویکرده: بهجای اینکه اسکریپت کنی ایجنت چیکار کنه، توصیف میکنی چی میدونه — مدل، اسکیلها، سندباکس و دستورالعملها رو تعریف میکنی و ایجنت خودش تسک رو حل میکنه، بدون اینکه حلقهٔ ارکستراسیون بنویسی. نمونهای که میزنن یه ایجنت تریاژه: گزارش باگ رو میگیره، تو سندباکس بازتولیدش میکنه و مشکل رو تشخیص میده، زیر ۲۵ خط.
ایجنتهای Flue قراره همونجایی باشن که کاربر هست: با Channelهای از پیش آماده میشه انداختشون تو Slack، GitHub، Linear یا Discord، و @flue/react هوکهایی میده که state، اجرای ابزار و پیامهای زنده رو مستقیم استریم کنه به فرانت. برای دوام هم Durable Streams داره؛ هر رویداد تو یه لاگ فقط-افزودنی ثبت میشه، پس اگه پروسه بمیره یکی دیگه لاگ رو برمیداره و از همون قدم ادامه میده. Flue چندابریه: رو Node.js هر ایجنت یه پروسهٔ بلندعمره، ولی رو کلادفلر هر ایجنت یه Durable Object میشه.
اولین چیزی که هر هارنسی از پلتفرم میخواد، اجرای بادوامه. یه نوبت ایجنت فقط یه ریکوئست نیست: مدل توکن استریم میکنه، ابزار صدا میزنه، منتظر نتیجه میمونه، شاید تأیید آدم بخواد یا کار رو به سابایجنت بسپره — و هر لحظه ممکنه پروسه بمیره و کل state حافظه بپره. Fiberها این رو با چکپوینتگیری داخل Durable Object حل میکنن: runFiber() پیشرفت رو تو استوریج SQLite ثبت میکنه، stash() وسط کار چکپوینت میذاره و onFiberRecovered() بعد از بالا اومدن نمونهٔ تازه، آخرین چکپوینت رو تحویل میده.
await this.runFiber("my-task", async (ctx) => {
const step1 = await expensiveOperation();
ctx.stash({ step1 });
const step2 = await anotherExpensiveOperation(step1);
this.setState({ ...this.state, result: step2 });
});دومی اجرای کده. هرچی لیست ابزارها بلندتر میشه، مدل بدتر ابزار درست رو انتخاب میکنه و کانتکست هم با تعریف ابزارها پر میشه؛ الگوی بهتر: یه ابزار بده که «کد اجرا میکنه» و مدل یه تابع TypeScript بنویسه که APIهای لازم رو صدا بزنه. @cloudflare/codemode این کد رو تو ایزولهٔ Worker جدا و فقط با bindingهایی که دادی اجرا میکنه؛ برای هر اسنیپت یه Dynamic Worker تازه میسازه و بعد دورش میندازه. ایزوله زیر ۱۰ میلیثانیه بالا میاد و حدود ۰.۰۰۲ دلار خرج داره — خیلی ارزونتر از کانتینر.
سومی فایلسیستمه. جواب معمول کانتینره، ولی بیشتر کار ایجنت رو فایلسیستم متنیه — خوندن فایل، گرپ زدن، نوشتن پچ — و برای اینها بوت کردن یه لینوکس کامل گرونه. @cloudflare/shell یه فایلسیستم مجازی بادوام داخل خود Durable Object میده که پشتش SQLite ـه و عملیات تایپدار (read، write، edit، search، grep، diff) داره. ایجنت بهجای صدا زدن تکتک ابزارها، مستقیم JavaScript مینویسه:
const files = await state.glob("src/**/*.ts");
for (const file of files) {
const content = await state.readFile(file);
const todos = content.match(/\/\/ TODO:.*/g);
if (todos) results.push({ file, todos });
}چهارمی ورکفلوهای پویاست: خود ایجنت ورکفلو تولید میکنه و موتور Workflows هر قدم رو پایدار نگه میداره، خطاها رو ریتری میکنه و میتونه ساعتها بخوابه یا منتظر تأیید آدم بمونه (Claude Code هم اخیراً چیز مشابهی منتشر کرده). آخرین تکه دسترسی به اکوسیستم کلادفلر از راه bindingهاست: AI Gateway برای رصد و سقف هزینهٔ هر ایجنت، Browser Run، Email Service، Agent Memory، AI Search، Containers و اینفرنس روی بیشتر از ۱۴ ارائهدهندهٔ مدل — بدون اینکه کلیدها وارد کدی بشن که خود ایجنت تولید میکنه.
نکات کلیدی:
- استک سهلایه: فریمورک (Flue)، هارنس (Pi و Project Think) و رانتایم (Cloudflare Agents SDK)
- اجرای بادوام با Fiberها: runFiber، stash و onFiberRecovered روی استوریج SQLite داخل Durable Object
- Code Mode بهجای انبوه ابزار: اجرای کد LLM تو ایزولهٔ Worker با استارت زیر ۱۰ میلیثانیه
- فایلسیستم مجازی بادوام با @cloudflare/shell بهجای کانتینر برای کارهای متنی
- Flue ۱.۰ بتا از تیم Astro منتشر شد؛ رو کلادفلر هر ایجنت یه Durable Object میشه




