پرش به محتوای اصلی
پرش به محتوای مقاله

«مهار انفجار زمینه»؛ راهکار جدید Solon AI برای دقت مدل‌های زبانی

·۲۹ تیر ۱۴۰۵۶ دقیقه مطالعه
راهنما
استعدادهای ورودی در Solon AI: رابط‌های OpenAPI، ابزار و MCP بدون افزایش حجم زمینه
استعدادهای ورودی در Solon AI: رابط‌های OpenAPI، ابزار و MCP بدون افزایش حجم زمینه
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

جایگزینی لیست‌های استاتیک ابزار با یک سیستم کشف چهارمرحله‌ای تطبیقی که به‌طور خودکار با افزایش تعداد ابزارها، سطح جزئیات ارسالی به مدل را کاهش می‌دهد تا از انفجار توکن‌ها جلوگیری شود.

تصور کنید یک برنامه‌نویس بخواهد عاملی بسازد که به ۱۰۰ ابزار مختلف دسترسی داشته باشد؛ در این حالت، مدل به‌جای تمرکز بر پاسخ، در میان انبوهی از توصیفات فنی غرق می‌شود. این همان نقطه‌ای است که «انفجار زمینه» (Context Blow-up) رخ می‌دهد و صورت‌حساب توکن‌های شما به‌طور غیرمنتظره‌ای جهش می‌کند. وقتی یک عامل به‌طور هم‌زمان با ۸۰ ابزار روبه‌رو می‌شود، دقت در انتخاب ابزار به‌شدت افت می‌کند و یک درخواست ساده برای «بررسی وضعیت سفارش»، ممکن است ناگهان نیمی از فضای OpenAPI یک شرکت را در پنجره متنی اشغال کند.

طبق مستندات فنی Solon AI، این مشکل در نسخه ۴.۰.۳ با جایگزینی لیست‌های ایستا با مکانیزم کشف پویا به نام Gateway Talents حل شده است. این سیستم که توسط ماژول solon-ai-talent-gateway مدیریت می‌شود، به‌جای تحمیل تمام طرح‌واره‌های (Schema) API به مدل در اولین گام، پیچیدگی‌ها را به‌صورت تدریجی پنهان می‌کند تا مدل تنها با آنچه در لحظه نیاز دارد مواجه شود.

برخی توسعه‌دهندگان ابزارها را صرفاً توابعی اتمیک می‌بینند، اما در مقیاس صنعتی، حجم عظیم مشخصات OpenAPI می‌تواند استدلال مدل را مختل کند. در این معماری، «ابزار» (Tool) یک تابع اتمیک است، اما «استعداد» (Talent) مجموعه‌ای از ابزارهاست که با دستورالعمل‌ها، مکانیزم‌های فعال‌سازی و محدودیت‌های سبک SOP (روش اجرای استاندارد) بسته‌بندی شده‌اند. گیت‌وی‌ها به این بسته‌بندی نیاز دارند زیرا طرح‌واره‌های خام بیش از حد زیاد هستند و ابزارهای سیستم‌های مختلف نیاز به گروه‌بندی و مدیریت چرخه حیات دارند. به همین دلیل، گیت‌وی‌ها به‌جای ریختن تمام عملیات‌ها در defaultToolAdd توسط متد defaultTalentAdd(...) (یا talentAdd در محدوده درخواست) پیاده‌سازی می‌شوند.

چهار مرحله کشف تطبیقی

بر اساس بررسی منابع متعدد و مستندات مقالات ۱۳۵۳، ۱۳۸۹، ۱۳۳۵ و ۱۲۹۳، تمامی گیت‌وی‌ها از یک مدل چهار مرحله‌ای کشف تطبیقی پیروی می‌کنند. هدف این طراحی آن است که کاتالوگ‌های کوچک در دستورالعمل‌ها جای گیرند تا فراخوانی‌ها تک‌مرحله‌ای باشند، در حالی که کاتالوگ‌های بزرگ به‌صورت لایه‌لایه جمع شوند تا مدل مجبور به کشف تدریجی شود:

  • حالت FULL (تعداد ≤ dynamicThreshold، پیش‌فرض ۸): مدل تمام طرح‌واره‌های کامل ابزارها یا ابزارهای اصلی را دریافت می‌کند. در این مرحله، عملیات‌های OpenAPI به یک ابزار ساده به نام call_api تبدیل (Collapse) می‌شوند.
  • حالت SUMMARY (۸ < تعداد ≤ listThreshold، پیش‌فرض ۳۰ برای OpenAPI و ۴۰ برای سایرین): سیستم تنها نام ابزارها، توضیحات و نقطه اتصال (Endpoint) را ارائه می‌دهد. مدل ابزارهای get_*_detail و call_* را می‌بیند و برای اجرای یک ابزار، ابتدا باید از طریق یک فراخوانی Detail، طرح‌واره کامل آن را مشاهده کند.
  • حالت LIST (listThreshold < تعداد ≤ searchThreshold، پیش‌فرض ۱۰۰): در این مرحله تنها نام‌های گروه‌بندی شده نمایش داده می‌شوند. مدل به ابزارهای search_* (جست‌وجو)، get_*_detail (دریافت جزئیات) و call_* (اجرا) دسترسی دارد.
  • حالت SEARCH (تعداد > ۱۰۰): هیچ کاتالوگی به مدل ارسال نمی‌شود. مدل به‌طور اجباری باید مسیر جست‌وجوی مشخصی را طی کند: ابتدا استفاده از search_* $\rightarrow$ سپس get_*_detail $\rightarrow$ و در نهایت call_*.

اهرم‌های تنظیمات برای توسعه‌دهندگان

توسعه‌دهندگان می‌توانند نقاط گذار بین این چهار مرحله را با استفاده از چندین متد مشترک تنظیم کنند:

  • dynamicThreshold(n): سقف تعداد برای فعال ماندن حالت FULL (پیش‌فرض ۸).
  • listThreshold(n): سقف تعداد برای حالت SUMMARY (پیش‌فرض ۳۰ برای OpenAPI و ۴۰ برای سایر موارد).
  • searchThreshold(n): سقف تعداد برای حالت LIST (پیش‌فرض ۱۰۰).
  • retryConfig(maxRetries, retryDelayMs): مدیریت بازیابی در صورت شکست فراخوانی (پیش‌فرض ۳ بار تلاش با تأخیر ۱۰۰۰ میلی‌ثانیه).
  • maxContextLength(n): این تنظیم به‌طور خاص برای OpenApiGatewayTalent است تا پاسخ‌های بسیار طولانی را برای جلوگیری از پر شدن Context قطع (Truncate) کند (پیش‌فرض ۸۰۰۰).

سه نوع گیت‌وی تخصصی

Solon AI سه پیاده‌سازی متمایز از گیت‌وی را بر اساس منبع پیدایش ابزارها ارائه می‌دهد:

۱. OpenApiGatewayTalent: زمانی استفاده می‌شود که ابزارها به‌صورت اسناد OpenAPI یا Swagger (به‌صورت HTTP از راه دور یا در مسیر Classpath محلی) باشند.

  • قابلیت‌ها: پشتیبانی از تشخیص خودکار Swagger 2.0 و OpenAPI 3.0، بارگذاری از منابع متعدد با گروه‌بندی بر اساس تگ‌ها، گسترش ارجاعات ($ref expansion) و علامت‌گذاری ارجاعات دوری (Circular-ref markers).
  • ابزارها: ابزارهای پروکسی داخلی شامل call_api (در تمام مراحل)، get_api_detail (در مراحل Summary/List/Search) و search_apis (در مراحل List/Search) را فراهم می‌کند.
  • امنیت: برای مدیریت توکن‌های Bearer، کلیدهای API یا منطق‌های سفارشی از ApiAuthenticator استفاده می‌کند. اولویت احراز هویت به این ترتیب است: احراز هویت منبع $\rightarrow$ احراز هویت پیش‌فرض.
  • فیلترینگ: از allowedTools (ابزارهای مجاز) و disallowedTools (ابزارهای غیرمجاز) برای هر منبع پشتیبانی می‌کند و به‌طور خودکار عملیات‌های علامت‌گذاری شده با @Deprecated را نادیده می‌گیرد.

۲. ToolGatewayTalent: برای حاکمیت بر FunctionTools محلی، AbsToolProvider یا ابزارهای MCP که قبلاً دریافت شده‌اند. این گزینه اصلی برای افزودن یا حذف ابزارهای تکی در زمان اجرا (Runtime) به‌صورت دقیق است.

  • ابزارها: ابزارهای پروکسی call_tool ،get_tool_detail و search_tools را برای مراحل Summary/List/Search فراهم می‌کند.
  • منطق: در حالت FULL، ابزارهای تجاری اصلی مستقیماً در دسترس مدل قرار می‌گیرند و سه ابزار پروکسی تنها زمانی ظاهر می‌شوند که تعداد کاتالوگ از dynamicThreshold عبور کند.

۳. McpGatewayTalent: برای پروتکل زمینه مدل (Model Context Protocol) و از طریق وابستگی solon-ai-mcp ساخته شده است. این گیت‌وی اتصالات به سرورهای MCP را از طریق McpServerParameters (مثلاً با استفاده از انتقال stdio و npx) مدیریت می‌کند.

  • چرخه حیات: مدیریت کامل اتصال را بر عهده دارد. متد removeMcpServer اتصال زیربنایی را می‌بندد، در حالی که غیرفعال کردن از طریق McpClientProvider.setEnabled(false) تنها ایندکس ابزارها را حذف می‌کند.
  • کنترل: از لیست‌های مجاز/غیرمجاز در سطح سرور پشتیبانی می‌کند. توسعه‌دهندگان برای کنترل هر ابزار نیازی به انتقال به ToolGatewayTalent ندارند، زیرا McpServerParameters این مورد را به‌طور بومی مدیریت می‌کند.
  • ابزارها: نام ابزارهای پروکسی آن مشابه ToolGatewayTalent است (call_tool, get_tool_detail, search_tools).

مدیریت چرخه حیات و دسترسی

مدیریت این گیت‌وی‌ها نیازمند نظم خاصی در زمان اجرا است. ویرایش دسترسی‌ها روی یک کپی از ApiSourceClient کافی نیست؛ توسعه‌دهنده باید حتماً متدهای refreshApi(...) یا refreshMcpServer(...) را فراخوانی کند تا تغییرات اعمال شوند. چارچوب Solon AI در هنگام رفرش از استراتژی «تعویض سایه‌ای» (Shadow Swap) استفاده می‌کند؛ به این معنا که ابتدا ابزارهای جدید اضافه و سپس قدیمی‌ها حذف می‌شوند تا فراخوانی‌های در جریان (In-flight calls) با جدول ابزار خالی مواجه نشوند.

حفاظ‌های تولید (Production Guardrails)

برای جلوگیری از شکست سیستم در محیط عملیاتی، یادداشت‌های رسمی موارد زیر را الزامی می‌دانند:

  • نام‌گذاری: اطمینان حاصل کنید که نام ابزارها و عملیات‌ها در تمام منابع منحصر‌به‌فرد باشد. این نام‌ها به‌صورت حروف کوچک ذخیره می‌شوند و در زمان فراخوانی به حروف بزرگ و کوچک حساس نیستند.
  • رمزگذاری URL: پارامترهای مسیر در OpenAPI حتماً باید از فرمت {name} استفاده کنند. گیت‌وی جایگزینی‌های رمزگذاری URL را مدیریت می‌کند؛ هرگونه توکن {xxx} باقی‌مانده باعث شکست شدید و صریح سیستم خواهد شد.
  • وضعیت‌ها: منابع غیرفعال شده (setEnabled(false)) برای مدیریت ثبت شده می‌مانند اما تا زمانی که دوباره فعال و رفرش نشوند، از ایندکس ابزارها حذف می‌شوند.

این چرخش معماری، فرض بنیادین استفاده از ابزار توسط عامل را تغییر می‌دهد. Solon AI با تغییر مدل از «هدایت» (Push) به «برداشت» (Pull) یا همان کشف تدریجی، اجازه می‌دهد عامل‌ها بدون قربانی کردن کیفیت استدلال در برابر حجم توکن‌ها، روی سطوح عظیم APIهای سازمانی فعالیت کنند.

برای کسانی که در حال مهاجرت هستند، قانون ساده است: تا زمانی که مجموعه ابزارها کوچک است، از AbsToolProvider و defaultToolAdd استفاده کنید. اما به محض اینکه با ده‌ها عملیات OpenAPI، سرورهای MCP که نباید طرح‌واره‌های کامل را ارسال کنند، یا کاتالوگ‌های سبک پلاگین که در زمان اجرا رشد و کاهش می‌یابند مواجه شدید، به Gateway Talent منتقل شوید. گیت‌وی‌ها جایگزین برنامه‌ریزی ReAct یا حافظه جلسه نیستند؛ آن‌ها به‌طور خاص مشکل مقیاس‌پذیری سطوح ابزار را حل می‌کنند. برای پیاده‌سازی، وابستگی solon-ai-talent-gateway را اضافه کرده و dynamicThreshold را بر اساس کارایی پنجره متنی مدل خود تنظیم کنید.

گام بعدی شما

  • اگر از AbsToolProvider استفاده می‌کنید و تعداد ابزارهای شما از ۲۰ مورد بیشتر شده، سریعاً به Gateway Talent مهاجرت کنید.
  • مقدار dynamicThreshold را بر اساس کارایی پنجره متنی مدل خود تنظیم کنید تا توکن‌های اضافی مصرف نشود.
  • برای ابزارهای OpenAPI، فرمت {name} را در تمام مسیرها بررسی کنید تا خطاهای Runtime کاهش یابد.

اما برای بهینه‌سازی عمیق‌تر هزینه استنتاج، استراتژی‌های کوانتش مدل‌ها مسیر متفاوتی را دنبال می‌کنند — به تحلیل ما درباره‌ی کاهش حافظه VRAM مراجعه کنید.

چرا این موضوع مهم است؟

این معماری با جلوگیری از اشباع پنجره متنی، پایداری عامل‌های سازمانی را در مقیاس بالا تضمین می‌کند. بر اساس تجربه پیاده‌سازی‌های بزرگ، کاهش نویز در ورودی مدل، مستقیماً منجر به کاهش نرخ توهم و افزایش صحت فراخوانی توابع می‌شود.

تأثیر برای ایران

برای توسعه‌دهندگانی در ایران که از مدل‌های Open-source با پنجره متنی محدود استفاده می‌کنند، این متد برای کاهش هزینه‌های پردازشی و افزایش دقت عامل‌ها بسیار کاربردی است.

·نگاه ما
تحریریه دات‌هوش

انتقال از مدل Push به Pull در مدیریت ابزارها، در واقع پذیرش این واقعیت است که پنجره متنی مدل‌های زبانی، علی‌رغم بزرگ شدن، همچنان در برابر نویز حساس است. این رویکرد نشان می‌دهد که آینده‌ی عامل‌های هوش مصنوعی نه در مدل‌های با Context بی‌نهایت، بلکه در لایه‌های مدیریت هوشمند دسترسی (Orchestration) نهفته است تا دقت استدلال فدای حجم داده نشود.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.