تصور کنید پلتفرمی که پیشتر بهطور علنی یک استاندارد فنی را رد کرده بود، حالا همان استاندارد را به قلب تپندهٔ معماری خود تبدیل کند. Pi در ۳۰ سپتامبر ۲۰۲۶ اعلام کرد که پروتکل زمینهٔ مدل (Model Context Protocol یا MCP) را بهطور کامل در هستهٔ خود ادغام کرده است. تیم توسعه Pi توضیح داد که این چرخش ناگهانی نتیجهٔ تکامل MCP و نیاز مبرم به لایهای منعطفتر برای مدیریت و هماهنگسازی ابزارهاست.
برای ماههای متوالی، توسعهدهندگان Pi و چهرههایی مانند ماریو، منتقدان سرسخت MCP بودند و حتی در وبسایت pi.dev صراحتاً اعلام کرده بودند که این سرویس از این پروتکل پشتیبانی نخواهد کرد. این تنش در واقع بازتابی از یک چالش بزرگتر در صنعت است: شکاف عمیق میان «فراخوانی سادهٔ ابزار» (Simple Tool-calling) و «هماهنگی پیچیدهای» (Complex Orchestration) که برای ساخت عاملهای (Agents) — شبیه به مدیران پروژهای که نه تنها ابزارها را میشناسند، بلکه ترتیب اجرای آنها را هم مدیریت میکنند — واقعاً خودگردان لازم است. این چالشهای ساختاری در حالی رخ میدهد که برخی راهکارها مانند گیتوی ۷ لایه AegisGate تلاش کردند تا خلأهای امنیتی این پروتکل را برطرف کنند تا پذیرش آن در محیطهای سازمانی تسهیل شود. برای پر کردن این شکاف، Pi به جای افزودن یک افزونهٔ ساده، نحوه تعامل مدلهای زبانی بزرگ (LLM) — مثل کتابخانهداری که میلیاردها صفحه را خوانده و حالا با همان لحن کتابها جواب میدهد — با دادههای خارجی را بازتعریف کرده است.
چرخش به سمت ادغام در هسته
تیم Pi ابتدا قصد داشت MCP را به عنوان یک افزونه (Extension) معرفی کند، اما به این نتیجه رسید که تغییرات معماری مورد نیاز، بسیار کاربردیتر از آن است که در یک لایهٔ جداگانه ایزوله شود. طبق اعلام تیم توسعه، ادغام MCP در هسته به Pi اجازه میدهد تا از قابلیتهایی مانند «بارگذاری متأخر ابزارها» (Deferred Tool Loading) و «پیامهای سیستمی در میانهٔ گفتگو» بهتر استفاده کند.
این رویکرد باعث میشود Pi بتواند مجموعه ابزارهای خود را برای مدلهای جدیدی که نیاز به تغییرات در سطح استدلال (Reasoning-level changes) دارند، مقیاسپذیر کند. توسعهدهندگان اشاره کردند که افزونههای استاندارد MCP فاقد متادیتای لازم برای تشخیص این موضوع بودند که آیا یک ابزار باید بهطور کلی در دسترس LLM باشد یا فقط در یک حالت اجرایی خاص (Specific Execution Mode) فعال شود.
چرا یک افزونه کافی نبود؟
اگرچه MCP میتوانست به عنوان یک افزونه تأییدشده توسط Earendil اضافه شود، اما تیم متوجه شد که تغییرات مورد نیاز برای MCP، استفاده از Jev را نیز در Pi تسهیل میکند. در نهایت، هر دو سیستم به یک زیرساخت بنیادی یکسان نیاز داشتند: یک محیط ایزوله یا سندباکس (Sandbox) در قالب یک مفسر (Interpreter) برای اجرای کد.
با ادغام در سطح هسته، Pi تضمین میکند که ابزارها میتوانند به صورت «متأخر» یا «مختص به Codemode» پیکربندی شوند. این اقدام دقیقاً همان شکاف متادیتایی را پر میکند که پیش از این مانع از عملکرد روان افزونههای MCP با مجموعه ابزارهای پیشرفته Pi میشد.
معرفی Codemode
مرکز این بهروزرسانی، Codemode است؛ مکانیزم تخصصی برای هماهنگسازی فراخوانی ابزارها. در حالی که بیشتر سامانهها ابزارها را در یک سندباکس جداگانه و غیرقابلاعتماد اجرا میکنند، Codemode دقیقاً در جایی اجرا میشود که حلقهٔ عامل (Agent Loop) قرار دارد.
- هماهنگسازی: این بخش مانند یک هماهنگکننده عمل میکند و به عامل اجازه میدهد ترتیب فراخوانی ابزارها را تعیین کرده و انعطاف بیشتری در توالی اجرا داشته باشد.
- سندباکس جاوااسکریپت: برای ترکیب نتایج ابزارهای مختلف از جاوااسکریپت (که در قالب باینریهای WASM ارائه میشود) استفاده میکند. این روش سطح مناسبی از امنیت را فراهم میکند و در عین حال عملکرد بالایی دارد.
- پایداری وضعیت: چون در سمت هسته (Harness side) اجرا میشود، وضعیت آن در تاریخچه جلسه (Session Transcript) حفظ میشود و نه در یک سیستم فایل موقت و ناپایدار.
مکانیسم عملکرد Codemode
به گزارش تیم Pi، هدف از طراحی Codemode حل شکاف اعتماد میان هسته (Harness) و ابزار است. در یک ساختار معمولی، حلقهٔ هسته در محیطی قابلاعتماد و ابزارها در سندباکسی غیرقابلاعتماد اجرا میشوند. Codemode با اجرا در سمت هسته، این دو را به هم متصل کرده و اجازه میدهد فراخوانی ابزارها با انعطافپذیری بسیار بیشتری هماهنگ شوند.
در Pi، هرگاه MCP پیکربندی شود، Codemode بهطور خودکار بارگذاری میشود. همچنین کاربران میتوانند آن را به عنوان یک ابزار پیشفرض به پیکربندی اضافه کنند. کاربران میتوانند این قابلیت را به سادگی با درخواست از Pi برای پیکربندی مجدد جهت فعالسازی Codemode فعال کنند.
حل مسئله ترکیب ابزارها
تیم Pi استدلال میکند که بزرگترین شکست پیادهسازیهای فعلی MCP، دشواری در «ترکیب» (Composition) ابزارهاست. حتی با وجود تلاشهای مشابه برای ایجاد «حالت کد» در سیستمهای دیگر، MCP اغلب در تحقق این وعده شکست میخورد. بسیاری از سرورهای MCP برای سامانههایی ساخته شدهاند که ابزارها را صرفاً در پنجرهٔ زمینه (Context Window) — شبیه به میز کاری که فقط جای چند ورق دارد، نه کل کتابخانه — میریزند و برای بهینهسازی توکنها، فقط متن خام برمیگردانند.
هدف Pi این است که با MCP مانند OpenAPI برخورد کند و از «کشف هوشمند ابزار» استفاده نماید. این به معنای موارد زیر است:
- دادههای ساختاریافته: ابزارها باید به جای متن ساده، دادههای ساختاریافته (Structured Data) برگردانند.
- قابلیت کشف: ابزارها باید از طریق مستندات و توضیحاتشان قابل شناسایی و کشف باشند.
- اتصالات برنامهنویسیشده: همانطور که رابطهای خط فرمان (CLI) از دستورات بهینه bash (bashisms) برای اتصال ابزارها استفاده میکنند، Pi از سندباکس جاوااسکریپت برای رسیدن به همین نتیجه عملکردی استفاده میکند.
کاربرد عملی: ادغام با Jev
برای نمایش این قدرت، Pi گردشکاری را با استفاده از Jev (یک مدل طبقهبندیکننده یا Classifier) به نمایش گذاشت. در یک تست واقعی، عامل با استفاده از Codemode، تعداد ۱۶۷ مورد باز (Issue) را از یک سرور MCP مربوط به Linear تحلیل کرد تا ناراضیترین کاربران را بیابد.
به جای هدر دادن فضای پنجره متنی با بارگذاری تمام موارد، عامل یک حلقه جاوااسکریپت در Codemode نوشت. فرآیند به این ترتیب بود:
۱. بازیابی داده: ۲۵۰ مورد باز از سرور Linear برای تیم Pi با استفاده از دستور mcp__linear__list_issues استخراج شد.
۲. طبقهبندی: از یک مدل طبقهبندی در cloudflare-workers-ai (مدل typesafe/jev) برای سنجش لحن احساسی هر رشته از طریق models.classify استفاده شد.
۳. معیارها: Jev لحنها را به سه دسته «none» (خنثی/دوستانه)، «mild» (ناامیدی/آزار) و «high» (خشم/عصبانیت) تقسیم کرد. به مدل دستور داده شد که فقط روی لحن احساسی تمرکز کند و شدت باگ را نادیده بگیرد.
۴. پردازش موازی: برای افزایش سرعت و کارایی، عامل تحلیل را با استفاده از چهار ورکر موازی (Promise.all([worker(), worker(), worker(), worker()])) اجرا کرد.
نتایج تحلیل
از میان ۱۶۷ مورد، Jev تعداد ۱۵۶ مورد را خنثی و ۱۱ مورد را دارای نارضایتی ملایم تشخیص داد. هیچ موردی در دسته «بسیار ناراضی» قرار نگرفت. عامل از یک فرمول امتیازدهی خاص — r.probabilities.mild * 0.5 + r.probabilities.high — برای رتبهبندی نتایج استفاده کرد.
نمونههای خاصی از نارضایتیها شامل موارد زیر بود:
- PI-6907: نبود بخش نصب در README که کاربر آن را «ناامیدکننده» توصیف کرده بود.
- PI-4714: درخواست برای دستور
/updateدر TUI که به عنوان «دردسر» توصیف شده بود. - PI-10031: گیر کردن Pi در وضعیت «Working...» پس از فشردن کلید Esc در حین تفکر.
- PI-7730: مصرف بالای CPU در سیستمعامل macOS طی جلسات طولانی.
نتایج نهایی در Codemode تحت کلید «frustration» ذخیره شدند تا عامل بتواند بعداً بدون بازیابی مجدد دادهها، به جزئیات موارد خاص دسترسی داشته باشد.
موازنه فنی
Pi با پذیرش MCP تلاش میکند استاندارد را از درون تغییر دهد. تیم معتقد است با پیادهسازی یک هسته (Harness) با عملکرد بالا، میتواند توسعهدهندگان سرورهای MCP را به سمت الگوهای بهتر، مانند بازگرداندن دادههای ساختاریافته به جای متن خام، سوق دهد.
این رویکرد دقیقاً مشابه عملکرد CLIها است، جایی که عاملها ابزارها را با استفاده از منطق بهینه شبیه به bash به هم متصل میکنند. Pi در واقع این سطح از انعطافپذیری برنامهنویسیشده را از طریق یک سندباکس مبتنی بر جاوااسکریپت به تجربه فراخوانی ابزار در LLMها میآورد.
این تغییر نشان میدهد که صنعت در حال حرکت از «فراخوانی تکمرحلهای ابزار» (One-shot tool calls) به سمت «استفاده برنامهنویسیشده از ابزار» (Programmatic tool use) است. توانایی ایجاد حلقه، فیلتر کردن و تبدیل دادهها بین فراخوانیهای ابزار، همان چیزی است که یک چتبات ساده را از یک عامل کاربردی متمایز میکند.
کاربران اکنون میتوانند با درخواست از Pi برای پیکربندی مجدد جهت فعالسازی Codemode، این قابلیت را فعال کنند. این امر در را برای تحلیلهای پیچیده دادهای — مانند تحلیل Linear/Jev — باز میکند که پیش از این بدون کپی-پیست دستی بین ابزارهای مختلف هوش مصنوعی غیرممکن بود.
باید منتظر ماند و دید که سایر چارچوبهای عاملمحور چگونه «سندباکسهای هماهنگساز» مشابهی را برای حل مشکل تورم توکنها (Token-bloat) در استفادههای گسترده از ابزارها به کار میگیرند.
گام بعدی شما
- اگر از Pi استفاده میکنید، از آن بخواهید خود را برای فعالسازی Codemode پیکربندی کند تا تحلیلهای پیچیده دادهای را تجربه کنید.
- توسعهدهندگان ابزارهای MCP را تشویق کنید تا به جای متن خام، خروجیهای ساختاریافته (JSON) ارائه دهند تا با سامانههای مدرن سازگار شوند.
- بررسی کنید که چگونه میتوانید مدلهای طبقهبندیکننده کوچک را برای فیلتر کردن دادههای حجیم پیش از ارسال به LLM به کار ببرید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو