Code Mode در AI SDK: مدل بهجای صدا زدن ابزارها، کد مینویسه
خلاصهٔ کاملتر
طبق مستندات AI SDK، بسته تازه @ai-sdk/code-mode یه قابلیت تجربی به اسم Code Mode اضافه کرده که رفتار صدا زدن ابزارها رو عوض میکنه. بهجای اینکه مدل هر ابزار رو جداگانه و پشتسرهم صدا بزنه، حالا میتونه یه تیکه کد جاوااسکریپت یا تایپاسکریپت بنویسه که خودش منطق فراخوانی رو مدیریت کنه؛ مثلاً چند ابزار مستقل رو همزمان صدا بزنه، نتیجهها رو با هم ترکیب کنه یا جوابهای حجیم رو قبل از برگردوندن به مدل فیلتر کنه.
این کد توی یه sandbox ایزوله به اسم QuickJS (یعنی یه موتور جاوااسکریپت سبک که جدا از سیستم اصلی اجرا میشه) اجرا میشه و در نهایت یه خروجی قابل تبدیل به JSON برمیگردونه. این قابلیت فعلاً فقط روی Node.js نسخه ۲۲ به بالا کار میکنه و توی مرورگر یا edge runtime پشتیبانی نمیشه، چون هنوز تجربیه و ممکنه APIهاش عوض بشه.
برای کنترل اینکه کدوم ابزار از چه مسیری صدا زده بشه، از تنظیم experimental_toolCallers استفاده میشه. توی مثال مستندات، دو تابع getInventory و getDemand فقط از طریق کد مود در دسترسان، نه بهصورت مستقیم:
experimental_toolCallers: {
getInventory: ['code_mode'],
getDemand: ['code_mode'],
}اگه بخوای یه تابع هم مستقیم و هم از طریق کد مود صدا زده بشه، کافیه DIRECT_TOOL_CALL رو هم به لیست اضافه کنی.
نکات کلیدی:
- بسته @ai-sdk/code-mode این قابلیت رو اضافه میکنه و فعلاً تجربیه.
- کدهای تولیدشده توسط مدل توی sandbox ایزوله QuickJS اجرا میشن.
- حداقل نسخه لازم Node.js 22 هست؛ روی مرورگر و edge runtime کار نمیکنه.
- با experimental_toolCallers میشه مشخص کرد هر ابزار فقط از کد مود صدا زده بشه یا مستقیم هم در دسترس باشه.




