TanStack AI به نسخهٔ ۱.۰ رسید
خلاصهٔ کاملتر
تیم TanStack نسخهٔ ۱.۰ کتابخونهٔ TanStack AI رو منتشر کرده و APIهای اصلیش حالا پایدار و آمادهٔ پروداکشن هستن. به گفتهٔ تیم، قول اولیهٔ پروژه سر جاشه: هیچ lock-inی (یعنی گیر افتادن روی یه سرویس خاص) در کار نیست. پروژه کمتر از یه سال پیش با یه تابع chat() و چهار ارائهدهنده شروع شد. حالا ۲۳ آداپتر ارائهدهنده (بهعلاوهٔ openaiCompatible برای هر API شبیه OpenAI)، هشت فریمورک UI مثل React، Vue، Svelte و Angular و ۱۱ ارائهدهندهٔ sandbox (یعنی محیط ایزوله برای اجرای کد) داره.
از نسخهٔ RC تا الان هم قابلیتهای تازهای اضافه شده. subagentها اجازه میدن یه نوبت از چت رو به یه ایجنت فرزند مثل «محقق» یا «نویسنده» بسپری. گزینهٔ reasoning روی همهٔ ارائهدهندهها یکسان کار میکنه و prompt caching هم خودکار شده. compaction چتهای طولانی رو زیر محدودیت context نگه میداره و computer use به مدل اجازه میده با دیدن اسکرینشات با یه صفحهٔ وب کار کنه.
createMCPServer ابزارهای TanStack رو به شکل یه سرور MCP (یعنی پروتکلی که ابزارها رو به مدلها وصل میکنه) برای Claude Desktop و Cursor سرو میکنه. کاربرهای اپهای لوکال هم میتونن با ChatGPT، GitHub Copilot یا OpenRouter لاگین کنن تا لازم نباشه API key بچسبونن. برای تست، fakeText() اومده که chat()، ابزارها و middleware رو بدون شبکه و API key تست میکنه. مستندات هم برای ۱.۰ کامل بازنویسی شده.
ارتقا از 0.x مفهوم جدیدی نداره؛ تیم فقط APIهایی رو که تو 0.x منسوخ اعلام شده بودن حذف کرده. برای بیشتر اپها یه codemod و یه type check کافیه. مهمترین تغییرها اینه که body شده forwardedProps، conversationId شده threadId و threadId حالا هم تو مرورگر و هم سمت سرور اجباریه. codemod نمیتونه threadId رو خودش اضافه کنه چون idهای تو رو نمیدونه. کلاینت ۱.۰ هم حتماً سرور ۱.۰ لازم داره.
آخرین خبر، پکیج آزمایشی @tanstack/ai-harness هست. نویسنده توضیح میده که chat() فقط به یه درخواست جواب میده، ولی یه ایجنت کدنویسی یا بات پشتیبانی به گفتگویی نیاز داره که باز بمونه، وسط کار پیام جدید بگیره و بعد از deploy هم ادامه بده. هارنس رو یه بار با همون گزینههای chat() تعریف میکنی و برای هر گفتگو یه session باز میکنی:
const assistant = defineHarness({
name: 'acme/assistant',
adapter: openaiText('gpt-6.1-sol'),
systemPrompts: ['You are a helpful travel agent.'],
})
const host = createHarnessHost({ persistence: memoryPersistence() })
const session = await host.open(assistant, { threadId: 'trip-1' })
const plan = session.send('Plan a three-day trip to Lisbon.')
await session.send('Keep it under 500 euros.', { mode: 'steer' })
await planپیامی که با mode: 'steer' بفرستی قبل از فراخوانی بعدی مدل به همون نوبت در حال اجرا اضافه میشه. هر thread یه لاگ session داره، پس اگه یه store ماندگار بدی، نوبتی که با کرش یا deploy قطع شده روی هاست بعدی ادامه پیدا میکنه. با runCli و پلاگینهای آماده میشه یه ایجنت کدنویسی ترمینالی ساخت و همون تعریف رو روی HTTP، بهعنوان ایجنت ACP برای ادیتورها یا سرور MCP هم اجرا کرد.
نکات کلیدی:
- APIهای هسته تو ۱.۰ پایدارن، ولی @tanstack/ai-harness و @tanstack/ai-harness-cli هنوز 0.x و آزمایشیان و ممکنه تو یه نسخهٔ minor عوض بشن.
- کلاینت ۱.۰ فقط با سرور ۱.۰ کار میکنه، پس همهٔ پکیجهای پایدار @tanstack/ai* رو با هم آپدیت کن.
- threadId حالا اجباریه و codemod نمیتونه خودش اضافهش کنه.
- addToolApprovalResponse() حذف شده و جاش باید interrupt نوع tool-approval رو resolve کنی.
- پکیجهای @tanstack/ai-react-ui، @tanstack/ai-solid-ui و @tanstack/ai-vue-ui نسخهٔ ۱.۰ ندارن و جاشون createChatHook اومده.
- اگه سرور خودت به کلاینت TanStack AI استریم میکنه، بهجای data: [DONE] باید run رو با رویداد RUN_FINISHED تموم کنی.
- پلاگین permissions هارنس sandbox نیست و ابزارها با دسترسیهای خود هاست اجرا میشن.
- پروژه سه نگهدارنده داره و ۱۴۳ نفر تو کدش مشارکت کردن.




