<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://thakicloud.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://thakicloud.github.io/" rel="alternate" type="text/html" /><updated>2026-07-13T00:04:50+09:00</updated><id>https://thakicloud.github.io/feed.xml</id><title type="html">Thaki Cloud Tech Blog | ThakiCloud | 다키클라우드 기술 블로그</title><subtitle>Thaki Cloud (ThakiCloud, 다키클라우드, thaki cloud, THAKI CLOUD, ثاكي كلاود)는 AI/ML Engineering, LLMOps, DevOps 분야의 최신 기술과 실무 경험을 공유하는 전문 기술 블로그입니다. 머신러닝 모델 운영, 쿠버네티스, 클라우드 인프라, AI 엔지니어링 커리어, 인공지능 기술 블로그, 다키클라우드 개발 팀의 깊이 있는 인사이트를 제공합니다. مدونة تقنية متخصصة في هندسة الذكاء الاصطناعي والحوسبة السحابية.</subtitle><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><entry xml:lang="ar"><title type="html">عندما تبدأ عوامل البرمجة بالتحدث مع بعضها البعض: تصميم Claude Code متعدد اللاعبين وعوامل التعاون</title><link href="https://thakicloud.github.io/ar/agentops/claude-code-multiplayer-collaborative-agents/" rel="alternate" type="text/html" title="عندما تبدأ عوامل البرمجة بالتحدث مع بعضها البعض: تصميم Claude Code متعدد اللاعبين وعوامل التعاون" /><published>2026-07-12T00:00:00+09:00</published><updated>2026-07-12T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/agentops/claude-code-multiplayer-collaborative-agents</id><content type="html" xml:base="https://thakicloud.github.io/ar/agentops/claude-code-multiplayer-collaborative-agents/"><![CDATA[<p>عند استخدام عوامل البرمجة (coding agents) ضمن فريق، نصطدم بجدار غريب. العامل ملك لي وحدي. حتى لو كان زميلي في المكتب المجاور يعمل على المستودع نفسه، فإن كل Claude لا يعرف بوجود الآخر. البشر يتعاونون عبر Slack ومشاركة الشاشة، بينما العوامل التي تعدّل الكود نيابة عنا محبوسة كل واحدة في جزيرتها الخاصة. أداة <strong>Claude Code متعدد اللاعبين</strong> التي كُشف عنها مؤخراً وأثارت ضجة تستهدف هذا الجدار بالتحديد. إنها تجربة تتيح لعدة أشخاص استخدام الطرفية (terminal) نفسها معاً، وربط كل Claude بالآخر بحيث تتحدث العوامل فيما بينها. تنطلق هذه المقالة من هذه المحاولة لتفكيك تحديات التصميم التي يجب أن تحلها عوامل البرمجة التعاونية، وتتحقق مما يعنيه هذا الاتجاه من منظور تشغيل ThakiCloud الذي يتعامل مع العوامل المتعددة والسياسات كموارد من الدرجة الأولى.</p>

<h2 id="نظرة-عامة">نظرة عامة</h2>

<p>حتى الآن كانت الوحدة الأساسية لعوامل البرمجة هي <strong>عامل واحد لكل شخص</strong>. يعيش Claude Code في طرفيتي الخاصة، يفهم قاعدة الكود الخاصة بي، ويتلقى أوامري أنا وحدي. هذه البنية ممتازة للإنتاجية الفردية، لكنها تتعارض مع حقيقة أن البرمجيات، في جوهرها، عمل جماعي. Claude Code متعدد اللاعبين الذي كشفت عنه المطوّرة دورسا روهاني (Dorsa Rohani) يقلب هذا الافتراض رأساً على عقب. وفقاً لما أُعلن، تتيح هذه الأداة أمرين. أولاً، يشارك عدة أشخاص <strong>جلسة الطرفية نفسها</strong> ويعملون معاً. ثانياً، يتم <strong>ربط كل Claude بالآخر</strong> بحيث تتحدث العوامل فيما بينها.</p>

<p>الجدير بالملاحظة أن هذا ليس مجرد لعبة عابرة، بل قطعة من تيار أكبر. ظهرت في الفترة نفسها تقريباً مشاريع متتالية تجمع عدة أشخاص وعدة عوامل برمجة في مساحة عمل واحدة. من الأمثلة على ذلك <code class="language-plaintext highlighter-rouge">oh-my-claudecode</code> الذي يتبنى تنسيقاً متعدد العوامل يضع الفريق أولاً، و<code class="language-plaintext highlighter-rouge">claude_codex_bridge</code> الذي يمزج بين عدة عوامل من بينها Codex وClaude في مساحة عمل واحدة، و<code class="language-plaintext highlighter-rouge">codeg</code> وهو مساحة عمل تعاونية تجمّع جلسات عدة عوامل. يتقارب الاتجاه في نقطة واحدة: <strong>التعامل مع العوامل ليست كوحدات معزولة، بل كمشاركين يتواصلون فيما بينهم</strong>.</p>

<p>سبب أهمية هذا التيار واضح. في المنظمات التطويرية الفعلية، يأتي جزء كبير من العمل ذي القيمة من التنسيق: من يعمل على أي ملف، هل يكسر هذا التغيير تلك الوحدة، وما الذي يقلق المراجع. إذا لم تشارك العوامل في هذا التنسيق، فسننتهي في النهاية بأن يقوم البشر بخياطة نواتج العوامل المنفصلة يدوياً من جديد. عوامل التعاون هي محاولة لتقليل تكلفة تلك الخياطة.</p>

<h2 id="ما-هو-عامل-البرمجة-متعدد-اللاعبين">ما هو عامل البرمجة متعدد اللاعبين</h2>

<p>كلمة “متعدد اللاعبين” (multiplayer) جاءت من عالم الألعاب، لكنها هنا تشير إلى محورين مختلفين في آنٍ واحد. الأول هو محور <strong>إنسان مقابل إنسان</strong>: عدة مطوّرين يشاركون الجلسة نفسها ويوجّهون تعليماتهم معاً إلى عامل واحد. والثاني هو محور <strong>عامل مقابل عامل</strong>: يتبادل كل عامل الرسائل مع الآخر ويوزّعان العمل فيما بينهما. سبب إثارة Claude Code متعدد اللاعبين للاهتمام هو أنه يتعامل مع هذين المحورين معاً.</p>

<p>يوضّح المخطط أدناه الفرق بين البنية المعزولة التقليدية والبنية التعاونية.</p>

<pre><code class="language-mermaid">flowchart TB
    subgraph existing["الوضع الحالي: مطوّر واحد لكل عامل (معزول)"]
        devA1["المطوّر A"] --&gt; claudeA1["Claude A&lt;br/&gt;(سياق A فقط)"]
        devB1["المطوّر B"] --&gt; claudeB1["Claude B&lt;br/&gt;(سياق B فقط)"]
        claudeA1 -.انقطاع.- claudeB1
    end

    subgraph collab["التعاون: جلسة مشتركة + عوامل متصلة"]
        personA["المطوّر A"] --&gt; session["جلسة طرفية مشتركة"]
        personB["المطوّر B"] --&gt; session
        session --&gt; agentA["Claude A"]
        session --&gt; agentB["Claude B"]
        agentA &lt;--&gt;|رسائل بين العوامل| agentB
        agentA --&gt; sharedState["حالة عمل مشتركة&lt;br/&gt;(المستودع · التقدّم)"]
        agentB --&gt; sharedState
    end

    existing --&gt;|تحوّل نموذجي| collab
</code></pre>

<p>في البنية التقليدية، لا يدرك عاملا المطوّرين وجود بعضهما البعض حتى لو كانا يعملان على المستودع نفسه. بما أن كل عامل يحكم ضمن سياقه الخاص فقط، يحدث أن يستدعي Claude الخاص بـ B واجهة أعاد Claude الخاص بـ A هيكلتها، لكن باستخدام التوقيع (signature) القديم دون أن يعلم بذلك. أما في البنية التعاونية، فتُشارَك الجلسة والحالة، وتتبادل العوامل الرسائل فيما بينها، مما يفتح مجالاً لتقليل هذا التضارب في وقت شبه فعلي (near real-time).</p>

<p>إلا أنه من الصعب الجزم، بناءً على المعلومات المُعلَنة فقط، بمدى تطوّر هذا الاتصال فعلياً. تتفاوت الجدوى العملية بشكل كبير حسب ما إذا كانت الطرفية المشتركة مجرد بث للشاشة، أو أن العوامل تتبادل فعلاً خططها ونيّات تعديلها في شكل منظَّم (structured). تركّز هذه المقالة على تناول تحديات التصميم استناداً إلى المفهوم المُعلَن، ولا تجزم بآليات داخلية لم يتم التحقق منها.</p>

<h2 id="لماذا-هذا-الاتجاه-الآن">لماذا هذا الاتجاه الآن</h2>

<p>هناك سبب لظهور عوامل التعاون في هذا التوقيت بالذات. مع تعاظم قوة النماذج، كبر حجم المهام التي يعالجها عامل واحد، وبالتالي أصبحت <strong>حالات قيام عدة عوامل بإجراء تغييرات كبيرة في آنٍ واحد</strong> أكثر تكراراً فعلياً. أصبح نمط تشغيل شخص واحد لعدة عوامل فرعية بالتوازي لتوزيع تعديل الملفات فيما بينها أمراً شائعاً بالفعل. خطوة واحدة أخرى إلى الأمام من هذه النقطة تكفي لتصل إلى لحظة تتقاطع فيها عوامل أشخاص مختلفين على قاعدة الكود نفسها. وبدون تنسيق، تتحول هذه اللحظة فوراً إلى تصادم.</p>

<p>خلفية أخرى هي تشظّي (fragmentation) نظام الأدوات البيئي. في كل فريق يختلط من يستخدم Claude Code، ومن يستخدم Codex، ومن يستخدم Cursor. ظهور المشاريع المذكورة آنفاً التي تجمع عوامل من عدة موردين في مساحة عمل واحدة هو محاولة لامتصاص هذا التشظّي عبر طبقة تنسيق. بعبارة أخرى، لم تعد عوامل التعاون مجرد ميزة لإضافة أشخاص أكثر، بل تتحوّل إلى <strong>مسألة بنية تحتية للتعامل مع واقع تعايش عوامل غير متجانسة</strong>.</p>

<h2 id="تحديات-التصميم-التي-يجب-أن-تحلها-عوامل-التعاون">تحديات التصميم التي يجب أن تحلها عوامل التعاون</h2>

<p>خلف المفهوم الجذّاب تكمن هندسة ليست بالسهلة. لكي تصل عوامل التعاون إلى بيئة الإنتاج الفعلية، يجب حل أربع مسائل على الأقل.</p>

<p>أولاً، <strong>التزامن والتصادم (Concurrency and Conflict)</strong>. يجب تحديد ما يحدث عندما يعدّل عاملان المنطقة نفسها من الملف نفسه في الوقت ذاته. في تعاون البشر، امتصت فروع git (branches) وعمليات الدمج (merge) هذه المشكلة، لكن الجلسات المشتركة في الوقت الفعلي تحتاج إلى تنسيق بدورات زمنية أقصر من ذلك بكثير. هل نضع قفلاً (lock)؟ أم نعتمد التعديل التفاؤلي (optimistic editing) ثم الدمج لاحقاً؟ أم نوزّع مناطق العمل منذ البداية بحيث لا تتداخل؟ هذه هي مفترق طرق التصميم.</p>

<p>ثانياً، <strong>نطاق مشاركة السياق (Context)</strong>. لجعل العوامل تتحدث فيما بينها، يجب تحديد ما الذي سيتم مشاركته. إذا نُقل سجل المحادثة الكامل دفعة واحدة، تنفجر تكلفة الرموز (tokens) ويتلوّث السياق. وفي المقابل، إذا شُوركت كمية قليلة جداً، يفقد التعاون معناه. ما هو مطلوب في النهاية هو <strong>تبادل حالة مُلخَّصة ومنظَّمة</strong>. يجب تبادل نية من قبيل “أخطط لتغيير هذه الدالة في هذا الملف على هذا النحو” في صيغة مضغوطة، وليس كنص خام كامل.</p>

<p>ثالثاً، <strong>حدود الثقة (Trust Boundaries)</strong>. وهي مسألة إلى أي مدى يجب أن يثق عاملي بالتغيير الذي يقترحه عامل شخص آخر. تماماً كما لا يدمج البشر التغييرات دون مراجعة، يجب ألا تقبل العوامل نواتج عوامل أخرى دون تحقّق. الدرس القديم في أنظمة العوامل المتعددة واضح: <strong>دمج نتائج عدة عوامل دون مرحلة تحقق يراكم الهلوسات (hallucinations)</strong>. وكلما زاد التعاون، ازدادت الحاجة إلى بوابات تحقق عدائية (adversarial verification) تفحص ناتج كل مشارك.</p>

<p>رابعاً، <strong>التدقيق وتتبّع المسؤولية (Audit and Accountability)</strong>. عندما يعمل عدة أشخاص وعدة عوامل على الكود نفسه، إذا تعذّر تتبّع أي تغيير نتج عن قرار من هو (أو أي عامل)، فلن يمكن إعادة تتبّع السبب عند وقوع حادث. كلما زاد التعاون، تحوّل سجل التدقيق (audit log) من خيار إلى ضرورة.</p>

<h2 id="الدلالات-على-تطبيقات-منتجات-thakicloud">الدلالات على تطبيقات منتجات ThakiCloud</h2>

<p>تتطابق تحديات التصميم هذه تماماً مع المسائل التي تتصدى لها ThakiCloud بالفعل بشكل مباشر في <strong>Paxis</strong>. Paxis هي مستوى تحكّم (control plane) من نوع Agent-Native Cloud يعمل فوق ai-platform، ويتعامل مع Skills وTools وPolicies وAudit Logs كموارد من الدرجة الأولى. تستجيب بنية Paxis للأسئلة التي يطرحها عامل البرمجة متعدد اللاعبين على النحو التالي.</p>

<p>هيكل التعاون بين العوامل هو تنسيق <strong>العوامل المتعددة القائم على DAG</strong> في Paxis. بدلاً من إطلاق عدة عوامل بشكل عشوائي في المساحة نفسها، يتم تفكيك المهمة إلى رسم بياني موجّه غير دوري (Directed Acyclic Graph)، بحيث تمتلك كل عقدة (node) منطقة مسؤوليتها الخاصة، مما يتيح تجنّب جزء كبير من تصادمات التزامن المذكورة آنفاً بنيوياً. إنها طريقة توزّع العمل منذ البداية بحيث لا يتداخل، بدلاً من دمج التعديلات المتداخلة لاحقاً.</p>

<p>تجيب <strong>بوابات السياسات (policy gates) وسجلات التدقيق</strong> في Paxis على مسألة حدود الثقة. يجب أن يمرّ ناتج أي عامل عبر بوابة سياسة قبل أن ينتقل إلى عامل آخر أو إلى نظام فعلي، وتُسجَّل جميع الإجراءات في سجل التدقيق. هذا يفرض من الناحية البنيوية للبنية التحتية مبدأ “لا تُدمَج نتائج عدة عوامل دون تحقق”. وكلما ازداد التعاون، تعاظمت قيمة هذه البوابة.</p>

<p>تخفف <strong>Skill Harness</strong> ومحرك المعرفة في Paxis من مشكلة تكلفة مشاركة السياق. البنية التي تختار أكثر من 960 مهارة (skill) عبر BM25 وتنفّذها في صندوق رملي معزول (isolated sandbox) مصمَّمة بحيث يستدعي العامل القدرات المطلوبة عند الحاجة فقط، بدلاً من حمل السياق الكامل في كل مرة. هذا يتماشى مع المطلب القائل بأن على عوامل التعاون تبادل الحالة في شكل ملخَّص، لا كتبادل كامل.</p>

<p>ما يدعم موارد التنفيذ تحت ذلك هو <strong>ai-platform</strong>. لكي يقوم عدة أشخاص وعدة عوامل بتنفيذ الكود في آنٍ واحد داخل صناديق رملية معزولة، يلزم عزل متعدد المستأجرين (multi-tenant isolation) وحوسبة مرنة. توفّر جدولة GPU القائمة على K8s وKueue، والعزل متعدد المستأجرين، الأساس الذي تعمل عليه عوامل التعاون فعلياً. وكون هذه البنية التعاونية يمكن إقامتها بأمان حتى في بيئات محلية (on-premises) وذات سيادة (sovereign)، له دلالة خاصة بالنسبة للمنظمات القلقة بشأن تسرّب البيانات.</p>

<p>باختصار، إذا كان Claude Code متعدد اللاعبين يجرّب مفهوم التعاون على مستوى الأداة الفردية، فإن Paxis يبنيه هيكلياً على مستوى مستوى التحكّم عبر السياسات والتدقيق والتنسيق. المستويان ليسا في تنافس بل في تكامل. لأن انتقال عوامل التعاون من عرض توضيحي ممتع إلى تشغيل يمكن الوثوق به يحتاج في النهاية إلى مستوى تحكّم مزوّد ببوابات سياسات وسجلات تدقيق وعزل موارد.</p>

<h2 id="القيود-والحجج-المضادة">القيود والحجج المضادة</h2>

<p>لا يمكن التفاؤل بعوامل التعاون فحسب. أكبر حجة مضادة هي أن <strong>تكلفة التنسيق قد تلتهم فوائد التعاون</strong>. تماماً كالاجتماعات بين البشر، فإن ازدياد الرسائل المتبادَلة بين العوامل يتحوّل بحد ذاته إلى تأخير وتكلفة رموز إضافية. من الممكن تماماً أن ينشغل عاملان بالتحقق المستمر من خطط بعضهما البعض إلى درجة عدم إنتاج الكود فعلياً. التعاون ليس دائماً أسرع من العمل المنفرد المتوازي.</p>

<p>ثانياً، <strong>ترابط أنماط الفشل</strong>. عندما تكون العوامل متصلة ببعضها، ينتقل الحكم الخاطئ لعامل واحد إلى العوامل الأخرى. في البنية المعزولة يبقى خطأ الشخص الواحد محصوراً فيه، أما في البنية المتصلة فينتشر الخطأ عبر السلسلة. وبدون بوابة تحقق، يضخّم التعاون الحوادث بدلاً من أن يقلّلها.</p>

<p>ثالثاً، لم يتم التحقق بعد من مستوى تبادل الحالة الذي نفّذته فعلياً الأداة متعددة اللاعبين المُعلَنة حالياً. تتفاوت الجدوى العملية بشكل كبير حسب ما إذا كانت الطرفية المشتركة أقرب إلى مشاركة الشاشة، أو بروتوكول منظَّم حقيقي بين العوامل. اتجاه المفهوم واضح، لكن قبل نقله إلى بيئة الإنتاج، يجب التأكد حتماً من حدود الثقة ومسار التدقيق. لا تزال هناك مسافة كبيرة بين العرض التوضيحي المثير للاهتمام والبنية التحتية الموثوقة.</p>

<p>ومع ذلك، أرى أن الاتجاه نفسه يصعب التراجع عنه. طالما أن البرمجيات عمل جماعي، فإن العوامل التي تمثّل هذا الفريق يجب أن تتحدث فيما بينها في النهاية. القضية الأساسية ليست ما إذا كنا سنُفعّل التعاون أم لا، بل ما إذا كنا سنبني ذلك التعاون <strong>على بنية تدعمها السياسات والتحقق والتدقيق</strong>.</p>

<h2 id="المصادر">المصادر</h2>

<ul>
  <li>Dorsa Rohani, “We made Claude Code multiplayer!” (X, 2026-07-08): <a href="https://x.com/dorsa_rohani/status/2074963064231952832">https://x.com/dorsa_rohani/status/2074963064231952832</a></li>
  <li>Claude Code (مستودع Anthropic الرسمي): <a href="https://github.com/anthropics/claude-code">https://github.com/anthropics/claude-code</a></li>
  <li>oh-my-claudecode (تنسيق متعدد العوامل يضع الفريق أولاً): <a href="https://github.com/yeachan-heo/oh-my-claudecode">https://github.com/yeachan-heo/oh-my-claudecode</a></li>
  <li>claude_codex_bridge (مساحة عمل CLI متعددة العوامل): <a href="https://github.com/SeemSeam/claude_codex_bridge">https://github.com/SeemSeam/claude_codex_bridge</a></li>
</ul>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="agentops" /><category term="claude-code" /><category term="multi-agent" /><category term="collaboration" /><category term="agentops" /><category term="paxis" /><category term="orchestration" /><summary type="html"><![CDATA[ننتقل من بنية يستخدم فيها كل شخص عاملاً واحداً، إلى بنية يتحدث فيها عدة أشخاص وعدة عوامل مع بعضهم البعض في مساحة العمل نفسها. انطلاقاً من Claude Code متعدد اللاعبين، نتناول مسائل التزامن والتصادم وحدود الثقة في عوامل التعاون، ونتحقق منها من منظور تشغيل ThakiCloud.]]></summary></entry><entry xml:lang="ar"><title type="html">نُقطّر مهاراتنا في نماذج صغيرة لتشغيلها تلقائيا: ملخص تطورات الأشهر الستة الأخيرة</title><link href="https://thakicloud.github.io/ar/agentops/distill-skill-fleet-small-models/" rel="alternate" type="text/html" title="نُقطّر مهاراتنا في نماذج صغيرة لتشغيلها تلقائيا: ملخص تطورات الأشهر الستة الأخيرة" /><published>2026-07-12T00:00:00+09:00</published><updated>2026-07-12T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/agentops/distill-skill-fleet-small-models</id><content type="html" xml:base="https://thakicloud.github.io/ar/agentops/distill-skill-fleet-small-models/"><![CDATA[<h2 id="نظرة-عامة">نظرة عامة</h2>

<p>أي فريق شغّل الوكلاء (agents) فعليا يصطدم بالجدار نفسه. تشغيل مهارة واحدة يستدعي النموذج الحدودي (frontier model) عشرات إلى مئات المرات، وحين تُطلق عشرات هذه المهارات يوميا بشكل آلي دون تدخل بشري، تكون الفاتورة أول من يصرخ. القدرة كافية، لكن المشكلة تكمن في بنية تدفع سعر النموذج الأعلى مستوى مع كل استدعاء.</p>

<p>لذلك يصبح الاتجاه واضحا: تقطير المهارات التي تحققت الشركة منها بالفعل وتستخدمها، في نموذج صغير لا يعرف سوى ما تفعله هذه المهارة تحديدا، ثم تشغيلها محليا وتلقائيا. والمثير أن هذا الاتجاه لم يعد نظريا. فقد رفعت الأبحاث الصادرة خلال الأشهر الستة الأولى من عام 2026 فكرة “النموذج الصغير + تقطير مهارات الوكلاء” إلى مستوى قابل للتطبيق العملي. يستعرض هذا المقال تلك التطورات، ويتناول كيف تنقل ThakiCloud أسطول مهاراتها فعليا إلى نماذج صغيرة، وأين تظهر نقاط الانهيار.</p>

<p>جمهور هذا المقال محدد بوضوح: مهندسو المنصات وMLOps الذين يشغّلون عددا كبيرا من مهارات الوكلاء، ويوازنون في تصميمهم بين تكلفة واجهات النماذج الحدودية والأتمتة. أما القارئ الآخر الذي يحتاج تقييما لتكلفة من منظور إداري، فيمكنه قراءة الفقرة الأخيرة فقط ليصل إلى الخلاصة.</p>

<h2 id="لماذا-الآن-أصبحت-النماذج-الصغيرة-الخيار-الافتراضي-للوكلاء">لماذا الآن: أصبحت النماذج الصغيرة الخيار الافتراضي للوكلاء</h2>

<p>لنتفق أولا على المصطلح. اعتبارا من عام 2026، يشير مصطلح النموذج اللغوي الصغير (SLM) إلى نماذج بحجم يتراوح تقريبا بين 1B و35B من المعاملات، قادرة على إنجاز المهمة الموكلة إليها مع أنها تعمل على وحدة معالجة رسومية (GPU) واحدة أو محطة عمل، وأحيانا على الجهاز نفسه (on-device). والجوهر ليس الحجم بذاته، بل السؤال: هل هو كافٍ للمهمة؟</p>

<p>الحجج التي تدفع نحو النماذج الصغيرة في تدفقات عمل الوكلاء ثلاث: التكلفة، وزمن الاستجابة، والقابلية للتجزئة (modularity). فوكيل متعدد مبني من خمسة نماذج صغيرة متخصصة أرخص وأسرع وأسهل في تصحيح الأخطاء من إرسال طلب واحد إلى نموذج حدودي. وهذه بالضبط النقطة التي يعالجها طرح باحثي NVIDIA بعنوان “النماذج اللغوية الصغيرة هي مستقبل الذكاء الاصطناعي العامل (agentic AI)”. فقد انخفضت عتبة القدرة اللازمة لمهام الوكلاء بما يكفي لتنجز اليوم نماذج تُشغَّل محليا مهاما كانت تتطلب قبل عام واحد فقط واجهة نموذج حدودي.</p>

<p>فرق التكلفة ليس هامشيا. تتكرر الحسابات التي تُظهر أن تشغيل نموذج صغير يكلف من عُشر إلى ثلاثين جزءا من واحد مقارنة بأعلى نموذج في السلسلة نفسها. وفي أنظمة الوكلاء التي تستدعي النموذج آلاف المرات لإنجاز مهمة معقدة واحدة، يكفي نقل جزء منها فقط إلى نموذج صغير لتنخفض تكلفة التشغيل بمقدار مرتبة عدد كامل. وفي عمليات تُطلق فيها المهارات بشكل آلي وبكميات كبيرة، ينعكس هذا التوفير مباشرة على الربح والخسارة.</p>

<h2 id="ملخص-تقنيات-الأشهر-الستة-الأخيرة-كيف-تُنقل-المهارات-إلى-نماذج-صغيرة">ملخص تقنيات الأشهر الستة الأخيرة: كيف تُنقل المهارات إلى نماذج صغيرة</h2>

<p>خلال الربعين الأخيرين، انتقل جوهر الاهتمام من التقطير المعرفي البسيط إلى تقطير مهارات الوكلاء، ثم إلى التقطير القائم على السياسة الحالية (on-policy distillation). ورسخ نهج يقوم فيه النموذج المعلّم بتقييم كل رمز (token) على مسارات يولّدها النموذج الطالب بنفسه. وفيما يلي ملخص لهذا التيار مصنفا حسب الفروع الرئيسية.</p>

<table>
  <thead>
    <tr>
      <th>النهج</th>
      <th>ملخص بسطر واحد</th>
      <th>أين يتفوق</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>التقطير القائم على السياسة الحالية متعدد المعلّمين (MOPD)</td>
      <td>إنشاء معلّمين متخصصين لكل مجال عبر التعلم المعزز، ثم يقيّم المعلّمون كل رمز أثناء توليد الطالب لمساراته الخاصة</td>
      <td>دمج عدة مهارات في طالب صغير واحد</td>
    </tr>
    <tr>
      <td>التقطير الذاتي المشروط بالمهارة (Skill-SD)</td>
      <td>يصبح النموذج نفسه معلّما وطالبا في آن واحد لتنقيح مسارات متعددة الجولات مشروطة بالمهارة</td>
      <td>وكلاء متعددو الأدوار، دون حاجة إلى معلّم منفصل</td>
    </tr>
    <tr>
      <td>التقطير القائم على السياسة الحالية خطوة بخطوة (SOD)</td>
      <td>حقن إشارة إشراف كثيفة على مستوى كل خطوة بدلا من المسار الكامل</td>
      <td>تثبيت الوكلاء الصغار في سلاسل استدعاء أدوات طويلة</td>
    </tr>
    <tr>
      <td>تقطير المهارات القائم على السياسة الحالية (OPID)</td>
      <td>تعويض ندرة المكافآت في التعلم المعزز للوكلاء بإشارة كثيفة من المعلّم</td>
      <td>مهام الوكلاء ذات المكافآت النادرة</td>
    </tr>
    <tr>
      <td>تقطير الوكلاء دون تدريب (AgentDistill)</td>
      <td>نقل القدرة عبر تسليم صندوق أدوات قابل لإعادة الاستخدام (MCP box) دون الحاجة إلى إعادة التدريب</td>
      <td>نقل سريع، وتجنب تكلفة التدريب</td>
    </tr>
  </tbody>
</table>

<p>بعض هذه التطورات وثيقة الصلة بالعمل الفعلي بشكل مباشر. أولا، التقت المختبرات الحدودية على نهج واحد: إنشاء معلّمين متخصصين بالتعلم المعزز لكل مجال على حدة (للرياضيات، وللبرمجة، وللوكلاء)، ثم أثناء توليد الطالب لمخرجاته يقوم كل هؤلاء المعلّمين بالتقييم ودمج النتائج في طالب واحد، وهو ما يُعرف بالتقطير القائم على السياسة الحالية. ولا يشترط أن يكون المعلّم الجيد نموذجا أكبر بالضرورة. فنقطة تفتيش (checkpoint) بنفس القاعدة وبنفس حجم الطالب، دُفعت بعمق في مجال واحد فقط، تصبح معلّما جيدا في المقابل. التخصص لا الحجم هو ما يصنع المعلّم.</p>

<p>ثانيا، تراكمت النتائج التي تثبت أن تقطير الوكلاء الصغار المستخدمين للأدوات ينجح فعليا. فعند تقطير وكيل كبير مزود بأدوات بحث وأدوات برمجة إلى نموذج صغير، تُرصد حالات يتفوق فيها هذا النموذج على نماذج من الفئة الأعلى مباشرة، خصوصا في المهام الخارجة عن نطاق التدريب. ويعني هذا أن تقطير الوكلاء طريق عملي لبناء “نموذج صغير كفء يستخدم الأدوات”.</p>

<h2 id="لماذا-تصب-معمارية-مهاراتنا-في-صالح-هذا-التحول">لماذا تصب معمارية مهاراتنا في صالح هذا التحول</h2>

<p>هنا تصبح بنية ThakiCloud مهمة. لطالما التزمنا بمبدأ تركيز القدرة في المهارة (skill) نفسها لا في الإطار المُشغّل (harness). إطار مُشغّل رقيق، ومهارات كثيفة. نُبقي الحلقة والصلاحيات المحيطة بالنموذج عند الحد الأدنى، بينما نُكدّس المعرفة الميدانية والأحكام والقوالب وحالات الفشل بكثافة داخل المهارة نفسها. وهذا يعني أن المهارة نفسها مصممة لتعمل حتى عند تبديل النماذج التي تديرها.</p>

<p>يتقاطع مع هذا مبدأ الحتمية في التنسيق (format determinism). ففي المهارات الدفعية (batch) التي تعمل وفق جدول زمني، لا نجعل النموذج يولّد التنسيق، بل نجعله يولّد المحتوى فقط. الأرقام، والقيم المُعدّدة (enum)، والعرض (rendering)، والتجميع، كلها يملكها كود حتمي. وحين يجتمع هذان المبدآن تصبح النتيجة لافتة: حتى عند تخفيض نموذج العامل (worker) من نموذج حدودي إلى نموذج صغير محلي، لا تتأرجح جودة المخرجات، لأن التنسيق والتحقق اللذين يحددان الجودة مثبّتان في الكود. يكفي أن يولّد النموذج الصغير محتوى النص فقط، بينما يضمن الإطار المُشغّل كل ما تبقى.</p>

<p>وهذا ليس تخمينا بل قياس فعلي. ففي يونيو 2026، أقمنا نموذجا صغيرا محليا (Gemma-4-26B) كعامل مهارات وأجرينا اختبار A/B حيا مقابل سلسلة Claude. وكانت النتيجة تعادلا 18 مقابل 18 بين Gemma وHaiku من حيث التزام العامل بالتعليمات. العائق الوحيد الملحوظ كان سقفا لنافذة السياق يبلغ نحو عشرة آلاف رمز (token)، إذ يفشل الطلب عند تجاوزه. لذلك اخترنا توجيها هجينا (hybrid routing): يتولى القائد (conductor) الحدودي الاستدلال الثقيل والإدارة، بينما يتولى النموذج الصغير المحلي مهام العامل ذات الطابع المُنسّق (structured). وبذلك يكون اتجاه تقطير المهارات في نماذج صغيرة وتشغيلها تلقائيا قد تحقق منه جزئيا بالفعل في بيئتنا. وينسجم مع هذا كون عاملَي تحويل النص إلى كلام (VoxCPM2) والتعرف على الكلام (Qwen-ASR) يعملان محليا بالفعل.</p>

<h2 id="أين-تنهار-الفكرة-عدم-تمجيد-التقطير">أين تنهار الفكرة: عدم تمجيد التقطير</h2>

<p>كون الاتجاه صحيحا لا يعني اختفاء الفخاخ. لنضع أولا الحجة المضادة.</p>

<p>أكثر العوائق واقعية هو تباعد سلسلة استدعاءات الأدوات. فالاستدلال الممزوج بالأدوات يصبح أقل استقرارا كلما طال في النماذج الصغيرة. ويخفف التقطير القائم على السياسة الحالية من هذه المشكلة عبر إشراف كثيف، لكن استدعاء أداة خاطئا واحدا يمتد إلى خطوات الاستدلال التالية ويوسّع تدريجيا الفارق بين مسار الطالب ومسار المعلّم. وهذا هو بالضبط سبب اعتماد التقطير خطوة بخطوة (SOD) على إشارة على مستوى كل خطوة بدلا من المسار الكامل، لضبط هذا التباعد. ومهام الوكلاء الطويلة إذا سُلّمت مباشرة إلى نموذج صغير دون هذا التدخل، تنهار في منتصف الطريق.</p>

<p>العائق الثاني هو تعارض الإشارات بين المعلّمين المتعددين. فإذا اختلفت المحاذاة والتنسيق والقيم بين المعلّمين، يُطمس الطالب في متوسط ضبابي أو تنخفض الجودة بسبب تضارب الإشارات. لهذا يُكرَّس نصف الأبحاث الحديثة تقريبا لعملية تنقية (purification) تُرشّح الإشارات الرديئة من بين إشارات المعلّمين. والرافعة الحقيقية ليست في إضافة عدد أكبر من المعلّمين، بل في بوابة تُقرّر أي معلّم يُوثق به عند أي رمز (token). وهذا يطابق تماما مبدأ نلتزم به بالفعل: إغلاق أي توزيع متفرع (fan-out) عبر مرحلة تحقق إلزامية. نجمع نتائج متعددة، لكننا لا نستخدم إلا ما نجا منها عبر تحقق عدائي (adversarial verification) قبل الدمج.</p>

<p>أما العائق الثالث فهو أكثر جوهرية. التقطير يُنتج تابعا محبوسا داخل سقف المعلّم. يرث النموذج الطالب المعرفة، لكنه يرث معها أيضا نقاط عمى المعلّم، ولا يستطيع بذاته أن يتقدم إلى ما هو أبعد منها. لذلك يجب ألا يوضع التقطير كبديل عن قيادة النموذج الحدودي، بل كاستراتيجية على مستوى طبقة النشر (deployment layer) لتنفيذ مهارات مُتحقق منها مسبقا بتكلفة منخفضة وسرعة عالية وعلى نطاق واسع. وهذا هو السبب في أن النموذج الهجين، الذي يُبقي القائد ويخفّض العامل، هو الخلاصة الأكثر صدقا.</p>

<h2 id="خارطة-طريق-التنفيذ-لدى-thakicloud">خارطة طريق التنفيذ لدى ThakiCloud</h2>

<p>المسار الذي اتخذناه يتكون من ثلاث مراحل. أولا، نُنشئ معلّما متخصصا لكل مهارة. والمرشح الأول هو المهارات المُنسّقة التي تُطلق بكميات كبيرة (مثل نشرات الأخبار الموجزة، وملخصات تويتر، وتوليد التقارير، وهي مهارات تمتلك فيها الحتمية في التنسيق مكانا في الكود بالفعل). فهذه المهارات يملك الكود فيها التنسيق، ولا يحتاج الطالب الصغير إلا أن يضبط محتوى النص فقط. ثانيا، نُقطّر من هؤلاء المعلّمين طلابا صغارا عبر التقطير القائم على السياسة الحالية، ونُشغّلهم محليا وتلقائيا. وبما أننا نعرف سقف نافذة السياق، نُبقي المهارات التي تتطلب سياقا طويلا لدى القائد، ونُخفّض إلى النموذج الصغير المهام القصيرة والمتكررة فقط. ثالثا، نحافظ على الجودة عبر تصعيد قائم على المراجعة الاستعادية (retrospective escalation). نبدأ بالنموذج الصغير، لكننا نُشغّل بالفعل حلقة ترقية تلقائية تُعيد مهارة معينة إلى نموذج أعلى إذا فشلت بشكل متكرر، دون سواها. نبدأ بتكلفة منخفضة، وحين تكشف البيانات فشلا، تُرفع تلك المهارة وحدها.</p>

<p>تتلخص فوائد خارطة الطريق هذه في ثلاثة عناصر: تنخفض التكلفة بمقدار مرتبة عدد كامل في التشغيل الآلي واسع النطاق، ويقصر زمن الاستجابة بفضل التشغيل المحلي، وعلى مستوى السيادة (sovereignty) يقل الاعتماد على واجهات خارجية ويقل انتقال البيانات إلى الخارج. وبالنسبة لنا، بصفتنا مُشغّلين لمنصة ذكاء اصطناعي وتعلم آلي قائمة على Kubernetes، فإن هذه العناصر الثلاثة ليست شعارات تسويقية، بل مؤشرات تشغيل يومية.</p>

<h2 id="الخاتمة">الخاتمة</h2>

<p>الاتجاه القائل بأن “المهارات تُقطَّر اليوم في نماذج صغيرة وتُشغَّل تلقائيا” صحيح. لكن الشكل المحدد لهذا الاتجاه هو ما يهم. إنشاء معلّمين متخصصين حسب المجال، ودمجهم في طالب صغير عبر التقطير القائم على السياسة الحالية، وإضافة بوابة تحقق تُرشّح إشارات المعلّمين الرديئة، والإشراف خطوة بخطوة على المهام الطويلة القائمة على استدعاء الأدوات، كل ذلك يقترب من المعيار الحالي. وتقف ThakiCloud في موقع منطلق مواتٍ لهذا التحول بفضل بنيتها القائمة أصلا على إطار مُشغّل رقيق وحتمية في التنسيق، ويدعم هذا الموقع بيانات فعلية تتمثل في تعادل عامل Gemma مع Haiku. والحل الهجين الذي يُبقي النموذج الحدودي قائدا ويُخفّض المهارات المُتحقق منها إلى عمال صغار هو الطريق الأكثر واقعية للحفاظ على التكلفة والجودة في آن واحد.</p>

<h2 id="المراجع">المراجع</h2>

<ul>
  <li>Small Language Models are the Future of Agentic AI (arXiv 2506.02153): <a href="https://arxiv.org/pdf/2506.02153">https://arxiv.org/pdf/2506.02153</a></li>
  <li>Skill-SD: Skill-Conditioned Self-Distillation for Multi-turn LLM Agents (arXiv 2604.10674): <a href="https://arxiv.org/pdf/2604.10674">https://arxiv.org/pdf/2604.10674</a></li>
  <li>SOD: Step-wise On-policy Distillation for Small Language Model Agents (arXiv 2605.07725): <a href="https://arxiv.org/pdf/2605.07725">https://arxiv.org/pdf/2605.07725</a></li>
  <li>OPID: On-Policy Skill Distillation for Agentic Reinforcement Learning (arXiv 2606.26790): <a href="https://arxiv.org/pdf/2606.26790">https://arxiv.org/pdf/2606.26790</a></li>
  <li>AgentDistill: Training-Free Agent Distillation with Generalizable MCP Boxes (arXiv 2506.14728): <a href="https://arxiv.org/pdf/2506.14728">https://arxiv.org/pdf/2506.14728</a></li>
  <li>Distilling LLM Agent into Small Models with Retrieval and Code Tools (arXiv 2505.17612): <a href="https://arxiv.org/pdf/2505.17612">https://arxiv.org/pdf/2505.17612</a></li>
  <li>Distillation in 2026 (so far): which frontier models use it and how (Hugging Face): <a href="https://huggingface.co/blog/sergiopaniego/distillation-2026">https://huggingface.co/blog/sergiopaniego/distillation-2026</a></li>
  <li>How Small Language Models Are Key to Scalable Agentic AI (NVIDIA Technical Blog): <a href="https://developer.nvidia.com/blog/how-small-language-models-are-key-to-scalable-agentic-ai/">https://developer.nvidia.com/blog/how-small-language-models-are-key-to-scalable-agentic-ai/</a></li>
</ul>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="agentops" /><category term="agentops" /><category term="distillation" /><category term="small-language-models" /><category term="on-policy-distillation" /><category term="skill-fleet" /><category term="cost-efficiency" /><category term="platform-engineering" /><summary type="html"><![CDATA[إذا شُغّلت مهارات الوكلاء عبر واجهة نموذج حدودي فقط، تتضخم التكلفة مع آلاف الاستدعاءات. رفعت أبحاث النصف الأول من عام 2026 مسار تقطير هذه المهارات في نماذج صغيرة بحجم 1B إلى 35B وتشغيلها محليا وتلقائيا إلى مستوى قابل للتطبيق العملي. يستعرض هذا المقال أحدث التقنيات مثل تقطير المهارات القائم على السياسة الحالية، والتقطير متعدد المعلّمين، وتقطير الوكلاء دون تدريب، ويوضح لماذا تصب بنية ThakiCloud القائمة على إطار مُشغّل رقيق وحتمية في التنسيق في صالح هذا التحول، مدعومة بقياس فعلي لعامل صغير (تعادل Gemma-4-26B مع Haiku)، وأين تنهار هذه الفكرة.]]></summary></entry><entry xml:lang="ar"><title type="html">vLLM v0.25.0: أصبح Model Runner V2 هو المسار الافتراضي واختفى PagedAttention</title><link href="https://thakicloud.github.io/ar/dev/vllm-v0-25-0-model-runner-v2/" rel="alternate" type="text/html" title="vLLM v0.25.0: أصبح Model Runner V2 هو المسار الافتراضي واختفى PagedAttention" /><published>2026-07-12T00:00:00+09:00</published><updated>2026-07-12T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/dev/vllm-v0-25-0-model-runner-v2</id><content type="html" xml:base="https://thakicloud.github.io/ar/dev/vllm-v0-25-0-model-runner-v2/"><![CDATA[<h2 id="نظرة-عامة">نظرة عامة</h2>

<p>يُعد vLLM محرك الاستدلال المعياري الفعلي لتشغيل نماذج اللغة الكبيرة مفتوحة الأوزان في بيئات الإنتاج. وبفضل إنتاجيته العالية ودعمه الواسع للعتاد، فإن معظم الفرق التي تستضيف نماذجها على وحدات معالجة رسومية خاصة بها تمرّ عبر vLLM. وإصدار جديد لمحرك بهذا الحجم ليس مجرد رفع رقم إصدار، بل حدث يؤثر في طريقة تشغيل حزمة الخدمة بأكملها.</p>

<p>هذا المقال موجّه للمهندسين الذين يشغّلون بنية استدلال تحتية مباشرة أو يتحملون مسؤولية تكاليف الخدمة. صدر vLLM v0.25.0 في عام 2026 ويضم 558 التزامًا من 232 مساهمًا، منهم 64 مساهمًا جديدًا. والحجم يعكس الاتجاه بوضوح: فقد تم في هذا الإصدار ترقية بنية التنفيذ الجديدة التي جرى الإعداد لها عبر عدة إصدارات سابقة لتصبح الافتراضية، وفي هذه العملية تم تنظيف المسارات القديمة.</p>

<p>يمكن تلخيص جوهر الإصدار في نقطتين. أولًا، <strong>أصبح Model Runner V2 (يُختصر MRv2) مسار التنفيذ الافتراضي لجميع النماذج الكثيفة (dense)</strong>. ثانيًا، <strong>أُزيل التنفيذ القديم لـ PagedAttention</strong> الذي جعل vLLM مشهورًا في الأساس. سنتناول ما يعنيه هذان التغييران لمن يشغّل خدمات على نطاق واسع، وما الفائدة العملية لميزات الفيديو وفك التشفير التخميني المرافقة لهما.</p>

<h2 id="ما-الذي-غيّره-هذا-الإصدار">ما الذي غيّره هذا الإصدار</h2>

<p>أكبر تغيير بنيوي هو ترقية MRv2. فقد جرى بناء MRv2 على مدى الإصدارات السابقة أثناء تعزيز دعم النماذج المكمّمة (quantized)، وابتداءً من v0.25.0 أصبح المسار القياسي لتنفيذ النماذج الكثيفة. وباتت معظم النماذج تعمل الآن على هذا النواة الجديدة دون الحاجة لأي أعلام (flags) خاصة. ويصف فريق vLLM هذه النواة بأنها أكثر تجزئة وأسرع، وقد ثبّت هذا الإصدار وضعها كمسار افتراضي.</p>

<p>النتيجة الطبيعية لهذا التحول هي حذف التنفيذ القديم لـ PagedAttention. فبعد أن أصبحت الواجهتان الخلفيتان V1 وMRv2 هما المسار القياسي، لم يعد هناك مبرر للاحتفاظ بتنفيذ الانتباه القديم. كان PagedAttention، الذي يدير ذاكرة التخزين المؤقت KV صفحةً بصفحة لتقليل هدر الذاكرة، أشبه بالتقنية الرمزية للأيام الأولى لـ vLLM، لكن الفكرة نفسها امتُصت بالفعل داخل الواجهات الخلفية الجديدة. ما أُزيل هنا ليس المفهوم، بل مسار كود قديم.</p>

<p>يوضّح المخطط التالي التحوّل في مسارات التنفيذ:</p>

<pre><code class="language-mermaid">flowchart TB
    A["طلب استدلال"] --&gt; B{"اختيار مسار التنفيذ"}
    B --&gt;|قبل v0.24| C["مسار PagedAttention القديم&lt;br/&gt;حُذف في هذا الإصدار"]
    B --&gt;|v0.25.0 افتراضي| D["Model Runner V2&lt;br/&gt;المسار القياسي لكل النماذج الكثيفة"]
    D --&gt; E["دعم النماذج المكمّمة"]
    D --&gt; F["فك التشفير التخميني الديناميكي&lt;br/&gt;متوافق مع رسم CUDA الكامل"]
    D --&gt; G["Mamba الهجين&lt;br/&gt;التخزين المؤقت للبادئة"]
    D --&gt; H["بادئة متعددة الوسائط&lt;br/&gt;انتباه ثنائي الاتجاه"]
</code></pre>

<h2 id="تفاصيل-التغييرات-الرئيسية">تفاصيل التغييرات الرئيسية</h2>

<p>الميزات الجديدة المبنية فوق MRv2 في هذا الإصدار تستهدف بشكل أساسي أحمال العمل متعددة الوسائط وذات السياق الطويل.</p>

<p>أولًا، <strong>أخذ العينات الفعّال من الفيديو (EVS، اختصار لـ Efficient Video Sampling)</strong>. تعاني نماذج الرؤية واللغة التي تتعامل مع الفيديو من انفجار في عدد الرموز (tokens) كلما زاد عدد الإطارات، مما يفاقم استهلاك الذاكرة وزمن الاستجابة بسرعة. تقوم EVS بحذف الرموز من المناطق الزمانية-المكانية شبه الثابتة مع الحفاظ على الهوية الموضعية (positional identity) للرموز المتبقية. ولأن عدد الرموز المحتفظ بها ينمو بمعدل أبطأ من الخطي مقارنة بطول المقطع، يمكن للنماذج التعامل مع سياق زمني أطول بكثير دون تجاوز حدود الذاكرة وزمن الاستجابة.</p>

<p>ثانيًا، <strong>أصبح فك التشفير التخميني الديناميكي متوافقًا مع رسم CUDA الكامل</strong>. يعتمد فك التشفير التخميني على نموذج مصغّر لاقتراح عدة رموز مسبقًا، يقوم النموذج الرئيسي بعدها بالتحقق منها، وهو ما يرفع الإنتاجية. وتوافق هذه الآلية مع التقاط رسم CUDA يعني أن بالإمكان الآن الاستفادة في آن واحد من تقليل عبء تشغيل النواة (kernel) الذي يوفره رسم CUDA، ومن مكاسب فك التشفير التخميني نفسه.</p>

<p>ثالثًا، هناك تعارض مهم يجب معرفته. <strong>تفعيل تقليم EVS يعطّل رسم CUDA الخاص بالفيديو تلقائيًا</strong>. والسبب أن EVS تجعل عدد الرموز متغيّرًا حسب البيانات، وهذا يتعارض مع افتراض الشكل الثابت الذي يعتمد عليه التقاط رسم CUDA. بمعنى آخر، اختيار توفير الرموز في الفيديوهات الطويلة يعني التخلي عن تحسين رسم CUDA في ذلك المسار. وتحديد الجانب الأنسب يعتمد على طبيعة حِمل العمل، وهو قرار يجب أن يتخذه كل فريق بنفسه.</p>

<p>كما تضمّن هذا الإصدار التضمينات (embeddings) في الزمن الحقيقي، والتخزين المؤقت للبادئات لنماذج Mamba الهجينة، ودعم الانتباه ثنائي الاتجاه لبادئات الوسائط المتعددة. ومع تزايد انتشار البنى الهجينة المبنية على Mamba، يشكّل دعم التخزين المؤقت للبادئات لها تحسينًا عمليًا يخفّض تكلفة الطلبات المتكررة.</p>

<h2 id="التثبيت-والتحقق">التثبيت والتحقق</h2>

<p>يُثبَّت vLLM v0.25.0 بالطريقة المعتادة.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>uv pip <span class="nb">install </span><span class="nv">vllm</span><span class="o">==</span>0.25.0
</code></pre></div></div>

<p>وأمر تشغيل نموذج للخدمة بعد التثبيت لم يتغيّر عن السابق.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>vllm serve &lt;model-id&gt;
</code></pre></div></div>

<p>وبما أن MRv2 أصبح المسار الافتراضي، فلا حاجة عادةً لتحديد أعلام منفّذ (runner) منفصلة عند تشغيل النماذج الكثيفة.</p>

<p>بصراحة، فإن البيئة التي كُتب فيها هذا المقال لا تحتوي على وحدة معالجة رسومية، ولذلك لم نستطع قياس الإنتاجية أو زمن الاستجابة الفعليين بأنفسنا. ولهذا السبب لم نُدرج في هذا المقال أي أرقام أداء لم نقسها بأنفسنا. وكل الحقائق المذكورة مستقاة من ملاحظات الإصدار الرسمية: عدد الالتزامات والمساهمين، وترقية MRv2 إلى المسار الافتراضي، وحذف التنفيذ القديم لـ PagedAttention، وخصائص EVS وفك التشفير التخميني الديناميكي، كلها مبنية على معلومات الإصدار المنشورة. ونوصي بإجراء قياسات فعلية على عنقود وحدات معالجة رسومية خاص بكم، باستخدام النماذج المستهدفة وأنماط الحركة المرورية الفعلية لديكم.</p>

<h2 id="دلالات-هذا-الإصدار-على-منتجات-thakicloud">دلالات هذا الإصدار على منتجات ThakiCloud</h2>

<p>يرتبط هذا الإصدار مباشرة بتشغيل <strong>ai-platform</strong> لدى ThakiCloud. تعتمد ai-platform على K8s وKueue لجدولة وحدات المعالجة الرسومية، وتستخدم vLLM لخدمة النماذج في بيئات متنوعة لعملائها. وبما أن vLLM هو المحرك الأساسي لحزمة الخدمة لدينا، فإن أي تغيير في بنية تنفيذه هو تغيير في طريقة تشغيلنا نفسها.</p>

<p>كون MRv2 أصبح المسار الافتراضي يعني أن بإمكاننا الآن تركيز جهود التحقق والتحسين على مسار تنفيذ قياسي واحد. فعندما تتعايش عدة مسارات، تتشعب عملية إعادة إنتاج الأخطاء وضبط الأداء بحسب كل مسار، أما عند اعتماد مسار قياسي واحد فإن التعقيد التشغيلي ينخفض. وبالنسبة لمنصة تخدم عشرات النماذج في آن واحد ضمن بيئة متعددة المستأجرين، فإن هذا التبسيط ينعكس مباشرة على الاستقرار.</p>

<p>كما يشكّل الجمع بين فك التشفير التخميني الديناميكي ورسوم CUDA، إلى جانب التخزين المؤقت الهجين لبادئات Mamba، تحسينات تصب في اتجاه خفض تكلفة الخدمة. وانخفاض تكلفة الخدمة يمثّل ميزة تنافسية مباشرة للعملاء الذين يحتاجون إلى بنية تحتية داخلية أو حلول ذكاء اصطناعي سيادية. فجدوى الوكلاء (agents) والتطبيقات التي تعمل فوق هذه البنية لا تتحقق إلا إذا أمكن تقديم الخدمة بتكلفة منخفضة على البنية التحتية الخاصة. من هذا المنطلق، تشكّل الخدمة منخفضة التكلفة التي توفرها ai-platform الأساس الذي يدعم جدوى طبقات الوكلاء الأعلى مثل Paxis.</p>

<h2 id="القيود-ووجهات-النظر-المضادة">القيود ووجهات النظر المضادة</h2>

<p>أول ما يجب الإشارة إليه هو أن هذا الإصدار يتضمن تغييرًا كاسرًا (breaking change). فبسبب حذف مسار PagedAttention القديم، قد تتعطل أي إعدادات مخصصة أو تكاملات من أطراف ثالثة كانت تعتمد على هذا المسار عند الترقية إلى v0.25.0. وعند رفع الإصدار في بيئة الإنتاج، ينبغي تشغيل النماذج المستهدفة فعليًا في بيئة اختبارية والتحقق من عدم وجود تراجعات قبل تطبيق الترقية. فرفع إصدار جديد مباشرة إلى الإنتاج لمجرد أنه جديد يُعد تصرفًا محفوفًا بالمخاطر.</p>

<p>ثانيًا، وكما أشرنا سابقًا فيما يخص التعارض بين EVS ورسوم CUDA، فإن الميزات الجديدة لا تحمل فائدة مطلقة دائمًا. يحتاج كل فريق إلى تحديد أي التحسينات يفعّلها أو يعطّلها بناءً على خصائص حِمل العمل الخاص به، وهذا قرار يصعب اتخاذه دون قياس فعلي. وتوقّع أن “تفعيل كل الميزات الجديدة يعني سرعة أكبر” كثيرًا ما يخالف الواقع.</p>

<p>ثالثًا، حجم الإصدار نفسه يمثّل مخاطرة. فإصدار يضم 558 التزامًا دفعة واحدة يترك مجالًا أكبر لتفاعلات غير متوقعة. وقد تظهر مشكلات خاصة ببنى نماذج أو مجموعات عتاد معينة فقط، لذا من الأفضل عدم تخطي خطوة التحقق على مجموعة النموذج ووحدة المعالجة الرسومية الفعلية التي تُستخدم لديكم.</p>

<p>باختصار، يمثّل vLLM v0.25.0 إصدارًا يُثبّت نتائج إعداد طويل كإعداد افتراضي. والتوحّد حول MRv2 وتنظيف المسارات القديمة يسيران في اتجاه جعل حزمة الخدمة أبسط وأسرع على المدى الطويل، وهو ما يفيد بشكل مباشر تشغيل ai-platform لدى ThakiCloud التي تعتمد على vLLM كمحرك أساسي. غير أن الاستفادة الآمنة من هذه المزايا تتطلب الالتزام بالأساسيات: التحقق من التغييرات الكاسرة والقياس الفعلي لكل حِمل عمل على حدة.</p>

<h2 id="المصادر">المصادر</h2>

<ul>
  <li>إصدار vLLM v0.25.0: <a href="https://github.com/vllm-project/vllm/releases/tag/v0.25.0">github.com/vllm-project/vllm/releases/tag/v0.25.0</a></li>
  <li>مقدمة Model Runner V2: <a href="https://vllm.ai/blog/2026-03-24-mrv2">vllm.ai/blog/2026-03-24-mrv2</a></li>
  <li>ورقة أخذ العينات الفعّال من الفيديو (EVS): <a href="https://arxiv.org/pdf/2510.14624">arxiv.org/pdf/2510.14624</a></li>
</ul>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="dev" /><category term="dev" /><category term="vllm" /><category term="inference" /><category term="serving" /><category term="cuda" /><category term="self-hosting" /><category term="kubernetes" /><category term="paxis" /><summary type="html"><![CDATA[صدر vLLM v0.25.0 بـ 558 التزامًا (commit) من 232 مساهمًا. يتمحور هذا الإصدار حول تغييرين رئيسيين: أولًا، أصبح Model Runner V2 هو مسار التنفيذ الافتراضي لجميع النماذج الكثيفة. ثانيًا، أُزيل من قاعدة الكود التنفيذ القديم لـ PagedAttention، الذي كان السبب في شهرة vLLM في البداية. إلى جانب ذلك، أُضيفت ميزة أخذ العينات الفعّال من الفيديو (EVS)، وفك التشفير التخميني الديناميكي، والتخزين المؤقت الهجين لبادئات Mamba. نستعرض هنا ما تغيّر وما ينبغي الاستعداد له من منظور فريق يشغّل بنية تحتية للاستدلال.]]></summary></entry><entry xml:lang="ar"><title type="html">ربط Claude Code بنماذج مفتوحة مستضافة ذاتياً: تشريح وسيط free-claude-code</title><link href="https://thakicloud.github.io/ar/llmops/claude-code-open-model-proxy/" rel="alternate" type="text/html" title="ربط Claude Code بنماذج مفتوحة مستضافة ذاتياً: تشريح وسيط free-claude-code" /><published>2026-07-12T00:00:00+09:00</published><updated>2026-07-12T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/llmops/claude-code-open-model-proxy</id><content type="html" xml:base="https://thakicloud.github.io/ar/llmops/claude-code-open-model-proxy/"><![CDATA[<h2 id="نظرة-عامة">نظرة عامة</h2>

<p>أصبح Claude Code وCodex خلال العام الماضي من أكثر وكلاء البرمجة استخداماً داخل الطرفيات وبيئات التطوير المتكاملة. المشكلة أن كلا الوكيلين مرتبط ارتباطاً وثيقاً بواجهة برمجة تطبيقات سحابية واحدة، Anthropic بالنسبة لأحدهما وOpenAI للآخر. بالنسبة للفرق التي لا تستطيع، بموجب سياسات داخلية، إرسال الكود المصدري إلى واجهة خارجية، أو التي تعمل ضمن شبكات معزولة، أو التي تُشغّل بالفعل نماذج مفتوحة الأوزان على وحدات معالجة رسومية خاصة بها، يتحول هذا الارتباط إلى جدار حقيقي.</p>

<p>هذا المقال موجّه لقادة الهندسة الذين يوازنون بين تكلفة تشغيل وكلاء البرمجة وسيادة البيانات، وللممارسين الذين يسعون لتقديم النماذج داخل بنيتهم التحتية الخاصة. تناولنا بالفحص وسيطاً مفتوح المصدر يُدعى <code class="language-plaintext highlighter-rouge">free-claude-code</code> أثار اهتماماً واسعاً في مجتمعات المطورين مؤخراً، وذلك بالرجوع إلى المستودع الفعلي مباشرة. عُرف هذا المشروع بشعار تسويقي مثير للجدل نوعاً ما حول “التخلص من الاشتراك”، لكن الجانب المثير تقنياً يكمن في مكان آخر. فهو يحافظ على تجربة استخدام وكيل مُثبَت الجدارة، هو Claude Code، بينما يستبدل فقط النموذج القابع خلفه ببنية تحتية خاصة.</p>

<p>وللإيجاز منذ البداية: القيمة الجوهرية لهذا الوسيط ليست “المجانية” بل “العزل”. فصل واجهة الوكيل عن خلفية النموذج يتيح نقل نفس سير العمل إلى نموذج مفتوح يعمل على وحدات معالجة رسومية داخلية. نستعرض هنا سبب أهمية هذا الفصل من منظور من يُشغّل بنية تحتية للذكاء الاصطناعي داخل مؤسسته، والقيود التي يجب أخذها بعين الاعتبار معه.</p>

<h2 id="ما-هذه-الأداة">ما هذه الأداة</h2>

<p><code class="language-plaintext highlighter-rouge">free-claude-code</code> هو خادم وسيط محلي مبني على FastAPI. يوفر نقطة نهاية متوافقة مع واجهة برمجة تطبيقات Anthropic، لذا فإن Claude Code CLI وCodex CLI وامتدادات VS Code وJetBrains ACP، وحتى بعض روبوتات المحادثة، تظنه خادم Anthropic الحقيقي وتتصل به مباشرة. من منظور الوكيل لم يتغير شيء، فقط النموذج الذي يعالج الطلب فعلياً هو الذي يُستبدَل من خلف الكواليس.</p>

<p>ما يميز هذا المشروع هو اتساع نطاق الخلفيات المدعومة. وفقاً لوصف المستودع، يمكن التبديل بين 24 مزوداً بين السحابي والمحلي من واجهة الإدارة، تشمل واجهات برمجة تطبيقات سحابية مثل NVIDIA NIM وOpenRouter وDeepSeek، إلى جانب أوقات تشغيل محلية مثل LM Studio وllama.cpp وOllama. بمعنى آخر، يمكن الاتصال بواجهة تجارية أو بنموذج مفتوح يعمل على وحدة معالجة رسومية خاصة بك.</p>

<p>بنية التوجيه أيضاً ليست مجرد مفتاح تبديل بسيط. يُقسّم Claude Code داخلياً العمل على ثلاث فئات من النماذج حسب الموقف: Opus وSonnet وHaiku. يُرسَل الاستدلال الثقيل إلى Opus، وتُرسَل المهام اليومية إلى Sonnet، ويُرسَل الاستكشاف الخفيف إلى Haiku. يتيح <code class="language-plaintext highlighter-rouge">free-claude-code</code> تعيين كل من هذه الفئات الثلاث، إضافة إلى حركة الاحتياط (fallback)، إلى نموذج خلفي مختلف. يبقى دعم البث (streaming) واستدعاء الأدوات (tool use) والاستدلال (reasoning) قائماً ضمن حدود ما يدعمه النموذج المستهدف. هذا التوجيه القائم على الفئات يتطابق تماماً مع مبدأ مطبَّق بالفعل داخل ThakiCloud: إرسال الاستكشاف إلى نموذج رخيص، والتنفيذ إلى نموذج متوسط، وحجز النموذج الأغلى لقرارات الهندسة المعمارية فقط.</p>

<p>يمكن تلخيص تدفق الطلب الكامل في المخطط التالي.</p>

<pre><code class="language-mermaid">flowchart TB
    A["وكيل البرمجة&lt;br/&gt;Claude Code / Codex / امتداد IDE"] --&gt; B["وسيط free-claude-code&lt;br/&gt;FastAPI، نقطة نهاية متوافقة مع Anthropic"]
    B --&gt; C["واجهة الإدارة&lt;br/&gt;127.0.0.1:8082/admin&lt;br/&gt;اختيار المزوّد والتحقق منه"]
    B --&gt; D{"توجيه حسب الفئة&lt;br/&gt;Opus / Sonnet / Haiku / احتياطي"}
    D --&gt;|استدلال ثقيل| E["خلفيات سحابية&lt;br/&gt;OpenRouter / DeepSeek / NIM"]
    D --&gt;|مهام يومية| F["أوقات تشغيل محلية&lt;br/&gt;Ollama / llama.cpp / LM Studio"]
    D --&gt;|خدمة ذاتية الاستضافة| G["vLLM داخلي&lt;br/&gt;عنقود GPU داخلي"]
</code></pre>

<p>الفرق عن الطريقة السابقة واضح. حتى الآن، كان تشغيل وكيل برمجة على نموذج مفتوح يعني إما فرع (fork) الوكيل نفسه، أو بناء غلاف واجهة برمجة تطبيقات مختلف يدوياً لكل نموذج. يجمع هذا الوسيط طبقة التحويل هذه في مكان واحد، تاركاً الوكيل دون مساس بينما يتغير النموذج فقط.</p>

<h2 id="التثبيت-والتكامل">التثبيت والتكامل</h2>

<p>يوفر المستودع مسارين للتثبيت. الأول هو تنزيل سكربت التثبيت وتشغيله دفعة واحدة.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-fsSL</span> <span class="s2">"https://github.com/Alishahryar1/free-claude-code/blob/main/scripts/install.sh?raw=1"</span> | sh
</code></pre></div></div>

<p>يجهّز هذا السكربت <code class="language-plaintext highlighter-rouge">free-claude-code</code> نفسه مع <code class="language-plaintext highlighter-rouge">uv</code> وPython 3.14. إذا لم يكن Claude Code وCodex مثبّتَين، يتم تثبيتهما أيضاً، وهذا يتطلب وجود npm مسبقاً، أي أن Node.js يجب أن يكون مثبتاً قبل ذلك. تشغيل نفس الأمر مرة أخرى يعمل كتحديث.</p>

<p>لمن يفضّل التثبيت اليدوي، يمكن استنساخ المستودع مباشرة ثم تجهيز ملف البيئة بدلاً من ذلك.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://github.com/Alishahryar1/free-claude-code.git
<span class="nb">cd </span>free-claude-code
<span class="nb">cp</span> .env.example .env
pip <span class="nb">install </span>uv
</code></pre></div></div>

<p>بعد تشغيل الوسيط، يمكن فتح واجهة الإدارة المحلية حصراً من المتصفح لاختيار المزوّد والتحقق من الاتصال.</p>

<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>http://127.0.0.1:8082/admin
</code></pre></div></div>

<p>من هذه الشاشة تُدخَل مفاتيح كل مزوّد ويُتحقَّق من حالة الاتصال، ثم يُحدَّد النموذج الذي يوضع في فتحات Opus وSonnet وHaiku والاحتياط. بعد إتمام الإعداد، يكفي تغيير عنوان قاعدة واجهة برمجة التطبيقات في Claude Code ليشير إلى هذا الوسيط. من هنا فصاعداً تُستخدَم أوامر Claude Code المعتادة كما هي، لكن الاستدلال الفعلي يحدث على الخلفية التي حُدِّدت.</p>

<h2 id="كيف-يعمل-فعلياً-وما-الذي-تحقّقنا-منه">كيف يعمل فعلياً، وما الذي تحقّقنا منه</h2>

<p>في هذا التحليل تحققنا من الوثائق العامة للمستودع وسكربت التثبيت فعلياً للتأكد من صحة الأوامر والبنية أعلاه. لكننا لم نقس زمن الاستجابة الفعلي ولا الدقة عبر جميع الخلفيات الأربع والعشرين. أي قياس أداء ذي معنى يجب أن يُجرى بعد تحميل نموذج مفتوح فعلياً على وحدة معالجة رسومية خاصة، والبيئة التي كُتب فيها هذا المقال لا تملك وحدة معالجة رسومية محلية، لذا لم نتمكن من إجراء قياس فعلي للرحلة الكاملة عبر كل خلفية. تجنباً لاختلاق أرقام، لم نُدرج في هذا المقال أي أرقام زمن استجابة أو معدل نقل غير موثَّقة.</p>

<p>في المقابل، هناك حقيقة بنيوية يمكن التحقق منها بوضوح. بما أن الوسيط يعرض نقطة نهاية متوافقة مع Anthropic، فإن الوكيل ليس بحاجة لمعرفة ما هي الخلفية فعلياً. طالما بقي هذا العقد قائماً، فإن تبديل الخلفية من Ollama إلى نشر vLLM داخلي لا يتطلب أكثر من إعادة تعيين فتحة واحدة من واجهة الإدارة. لا حاجة لإعادة تثبيت الوكيل ولا لتغيير سير العمل. اقتراب تكلفة هذا التبديل من الصفر هو نقطة القوة الفعلية في هذه البنية.</p>

<p>من المهم أيضاً تسجيل الحقيقة الموضوعية بخصوص الجودة. جودة البرمجة عند الاتصال بنموذج مفتوح ليست مماثلة لنماذج Anthropic العليا. وقد تظهر الفجوة تحديداً في سلاسل استدعاء الأدوات الطويلة أو عمليات إعادة الهيكلة المعقدة. لذا فالأدق فهم هذا الوسيط لا بوصفه “أداة تحافظ على الجودة مجاناً” بل بوصفه “أداة تتيح للفريق نفسه اختيار نقطة التوازن بين الجودة والسيادة”.</p>

<h2 id="دلالات-لمنتجات-thakicloud">دلالات لمنتجات ThakiCloud</h2>

<p>السؤال الذي تطرحه هذه الأداة يتقاطع تماماً مع المشكلة التي تحلها ThakiCloud عبر منتجين.</p>

<p>أولاً، من زاوية <strong>Paxis</strong>. Paxis هو مستوى التحكم الخاص بـThakiCloud لسحابة موجَّهة بالوكلاء (Agent-Native Cloud)، حيث تُعامَل المهارات والأدوات والسياسات وسجلات التدقيق كموارد من الدرجة الأولى. الفصل بين واجهة الوكيل وخلفية النموذج الذي يُظهره <code class="language-plaintext highlighter-rouge">free-claude-code</code> هو نسخة مصغرة من الاتجاه الذي تسعى إليه Paxis. في Paxis، لا يُترَك توجيه نموذج وكيل البرمجة لاختيار فردي يدوي من واجهة إدارة محلية، بل يمكن ضبطه عبر بوابة سياسات على مستوى المؤسسة بأكملها. أي فريق يرسل أي طلب إلى أي خلفية، وهل يُفرَض إلزامياً أن يُعالَج كود مستودع حساس عبر نموذج داخلي فقط، كل ذلك يُسجَّل في السياسات وسجلات التدقيق. إذا كان وسيط واحد يغيّر إنتاجية الفرد، فإن Paxis ترفع نفس المبدأ إلى مستوى حوكمة المؤسسة. وإذا أُضيفت إلى ذلك موصلات MCP وتنفيذ ضمن بيئة معزولة (sandbox)، يدخل حتى استدعاء الأدوات الخارجية ضمن نطاق التحكم.</p>

<p>ثانياً، من زاوية <strong>ai-platform</strong>. كون هذا الوسيط يدعم Ollama وllama.cpp كأوقات تشغيل محلية يعني، في النهاية، أن على أحدهم أن يقدّم ذلك النموذج المفتوح بشكل موثوق. يكفي Ollama على حاسوب محمول شخصي لعرض توضيحي، لكنه لا يتحمل الحمل الناتج عن فريق كامل يشغّل وكيل برمجة طوال اليوم. تُجدوِل منصة ai-platform الخاصة بـThakiCloud وحدات معالجة الرسومات عبر K8s وKueue، وتقدّم النماذج المفتوحة عبر vLLM في بيئة متعددة المستأجرين. عند توجيه حركة وكيل البرمجة إلى طبقة التقديم هذه، يصبح ممكناً تشغيل وكيل برمجة داخلي بحجم فريق كامل دون سقف قدرة الجهاز الفردي. تنخفض تكلفة التقديم ويصبح التعامل مع الشبكات المعزولة ميزة تنافسية هنا.</p>

<p>يُكمِّل المنظوران أحدهما الآخر. عندما تقدّم ai-platform النماذج المفتوحة بتكلفة منخفضة وموثوقية عالية، تتولى Paxis التحكم في حركة الوكيل فوق ذلك عبر السياسات والتدقيق. التقديم منخفض التكلفة هو ما يصنع جدوى الوكيل اقتصادياً، والحوكمة هي ما يحوّل تلك الجدوى إلى شكل تستطيع المؤسسة استخدامه براحة بال.</p>

<h2 id="القيود-والاعتراضات">القيود والاعتراضات</h2>

<p>أولاً، يجب الإشارة بصراحة إلى مسألة الشروط والأحكام. استخدام عملاء مثل Claude Code أو Codex بطريقة تلتف حول اشتراك مدفوع قد يتعارض مع شروط استخدام كل خدمة. الاستخدام الذي يعتبره هذا المقال ذا معنى يقتصر على السيناريو الداخلي المتمثل في توجيه الحركة إلى نماذج مفتوحة مملوكة ذاتياً أو خلفية واجهة برمجة تطبيقات متعاقَد عليها بشكل قانوني، وليس التفافاً غير مصرَّح به على خدمة مدفوعة. أي مؤسسة تعتزم تبني هذا الحل يجب أن تراجع شروط استخدام كل عميل أولاً.</p>

<p>ثانياً، تتسع سطح الهجوم. الوسيط، بحكم تعريفه، يقف في موقع يعترض كل الحركة بين الوكيل والنموذج، أي الكود المصدري والمطالبات (prompts) بالكامل. أي إعداد وسيط لا يمكن الوثوق به قد يتحول إلى مسار تسريب للكود. لا تتحقق الفائدة إلا عند تشغيله داخل بنية تحتية خاصة وبطريقة قابلة للتدقيق. هذه بالضبط النقطة التي تجعل بوابات السياسات وسجلات التدقيق في Paxis ضرورية.</p>

<p>ثالثاً، هناك عبء يتعلق بالجودة والصيانة. كما ذُكر سابقاً، جودة البرمجة على النماذج المفتوحة تختلف عن أفضل النماذج التجارية، ودعم أربع وعشرين خلفية يعني أيضاً هشاشة أكبر أمام تغييرات واجهات برمجة تطبيقات المزوّدين. عندما تغيّر Anthropic أو أي مزوّد عقد واجهة برمجة تطبيقاته، على الوسيط أن يواكب ذلك. تحميل سير عمل مؤسسة بأكمله على صيانة بمستوى مشروع فردي أمر محفوف بالمخاطر.</p>

<p>وخلاصة القول، تكتسب <code class="language-plaintext highlighter-rouge">free-claude-code</code> قيمتها الحقيقية حين تُقرأ لا بوصفها شعار “Claude Code مجاني”، بل بوصفها “تجربة مفتوحة المصدر تفصل طبقة النموذج عن وكيل البرمجة”. وعندما يلتقي هذا الفصل بالتقديم الداخلي، ينفتح طريق واقعي لتشغيل وكيل برمجة بحجم فريق كامل مع الحفاظ على سيادة البيانات. وما تبنيه ThakiCloud عبر ai-platform وPaxis هو بالضبط تمكين المؤسسة من السير في هذا الطريق بأمان.</p>

<h2 id="المصادر">المصادر</h2>

<ul>
  <li>مستودع free-claude-code: <a href="https://github.com/Alishahryar1/free-claude-code">github.com/Alishahryar1/free-claude-code</a></li>
  <li>سكربت التثبيت: <a href="https://github.com/Alishahryar1/free-claude-code/blob/main/scripts/install.sh">scripts/install.sh</a></li>
</ul>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="llmops" /><category term="llmops" /><category term="claude-code" /><category term="proxy" /><category term="self-hosting" /><category term="ollama" /><category term="vllm" /><category term="agent" /><category term="paxis" /><summary type="html"><![CDATA[وكلاء البرمجة مثل Claude Code وCodex مرتبطون بشكل وثيق بواجهة برمجة تطبيقات Anthropic. يضع free-claude-code وسيطاً متوافقاً مع Anthropic بين الطرفين، فتحتفظ الفرق بنفس واجهة الوكيل بينما توجَّه الطلبات إلى خلفيات مستضافة ذاتياً مثل Ollama وllama.cpp وvLLM. نستعرض المستودع الفعلي وكيف يتيح اختيار أحد 24 مزوداً من واجهة إدارة، وتوجيه حركة Opus وSonnet وHaiku إلى نماذج مختلفة، ثم نوضح دلالة ذلك بالنسبة لـThakiCloud من زاوية وكلاء البرمجة الداخليين (on-premise).]]></summary></entry><entry xml:lang="ar"><title type="html">التحقق أولا بنموذج مكلف ثم الانحدار إلى نموذج أرخص: كيف نخفض تكلفة النماذج في أسطول المهارات عبر بوابة كود</title><link href="https://thakicloud.github.io/ar/research/vetd-cost-descent/" rel="alternate" type="text/html" title="التحقق أولا بنموذج مكلف ثم الانحدار إلى نموذج أرخص: كيف نخفض تكلفة النماذج في أسطول المهارات عبر بوابة كود" /><published>2026-07-12T00:00:00+09:00</published><updated>2026-07-12T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/research/vetd-cost-descent</id><content type="html" xml:base="https://thakicloud.github.io/ar/research/vetd-cost-descent/"><![CDATA[<h2 id="المشكلة-ليست-في-النموذج-بل-في-التخصيص">المشكلة ليست في النموذج بل في التخصيص</h2>

<p>عند أتمتة المهام باستخدام نماذج اللغة الكبيرة، نصطدم مرارا بالمعضلة نفسها. النموذج الأكثر ذكاء هو الخيار الآمن من حيث الدقة، لكنه أغلى من النماذج الأصغر بمقدار 5 إلى 20 مرة. ومع ذلك فإن معظم المهام التي تمت أتمتتها لا تحتاج فعليا إلى تلك القدرة.</p>

<p>خذ مثالا أسطول أتمتة يديره شخص واحد. مولّد أوراق بحثية يعمل كل ليلة، وملخص اجتماع صباحي يومي، وموجز CRM للمبيعات، ومراقب للسوق، ومحسّن للمدونة، وخط أنابيب للنشر، كل منها مغلّف في مهارة واحدة تعمل بشكل مستقل. كلما زاد عدد المهارات، كبرت فاتورة النماذج الشهرية معها، وهذه الفاتورة تسيطر عليها مجموعة صغيرة من سير العمل المثبتة عند أعلى مستوى.</p>

<p>الحل الأكثر سذاجة هو تشغيل كل شيء بالنموذج الطليعي. هذا ما فعله أسطولنا في البداية، ولم ينجح مع التوسع. فقد ابتلع سير عمل واحد للمبيعات، يشغّل كل من التنسيق وكتابة المحتوى على المستوى الطليعي، في وقت من الأوقات نحو 94% من إنفاق النماذج الشهري بمفرده. وعلى النقيض، إذا شغّلنا كل شيء بأرخص نموذج، تتدهور بصمت المخرجات التي تحتاج فعلا إلى القدرة. هذا التدهور لا يُلاحظ إلا بعد أسابيع حين ينتبه له أحد.</p>

<p>السؤال الحقيقي يختلف من مهمة إلى أخرى، ولا يمكن الإجابة عنه إلا بالقياس لا بالحدس. <strong>بالنسبة لهذه المهارة، تحت هذا النص التوجيهي وهذا السقالة، ما هو أرخص مستوى لا يتدهور بشكل ملحوظ عن مخرجات النموذج الطليعي؟</strong> الإجابة بالحدس عن هذا السؤال خاطئة، والإجابة عنه مرة واحدة غير كافية، لأن النص التوجيهي والمهارة والنموذج جميعها تتغير باستمرار.</p>

<p>نقدم هنا الطريقة التي نستخدمها في أسطولنا. اسمها <strong>VETD، أي Validate-Expensive-Then-Descend</strong>. تتحقق أولا بالنموذج المكلف، ثم تنحدر فقط إلى المستوى الأرخص الذي يسمح به الكود.</p>

<h2 id="أربعة-التزامات">أربعة التزامات</h2>

<p>الالتزامات الجوهرية لـVETD أربعة.</p>

<p>أولا، نتحقق أولا بالنموذج المكلف. مخرجات المستوى الطليعي هي خط الأساس للجودة. لا نفترض أن المستوى الأرخص كافٍ، بل نقيس فعليا الفجوة بينه وبين أفضل مخرجات.</p>

<p>ثانيا، لا ننحدر إلا تحت بوابة يملكها الكود. القرار بشأن قبول مستوى أرخص يتخذه كود حتمي يطبّق معيار تقييم صريح. لا نقرر أبدا بناء على ادعاء نموذج بأن النتيجة “تبدو جيدة”. النموذج يُستخدم فقط لتوليد المحتوى ووضع درجات لكل بُعد، أما حساب النجاح والرسوب فيملكه الكود بالكامل.</p>

<p>ثالثا، نُمسك بالجودة عبر الكود لا عبر مستوى النموذج كلما أمكن ذلك. كثير من المهارات تحافظ على جودتها بعد الخفض لأن المعالج اللاحق الحتمي يملك الصيغة والعدد والتحقق. حيث يكون الخفض آمنا، فإن ما يقوم بالعمل غالبا ليس النموذج بل تلك الحواجز الواقية.</p>

<p>رابعا، القدرة التي لا يمكن خفضها تُوجَّه ولا تُقلَّد. حين ترفض البوابة الخفض بسبب فجوة في القدرة، تبقى تلك المهارة مثبتة عند المستوى المكلف. لا نتظاهر بأن النموذج الأرخص كافٍ بينما الدليل يقول عكس ذلك.</p>

<h2 id="شكل-الحلقة">شكل الحلقة</h2>

<p>يتكون التدفق الكامل من خمس مراحل.</p>

<p><img src="/assets/images/vetd-cost-descent-loop.png" alt="حلقة VETD" /></p>

<p>أولا هناك أسطول المهارات، وهو وحدة التحسين. المهارة الواحدة هي دليل يضم عقد النص التوجيهي والسكربتات والقوالب ومُشغّل الجدولة. يحتفظ سجل سياسات مركزي لكل مهارة بمستواها الحالي، وحالة التثبيت، وعدد مرات الفشل المتتالية، والسبب المقروء للبشر وراء ذلك المستوى.</p>

<p>ثم يأتي مسح المستويات. يأخذ المهارة المستهدفة وتركيبات إدخال ثابتة، ويشغّلها بدون واجهة مرة لكل مستوى لجمع المخرجات. تصبح مخرجات المستوى الطليعي خط الأساس.</p>

<p>بعد ذلك يأتي الحكم. حكَم يعمل على المستوى الطليعي يمنح كل مستوى درجة من 1 إلى 5 لكل بُعد في معيار التقييم، وينتج للمرشح الأرخص كائن فجوة مُهيكلا. الفجوة الإجمالية هي headline_gap، والفجوة القابلة للإصلاح عبر تعديل النص التوجيهي هي fixable gap، والفجوة التي يفتقر فيها المستوى الأرخص بنيويا هي reasoning gap. المهم أن الحكم لا ينتج سوى هذه التسميات والدرجات. قرار الخفض لا يتخذه الحكم.</p>

<p>المرحلة الأخيرة هي البوابة الحتمية. يوافق الكود على الخفض فقط إذا تحققت ثلاثة شروط معا: headline_gap عند حد أدنى أو أقل، وreasoning gap يساوي صفرا، وfixable gap يساوي صفرا. النتيجة تتفرع إلى ثلاثة مسارات. إذا تحققت الشروط الثلاثة يُخفَّض المستوى، وإذا كان headline_gap مقبولا لكن توجد fixable gap تُصلَح المهارة أولا ثم تُعاد المحاولة، وإذا وُجدت reasoning gap أو تجاوز headline_gap الحد الأدنى يُعلَّق القرار أو يُثبَّت المستوى المكلف.</p>

<h2 id="لماذا-تبقى-الجودة-رغم-الخفض">لماذا تبقى الجودة رغم الخفض</h2>

<p>لكي يكون الخفض آمنا يجب أن يكون محتوى المستوى الأرخص كافيا، ويجب أن تُضبط الصيغة في مكان آخر. حالة الخفض الأبرز في أسطولنا نجت بفضل هذا المبدأ بالضبط. كانت مهارة تنشر ملخص جدول زمني خمس مرات يوميا مثبتة عند المستوى الطليعي، وكانت تستهلك حصة كبيرة من الحصة المخصصة.</p>

<p>قبل الخفض أعدنا هيكلة المهارة أولا. أصبح العامل الفردي لكل بند ينتج المحتوى فقط، بينما يحسب مدقق حتمي بوابات الجودة عبر الكود. يعيد الكود حساب الحد الأدنى لطول النص، والحد الأدنى لعدد المصادر، وعدد أدلة البحث على الويب، وبوابة كشف أسلوب الكتابة الذي يوحي بالذكاء الاصطناعي، ويعيد توزيع أي بند لم يجتز الفحص. أما الترويسة والصيغة وإزالة التكرار فتملكها وحدة نشر منفصلة. لم نخفض هذه المهارة من opus إلى sonnet إلا بعد أن أصبحت الصيغة مملوكة للكود. السبب المسجَّل في السياسة واضح: الجودة تحافظ عليها حواجز الحتمية الصيغية لا مستوى النموذج.</p>

<h2 id="كيف-انقسم-الأسطول">كيف انقسم الأسطول</h2>

<p><img src="/assets/images/vetd-cost-descent-fleet-gate.png" alt="تكوين الأسطول وبوابة الخفض بعد تطبيق VETD" /></p>

<p>بعد تطبيق VETD، أصبحت 10 من أصل 16 مهارة تعمل عند مستوى متوسط. أما المهارات الست التي بقيت عند المستوى الطليعي فهي بالضبط تلك التي يكون المحتوى نفسه فيها هو الناتج النهائي، لا الصيغة. الفكاهة والحكم التحريري والنثر البحثي والزاوية الإبداعية أمثلة على ذلك. النمط الذي يكشفه VETD هنا هو أن التنسيق والمهام المرتكزة على الصيغة تنحدر، بينما تبقى مهام جودة المحتوى التي لا يمكن اختزالها.</p>

<p>بالنسبة لـCRM المبيعات، لم نخفض المهارة كتلة واحدة بل قسمناها. خفضنا المايسترو الرئيسي المسؤول عن التنسيق إلى المستوى المتوسط، وأبقينا كتابة المحتوى الموجَّه للعملاء والصفقات عند وكيل فرعي من المستوى الطليعي. الجزء الأكبر من التكلفة، وهو التنسيق، انحدر، بينما بقي الجزء النثري الرقيق ذو القيمة العالية كما هو.</p>

<h2 id="عندما-تقول-البوابة-لا">عندما تقول البوابة لا</h2>

<p>ليست كل المهارات تنحدر. اختبرنا الليلة مباشرة مهارتين. مهارة التحقق من التقارير سجلت headline_gap قدره 1.4 مع reasoning gap مزدوجة، وسجل ملخص الاجتماع الصباحي headline_gap قدره 2.4 مع reasoning gap مزدوجة تتعلق بالأدلة الواقعية وعمق التحليل. حكم البوابة في كلتا الحالتين كان التعليق، والتوصية التي أصدرها الكود كانت: انقلوا فجوات الصيغة إلى الكود أولا ثم أعيدوا القياس.</p>

<p>قبل ذلك، سجلت مهارة إزالة أسلوب الكتابة الذي يوحي بالذكاء الاصطناعي في النصوص الكورية headline_gap قدره 2.0 متجاوزا الحد الأدنى بفارق كبير، وكانت تحمل معها ثلاث fixable gaps وreasoning gap واحدة. كان الحكم أيضا التعليق. المخرج الصحيح لـVETD في هذه الحالة ليس الخفض بل تعليمات عمل: أغلقوا الـfixable gaps الثلاث بتعديل المهارة ثم أعيدوا القياس.</p>

<p>هذه النقطة مهمة. أي نظام يخفض دائما نظام معطوب. يجب أن تكون البوابة قادرة على قول لا. الأنظمة التي تخضع لضغط خفض التكلفة تميل بسهولة نحو الخفض، والقياسان المباشران الليلة وتعليق مهارة humanizer هما بالضبط صمود البوابة أمام ذلك الضغط.</p>

<h2 id="الفشل-الذي-آلم-حقا">الفشل الذي آلم حقا</h2>

<p>الفشل الذي تحول إلى درس لم يأت من الخفض بل من الترقية. في أوائل يوليو، رُقّيت عدة مهارات تلقائيا إلى المستوى الطليعي بحجة تكرار “تشغيل سيئ”. لكن ذلك التشغيل السيئ كان في الحقيقة استنفادا للحصة الأسبوعية، لا فشلا في الجودة. اكتمل التشغيل نفسه بشكل سليم، لكن وجود علامة حد في السجلات تسبب في احتسابه خطأ.</p>

<p>كان الإصلاح هو تعديل مصنّف الفشل ليعامل استنفاد الحصة والمصادقة معاملة محايدة. لأنه ليس فشلا في القدرة، لم يُرفَع عداد الفشل المتتالي. الدرس يعمم: <strong>الإشارات التي تدفع الترقية والخفض يجب أن تميز بوضوح بين فشل القدرة وفشل التوفر.</strong> إن لم تفعل ذلك، تنتهي الحلقة إلى التحسين ضد الضوضاء.</p>

<h2 id="الحدود-الصادقة">الحدود الصادقة</h2>

<p>لهذه الطريقة حدود واضحة.</p>

<p>لا نقيس إلا المهارات التي لديها تركيبات اختبار. لذلك فإن “الشركة بأكملها” عمليا هي “المجموعة الجزئية التي لديها تركيبات اختبار”، وتكبر بقدر ما نضيف من تركيبات. المهارات التي لا تملك تركيبات لا يشملها سوى نصف الخفض، بل النصف الآخر المتعلق بالترقية استجابة للفشل. بصراحة، هذه منهجية ونشر جزئي، وليست برهانا على أن جميع سير العمل قد خُفِّضت تكلفتها.</p>

<p>القياس ليس مجانيا لأن الحكم يعمل على المستوى الطليعي. لذلك لا نشغّله عند كل استدعاء إنتاجي، بل فقط عند تغيّر المهارة أو النموذج، لكل مهارة على حدة، لتوزيع التكلفة. كما أن تركيبة اختبار واحدة لا تمثل التوزيع بأكمله. قد تتدهور مهارة يجوز خفضها اليوم عند مدخلات لا تغطيها تلك التركيبة.</p>

<p>النصوص التوجيهية والمهارات وإصدارات النماذج في تغير مستمر. الخفض الصالح اليوم قد يبطل بعد استبدال النموذج الأعلى. يسجل السجل الأسباب، وتلتقط حلقة الترقية الانتكاسات، لكن المطلوب إعادة تحقق مستمرة لا اجتياز مرة واحدة.</p>

<h2 id="بجملة-واحدة">بجملة واحدة</h2>

<p>VETD يعامل خفض تكلفة النماذج كمسألة قياس وبوابات، لا كمسألة نمذجة. حين نتحقق أولا بالمستوى المكلف، ونحصر استخدام النموذج المكلف في الحكم لا في تنفيذ العمل، ونجعل بوابة النجاح وصيغة المخرجات، حيثما أمكن، مملوكتين لكود حتمي، يستطيع شخص واحد أن يخفض غالبية أسطول من 16 مهارة إلى مستوى متوسط بينما تبقى الأقلية التي تحتاج فعلا إلى القدرة عند المستوى الطليعي. والتقطت الحلقة أيضا تلك المرة الوحيدة التي خلطت فيها بين عطل الحصة وفشل الجودة.</p>

<p>الفكرة الجوهرية القابلة للنقل تختزل في جملة واحدة. <strong>استخدموا أفضل نموذج لتحديد المكان الذي لم يعد فيه ذلك النموذج ضروريا.</strong></p>

<hr />

<p><em>منهجية هذا المقال وأرقامه مأخوذة من سجل تشغيلي حقيقي لأسطول أتمتة ThakiCloud. نُصدر مسودة الورقة البحثية المرتبة كـ<a href="/assets/papers/vetd-cost-descent-2026-07-12.pdf">PDF</a> مرفقة مع هذا المقال.</em></p>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="research" /><category term="LLM-cost-optimization" /><category term="model-routing" /><category term="model-cascade" /><category term="LLM-as-judge" /><category term="agent-skills" /><category term="format-determinism" /><category term="LLMOps" /><category term="cost-engineering" /><summary type="html"><![CDATA[عندما تُعرّف مهام الشركة المتكررة كمهارات، يمكن الإجابة عن السؤال الذي يحدد إلى أي مستوى نموذج يمكن أن تنحدر كل مهارة فعليا بالقياس لا بالحدس. النموذج الأكثر تكلفة لا يُستخدم لتنفيذ العمل بل للحكم على جواز الخفض. هذا سجل تشغيلي حقيقي من أسطول مؤلف من 16 مهارة تم فيه خفض 10 منها إلى مستوى متوسط.]]></summary></entry><entry xml:lang="en"><title type="html">When Coding Agents Start Talking to Each Other: Designing Multiplayer Claude Code and Collaborative Agents</title><link href="https://thakicloud.github.io/en/agentops/claude-code-multiplayer-collaborative-agents/" rel="alternate" type="text/html" title="When Coding Agents Start Talking to Each Other: Designing Multiplayer Claude Code and Collaborative Agents" /><published>2026-07-12T00:00:00+09:00</published><updated>2026-07-12T00:00:00+09:00</updated><id>https://thakicloud.github.io/en/agentops/claude-code-multiplayer-collaborative-agents</id><content type="html" xml:base="https://thakicloud.github.io/en/agentops/claude-code-multiplayer-collaborative-agents/"><![CDATA[<p>Anyone who has used a coding agent on a team runs into an odd wall. The agent belongs to you alone. Even when a colleague sitting next to you is working in the same repository, your Claude has no idea theirs exists. People collaborate through Slack and screen sharing, but the agents that actually touch the code on our behalf sit isolated on their own islands. <strong>Multiplayer Claude Code</strong>, recently released and widely discussed, takes direct aim at this wall. It is an experiment in letting multiple people share the same terminal and connecting each person’s Claude so the agents can talk to each other. This post uses that release as a starting point to break down the design challenges collaborative coding agents need to solve, and examines what this direction implies from ThakiCloud’s operational perspective, where multi-agent systems and policy are treated as first-class resources.</p>

<h2 id="overview">Overview</h2>

<p>Up to now, the basic unit of a coding agent has been <strong>one person, one agent</strong>. Claude Code lives in your terminal, understands your codebase, and takes your instructions. This structure is excellent for individual productivity, but it clashes with the fact that software has always been a team effort. Developer Dorsa Rohani’s release of multiplayer Claude Code flips that premise. According to the announcement, the tool enables two things. First, multiple people can work together in <strong>the same terminal session</strong>. Second, each person’s Claude can be <strong>connected to talk to each other</strong>.</p>

<p>What stands out is that this is not a one-off toy but part of a larger trend. Around the same time, several projects emerged that bring multiple coding agents from multiple people into a single workspace: <code class="language-plaintext highlighter-rouge">oh-my-claudecode</code>, which bills itself as team-first multi-agent orchestration; <code class="language-plaintext highlighter-rouge">claude_codex_bridge</code>, which mixes several agents including Codex and Claude in one workspace; and <code class="language-plaintext highlighter-rouge">codeg</code>, a collaborative workspace that aggregates multiple agent sessions. The direction is converging on one idea: <strong>treating agents not as isolated terminals, but as participants who communicate with each other</strong>.</p>

<p>Why this trend matters is clear. In real development organizations, a large share of the value comes from coordination: who is touching which file, whether this change breaks that module, what the reviewer is worried about. If agents cannot take part in that coordination, we end up having to manually stitch together the separate outputs each agent produces on its own. Collaborative agents are an attempt to reduce the cost of that stitching.</p>

<h2 id="what-a-multiplayer-coding-agent-is">What a Multiplayer Coding Agent Is</h2>

<p>The word multiplayer comes from gaming, but here it points to two distinct axes at once. One is the <strong>person-to-person</strong> axis, where several developers share the same session and jointly direct a single agent. The other is the <strong>agent-to-agent</strong> axis, where each person’s agent exchanges messages with the others and splits up the work. What makes multiplayer Claude Code interesting is that it addresses both axes together.</p>

<p>The diagram below shows the difference between the existing isolated structure and a collaborative one.</p>

<pre><code class="language-mermaid">flowchart TB
    subgraph existing["Existing: One Person, One Agent (Isolated)"]
        dev1["Developer A"] --&gt; claudeA1["Claude A&lt;br/&gt;(A's context only)"]
        dev2["Developer B"] --&gt; claudeB1["Claude B&lt;br/&gt;(B's context only)"]
        claudeA1 -.disconnected.- claudeB1
    end

    subgraph collaborative["Collaborative: Shared Session + Connected Agents"]
        personA["Developer A"] --&gt; session["Shared Terminal Session"]
        personB["Developer B"] --&gt; session
        session --&gt; agentA["Claude A"]
        session --&gt; agentB["Claude B"]
        agentA &lt;--&gt;|inter-agent messages| agentB
        agentA --&gt; sharedState["Shared Work State&lt;br/&gt;(repo, progress)"]
        agentB --&gt; sharedState
    end

    existing --&gt;|paradigm shift| collaborative
</code></pre>

<p>In the existing structure, even when two developers’ agents touch the same repository, they have no awareness of each other. Because each one reasons only within its own context, Claude A can refactor an interface while Claude B, unaware of the change, keeps calling it with the old signature. In the collaborative structure, session and state are shared, and because the agents exchange messages directly, there is room to catch this kind of mismatch nearly in real time.</p>

<p>That said, based on what has been made public so far, it is hard to say exactly how deep this connection goes. Whether the shared terminal is essentially screen streaming, or whether the agents actually exchange their plans and editing intentions in a structured form, makes a big difference to how practical it is. This post focuses on the design challenges implied by the published concept and does not assert anything about internal behavior that has not been verified.</p>

<h2 id="why-now">Why Now</h2>

<p>There is a reason collaborative agents are appearing now. As models have grown more capable, the size of the task a single agent can handle has grown with them, and as a result, <strong>situations where multiple agents make large changes at the same time</strong> have become genuinely common. It is already routine for one person to spin up parallel subagents to split up file edits. Taking just one more step from there, you reach the moment where different people’s agents overlap in the same codebase. Without coordination, that moment quickly becomes a conflict.</p>

<p>Another driver is fragmentation in the tooling ecosystem. On most teams, some people use Claude Code, others use Codex, and others use Cursor. The multi-vendor workspace projects mentioned above are an attempt to absorb this fragmentation into a coordination layer. In other words, collaborative agents are not simply a feature that adds more people to the mix; they are growing into <strong>infrastructure for dealing with the reality that heterogeneous agents now coexist</strong>.</p>

<h2 id="design-challenges-collaborative-agents-must-solve">Design Challenges Collaborative Agents Must Solve</h2>

<p>Behind an appealing concept sits a considerable amount of engineering. To bring collaborative agents into real practice, at least four problems need to be solved.</p>

<p>First is <strong>concurrency and conflict</strong>. You need to define what happens when two agents edit the same region of the same file at the same time. Human collaboration absorbed this problem with git branches and merges, but a real-time shared session requires coordination on a much tighter cycle. Whether to use locking, optimistic edits followed by merging, or to distribute work so it never overlaps in the first place is a fundamental design fork.</p>

<p>Second is <strong>the scope of context sharing</strong>. To let agents talk to each other, you need to decide what gets shared. Passing the entire conversation history wholesale causes token costs to explode and pollutes context. Share too little, and the point of collaborating disappears. What is actually needed is a <strong>summarized, structured exchange of state</strong>: intent such as “I plan to change this function in this file this way” needs to be passed as compressed information, not raw text.</p>

<p>Third is <strong>trust boundaries</strong>: how much an agent should trust a change proposed by someone else’s agent. Just as people do not merge a change without review, agents should not accept another agent’s output without verification. The long-standing lesson from multi-agent systems is clear: <strong>merging the results of multiple agents without a verification stage causes hallucinations to accumulate.</strong> The more collaborative the agents, the more essential it becomes to have a gate that adversarially verifies each participant’s output.</p>

<p>Fourth is <strong>audit and accountability tracking</strong>. When multiple people and multiple agents have touched the same code, if you cannot trace which change came from whose (or which agent’s) judgment, you cannot trace the root cause when something goes wrong. As collaboration increases, an audit log stops being optional and becomes mandatory.</p>

<h2 id="implications-for-thakiclouds-product">Implications for ThakiCloud’s Product</h2>

<p>These design challenges overlap precisely with problems ThakiCloud is already addressing head-on in <strong>Paxis</strong>. Paxis is the Agent-Native Cloud control plane running on top of ai-platform, treating Skills, Tools, Policies, and Audit Logs as first-class resources. Here is how Paxis’s architecture responds to the questions raised by multiplayer coding agents.</p>

<p>The backbone of agent-to-agent collaboration is Paxis’s <strong>DAG multi-agent</strong> orchestration. Instead of releasing multiple agents into a shared space with no structure, work is decomposed into a directed acyclic graph so that each node owns a defined area of responsibility, which structurally avoids much of the concurrency conflict discussed above. Rather than merging overlapping edits after the fact, work is distributed so it never overlaps to begin with.</p>

<p>The trust boundary problem is answered by Paxis’s <strong>policy gates and audit logs</strong>. Before one agent’s output flows to another agent or to a live system, it must pass through a policy gate, and every action is recorded in an audit log. This is, in effect, an infrastructure-level enforcement of the principle that “the results of multiple agents are never merged without verification.” The value of this gate only grows as collaboration increases.</p>

<p>The cost of context sharing is eased by Paxis’s <strong>Skill Harness</strong> and its knowledge engine. Selecting from over 960 skills via BM25 and running them in isolated sandboxes is designed so agents pull in only the capability they need at that moment, instead of carrying the full context every time. This aligns directly with the requirement that collaborative agents exchange summarized state rather than raw, wholesale context.</p>

<p>Underpinning all of this with execution resources is <strong>ai-platform</strong>. Having multiple people and multiple agents run code simultaneously in isolated sandboxes requires multi-tenant isolation and elastic compute. K8s- and Kueue-based GPU scheduling and multi-tenant isolation provide the foundation collaborative agents actually need to run on. The fact that this collaborative structure can be built safely on premises and in sovereign environments matters in particular for organizations concerned about data leakage.</p>

<p>In short, Paxis structures at the control-plane layer, with policy, audit, and orchestration, the same collaborative concept that multiplayer Claude Code is experimenting with at the individual-tool layer. The two layers are not competitors but complements. For collaborative agents to move from an entertaining demo to reliable operation, they ultimately need a control plane equipped with policy gates, audit logs, and resource isolation.</p>

<h2 id="limitations-and-counterarguments">Limitations and Counterarguments</h2>

<p>Collaborative agents should not be viewed with pure optimism. The biggest counterargument is that <strong>coordination overhead can eat into the gains from collaborating</strong>. Just as meetings do among people, an increase in messages exchanged between agents becomes latency and token cost in its own right. It is entirely possible for two agents to spend so much time confirming each other’s plans that they never actually produce code. Collaboration is not always faster than working in parallel and independently.</p>

<p>Second is <strong>the coupling of failure modes</strong>. Once agents are connected, one agent’s mistaken judgment propagates to another. In an isolated structure, one person’s mistake stays contained to that person; in a connected structure, an error can chain and spread. Without verification gates, collaboration can amplify incidents rather than prevent them.</p>

<p>Third, it has not yet been verified exactly what level of state exchange the currently released multiplayer tool actually implements. Whether the shared terminal is closer to screen sharing or is a genuine structured agent-to-agent protocol changes its practicality substantially. The direction of the concept is clear, but before putting it into production, trust boundaries and audit trails must be confirmed. There is still considerable distance between an interesting demo and reliable infrastructure.</p>

<p>Even so, the direction itself is hard to reverse. As long as software remains a team effort, the agents standing in for that team will eventually need to talk to each other too. The question is not whether to turn collaboration on, but whether that collaboration is <strong>built on a structure backed by policy, verification, and audit</strong>.</p>

<h2 id="sources">Sources</h2>

<ul>
  <li>Dorsa Rohani, “We made Claude Code multiplayer!” (X, 2026-07-08): <a href="https://x.com/dorsa_rohani/status/2074963064231952832">https://x.com/dorsa_rohani/status/2074963064231952832</a></li>
  <li>Claude Code (Anthropic’s official repository): <a href="https://github.com/anthropics/claude-code">https://github.com/anthropics/claude-code</a></li>
  <li>oh-my-claudecode (team-first multi-agent orchestration): <a href="https://github.com/yeachan-heo/oh-my-claudecode">https://github.com/yeachan-heo/oh-my-claudecode</a></li>
  <li>claude_codex_bridge (multi-agent CLI workspace): <a href="https://github.com/SeemSeam/claude_codex_bridge">https://github.com/SeemSeam/claude_codex_bridge</a></li>
</ul>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="agentops" /><category term="claude-code" /><category term="multi-agent" /><category term="collaboration" /><category term="agentops" /><category term="paxis" /><category term="orchestration" /><summary type="html"><![CDATA[We are moving from a world where one person uses one agent to one where multiple people and multiple agents share a workspace and talk to each other. Using multiplayer Claude Code as a starting point, we look at the concurrency, conflict, and trust-boundary problems of collaborative agents and examine them from an operational perspective at ThakiCloud.]]></summary></entry><entry xml:lang="en"><title type="html">Distilling Our Own Skills Into Small Models to Run Them Automatically: The Last 6 Months</title><link href="https://thakicloud.github.io/en/agentops/distill-skill-fleet-small-models/" rel="alternate" type="text/html" title="Distilling Our Own Skills Into Small Models to Run Them Automatically: The Last 6 Months" /><published>2026-07-12T00:00:00+09:00</published><updated>2026-07-12T00:00:00+09:00</updated><id>https://thakicloud.github.io/en/agentops/distill-skill-fleet-small-models</id><content type="html" xml:base="https://thakicloud.github.io/en/agentops/distill-skill-fleet-small-models/"><![CDATA[<h2 id="overview">Overview</h2>

<p>Any team that has actually run agents in production hits the same wall. Running a single skill can mean dozens to hundreds of calls to a frontier model, and once a few dozen of these skills fire unattended every day, the bill screams first. The capability is there, but paying top-tier model rates on every single call is the problem.</p>

<p>So the direction becomes obvious. Take the skills a company has already validated and is already using, and distill them into a small model that knows only as much as the skill actually needs, then run it locally and automatically. What’s interesting is that this direction is no longer theoretical. Over the six months of the first half of 2026, a wave of research has pushed “small model plus agent skill distillation” to a level you can actually deploy. This post surveys that trend and covers how ThakiCloud is actually moving its skill fleet to small models, as well as where it breaks.</p>

<p>The intended audience is clear: platform and MLOps engineers who run many agent skills and are weighing frontier API costs against automation in their design. If you’re a different kind of reader, say someone who needs a management-level cost verdict, the last section alone gets you there.</p>

<h2 id="why-now-small-models-have-become-the-default-for-agents">Why Now: Small Models Have Become the Default for Agents</h2>

<p>First, let’s align on terms. As of 2026, a small language model (SLM) refers to a model in roughly the 1B to 35B range that runs on a single GPU, a workstation, or sometimes on-device, while still getting the assigned job done. The key isn’t size itself, it’s whether the model is sufficient for the task.</p>

<p>The case for small models in agent workflows rests on three things: cost, latency, and modularity. A multi-agent setup built from five specialized small models is cheaper, faster, and easier to debug than sending a single prompt to a frontier model. That’s exactly the point NVIDIA researchers made in their argument that small language models are the future of agentic AI. The capability threshold for agent tasks has dropped low enough that work which needed a frontier API a year ago can now be handled by a model you run yourself.</p>

<p>The cost gap isn’t trivial either. The calculation keeps coming back that running a small model costs anywhere from one-tenth to one-thirtieth of the top-tier model in the same family. In agent systems that call a model thousands of times for a single complex task, moving even part of that traffic to small models cuts operating costs by an order of magnitude. For operations that fire skills unattended at scale, that saving shows up directly on the bottom line.</p>

<h2 id="whats-happened-in-the-last-6-months-how-to-move-skills-to-small-models">What’s Happened in the Last 6 Months: How to Move Skills to Small Models</h2>

<p>Over the past two quarters, the center of gravity moved from plain knowledge distillation to agent skill distillation, and then to on-policy distillation. The approach that has taken hold has the student model generate its own trajectories, with the teacher scoring them token by token. Here’s how the major threads break down.</p>

<table>
  <thead>
    <tr>
      <th>Approach</th>
      <th>One-line summary</th>
      <th>Where it excels</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Multi-teacher on-policy distillation (MOPD)</td>
      <td>Set up domain-specific RL expert teachers, and as the student generates its own rollouts, each teacher scores every token</td>
      <td>Consolidating multiple skills into one small student</td>
    </tr>
    <tr>
      <td>Skill-conditioned self-distillation (Skill-SD)</td>
      <td>The same model acts as both teacher and student, refining multi-turn trajectories conditioned on the skill</td>
      <td>Multi-turn agents, no separate teacher needed</td>
    </tr>
    <tr>
      <td>Step-wise on-policy distillation (SOD)</td>
      <td>Injects dense supervision signal step by step rather than over the whole trajectory</td>
      <td>Stabilizing small agents with long chains of tool calls</td>
    </tr>
    <tr>
      <td>On-policy skill distillation (OPID)</td>
      <td>Compensates for the sparse reward of agentic reinforcement learning with dense teacher signal</td>
      <td>Agent tasks where rewards are sparse</td>
    </tr>
    <tr>
      <td>Training-free agent distillation (AgentDistill)</td>
      <td>Transfers reusable toolboxes (MCP boxes) to hand off capability without retraining</td>
      <td>Fast handoff, avoiding training cost</td>
    </tr>
  </tbody>
</table>

<p>A few threads land directly on real-world practice. First, the approach frontier labs have converged on is to build separate reinforcement-learning expert teachers per domain (one for math, one for code, one for agents), then have all of them score the student’s own generated output during on-policy distillation and merge it into a single student. A good teacher doesn’t have to be a bigger model. A checkpoint that’s the same base and same size as the student, but pushed deep into a single domain, can actually make a better teacher. Specialization creates the teacher, not scale.</p>

<p>Second, evidence has piled up that distilling tool-using small agents actually works. When a large agent equipped with search and code tools gets distilled into a small model, that small model has been reported to outperform models a full size class larger, particularly on tasks outside its training distribution. That means agent distillation is a practical route to producing a “capable small model that can use tools.”</p>

<h2 id="why-our-skill-architecture-suits-this-shift">Why Our Skill Architecture Suits This Shift</h2>

<p>This is where ThakiCloud’s structure becomes relevant. We’ve long followed the principle of putting capability into the skill rather than the harness. Thin harness, fat skills. We keep the loop and permissions that wrap the model minimal, while packing domain knowledge, judgment, templates, and failure cases densely into the skill itself. That means the same skill is designed to keep working no matter which model you swap in underneath it.</p>

<p>Format determinism layers on top of that. In batch skills that run on a schedule, we don’t have the model generate the format, only the content. Numbers, enum values, rendering, and aggregation are all owned by deterministic code. Combine these two principles and something interesting happens. Even if you demote the worker model from frontier down to a local small model, the output doesn’t wobble, because the format and validation that govern quality are baked into code. The small model only has to produce the content, and the harness guarantees the rest.</p>

<p>This isn’t speculation, it’s a measured result. In June 2026 we set up a local small model (Gemma-4-26B) as a skill worker and ran a live A/B test against the Claude family. The result: Gemma tied Haiku 18 to 18 on worker compliance. The one wall we ran into was a context ceiling of roughly 10,000 tokens, past which requests started failing. So we settled on hybrid routing. A frontier conductor handles heavy reasoning and orchestration, while a local small model handles standardized worker tasks. The direction of distilling skills into small models for automated execution has already been partially validated in our own environment. Running speech synthesis (VoxCPM2) and speech recognition (Qwen-ASR) workers locally already fits the same pattern.</p>

<h2 id="where-it-breaks-not-romanticizing-distillation">Where It Breaks: Not Romanticizing Distillation</h2>

<p>Being on the right path doesn’t make the pitfalls disappear. Let’s lay out the counterarguments first.</p>

<p>The most practical wall is divergence over chains of tool calls. Reasoning that interleaves tool use becomes less stable the longer it runs on a small model. On-policy distillation eases this with dense supervision, but a single wrong tool call can propagate into later reasoning steps, widening the gap between the student’s trajectory and the teacher’s. That’s exactly why step-wise distillation (SOD) supervises step by step instead of over the whole trajectory, to catch this divergence early. Hand a long agent task to a small model as-is and it collapses partway through.</p>

<p>The second wall is signal conflict among multiple teachers. When teachers disagree on alignment, format, or values, the student either gets averaged into mush or actually loses quality from the conflicting signal. That’s why about half of recent research is focused on purification, filtering out the bad teacher signal. The lever isn’t attaching more teachers, it’s the gate that decides which teacher to trust on which token. This lines up exactly with a principle we already follow: fan-out must always close through a verification stage. Gather multiple results, but only use what survives adversarial verification before merging.</p>

<p>The third point cuts deeper. Distillation produces a follower trapped under the teacher’s ceiling. It inherits the teacher’s blind spots along with its knowledge, and it can’t get ahead on its own. So distillation shouldn’t be positioned as a replacement for frontier orchestration, it should be positioned as a deployment-layer strategy for running already-validated skills cheaply and at scale. That’s why keeping the conductor and demoting only the worker is the honest conclusion in a hybrid setup.</p>

<h2 id="the-thakicloud-execution-roadmap">The ThakiCloud Execution Roadmap</h2>

<p>We’ve laid out a three-step path. First, stand up a specialized teacher per skill. The first candidates are standardized skills that fire at high volume, news digests, Twitter summaries, report renderers, skills where format determinism already lives in code. These already have their format owned by code, so the small student only has to get the content right. Second, distill small students on-policy from those teachers and run them locally and automatically. Knowing where the context ceiling sits, we keep any skill that needs long context on the conductor and only demote short, repetitive workers. Third, protect quality with retrospective-driven escalation. We’re already running an automatic promotion loop that starts with a small model, and if a particular skill fails repeatedly, rolls that skill alone back up to a higher-tier model. Start cheap, and let the data catch failures, then promote only that skill.</p>

<p>This roadmap delivers three benefits. Cost drops by an order of magnitude for high-volume unattended execution, latency shrinks with local execution, and on the sovereignty side, dependence on external APIs and data movement both decrease. For us, running a Kubernetes-based AI/ML platform, these three things aren’t marketing copy, they’re daily operating metrics.</p>

<h2 id="closing">Closing</h2>

<p>The direction of “distill skills into small models and run them automatically these days” is correct. But the specifics matter. Setting up domain expert teachers, consolidating them into a small student on-policy, attaching a verification gate that filters bad teacher signal, and supervising step by step for tasks with long chains of tool calls, that’s close to the current standard. ThakiCloud starts from an advantageous position in this shift thanks to its existing thin-harness and format-determinism structure, and the measured result of a Gemma worker tying Haiku backs that starting position with data. Keeping the frontier as conductor and demoting validated skills to small workers is the most realistic path to protecting both cost and quality at the same time.</p>

<h2 id="references">References</h2>

<ul>
  <li>Small Language Models are the Future of Agentic AI (arXiv 2506.02153): <a href="https://arxiv.org/pdf/2506.02153">https://arxiv.org/pdf/2506.02153</a></li>
  <li>Skill-SD: Skill-Conditioned Self-Distillation for Multi-turn LLM Agents (arXiv 2604.10674): <a href="https://arxiv.org/pdf/2604.10674">https://arxiv.org/pdf/2604.10674</a></li>
  <li>SOD: Step-wise On-policy Distillation for Small Language Model Agents (arXiv 2605.07725): <a href="https://arxiv.org/pdf/2605.07725">https://arxiv.org/pdf/2605.07725</a></li>
  <li>OPID: On-Policy Skill Distillation for Agentic Reinforcement Learning (arXiv 2606.26790): <a href="https://arxiv.org/pdf/2606.26790">https://arxiv.org/pdf/2606.26790</a></li>
  <li>AgentDistill: Training-Free Agent Distillation with Generalizable MCP Boxes (arXiv 2506.14728): <a href="https://arxiv.org/pdf/2506.14728">https://arxiv.org/pdf/2506.14728</a></li>
  <li>Distilling LLM Agent into Small Models with Retrieval and Code Tools (arXiv 2505.17612): <a href="https://arxiv.org/pdf/2505.17612">https://arxiv.org/pdf/2505.17612</a></li>
  <li>Distillation in 2026 (so far): which frontier models use it and how (Hugging Face): <a href="https://huggingface.co/blog/sergiopaniego/distillation-2026">https://huggingface.co/blog/sergiopaniego/distillation-2026</a></li>
  <li>How Small Language Models Are Key to Scalable Agentic AI (NVIDIA Technical Blog): <a href="https://developer.nvidia.com/blog/how-small-language-models-are-key-to-scalable-agentic-ai/">https://developer.nvidia.com/blog/how-small-language-models-are-key-to-scalable-agentic-ai/</a></li>
</ul>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="agentops" /><category term="agentops" /><category term="distillation" /><category term="small-language-models" /><category term="on-policy-distillation" /><category term="skill-fleet" /><category term="cost-efficiency" /><category term="platform-engineering" /><summary type="html"><![CDATA[Running agent skills exclusively on frontier APIs makes costs explode once you hit thousands of calls. Research from the first half of 2026 has pushed distilling those skills into 1B to 35B small models and running them locally automatically to a practical stage. This post surveys recent techniques like on-policy skill distillation, multi-teacher distillation, and training-free agent distillation, and explains why ThakiCloud's already-confirmed small-worker results (Gemma-4-26B tying Haiku) and our thin-harness, format-determinism architecture are well suited to this shift, along with where it breaks down.]]></summary></entry><entry xml:lang="en"><title type="html">621,500 App Screens, All Somehow the Same App</title><link href="https://thakicloud.github.io/en/comics/app-screen-library-all-the-same/" rel="alternate" type="text/html" title="621,500 App Screens, All Somehow the Same App" /><published>2026-07-12T00:00:00+09:00</published><updated>2026-07-12T00:00:00+09:00</updated><id>https://thakicloud.github.io/en/comics/app-screen-library-all-the-same</id><content type="html" xml:base="https://thakicloud.github.io/en/comics/app-screen-library-all-the-same/"><![CDATA[<p>A new tool has quietly indexed over 621,500 app screens, and iOS builders are hooked. You can trace how a similar app moves, how one screen hands off to the next, down to the tiniest animation. That handoff between screens is the flow, and now it is free to copy. The catch is familiar: when everyone references the same top screens, every app slowly grows the same face. Infinite reference, and somehow zero originality.</p>

<p><img src="/assets/images/posts/comics/app-screen-library-all-the-same/strip.png" alt="621,500 App Screens, All Somehow the Same App" /></p>

<blockquote>
  <p>Source: <a href="https://x.com/hjguyhan/status/2076093695162822954">RT @protoduct_ai: iOS開発でUI実装する人、絶対これ使った方がいい</a> · twitter</p>
</blockquote>

<h2 id="what-this-means-for-thakicloud">What this means for ThakiCloud</h2>

<p>Borrow endlessly from the cloud. The moment those references become your product’s design and your users’ data, where that data lives is the whole ballgame. On-prem simply means running it inside your own walls instead of someone else’s. ThakiCloud hands the repetitive parts, screen collection and flow analysis, to agents through Paxis, then carries the results into training and inference on Metis. Reference all 621,500, but keep your taste and your data on your own shelf. That is the line sovereign on-prem draws, and it is how this very blog runs, with a Jarvis orchestrator calling those agents on its own.</p>

<hr />

<p><em>An auto-generated comic riffing on this week’s industry news.</em></p>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="comics" /><category term="AI디자인" /><category term="UI참고" /><category term="온프렘" /><category term="데이터주권" /><category term="파시스" /><category term="메티스" /><summary type="html"><![CDATA[Browse 621,500 screens and somehow ship the exact same app as everyone else.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://thakicloud.github.io/assets/images/posts/comics/app-screen-library-all-the-same/strip.png" /><media:content medium="image" url="https://thakicloud.github.io/assets/images/posts/comics/app-screen-library-all-the-same/strip.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">vLLM v0.25.0: Model Runner V2 Becomes the Default and PagedAttention Is Gone</title><link href="https://thakicloud.github.io/en/dev/vllm-v0-25-0-model-runner-v2/" rel="alternate" type="text/html" title="vLLM v0.25.0: Model Runner V2 Becomes the Default and PagedAttention Is Gone" /><published>2026-07-12T00:00:00+09:00</published><updated>2026-07-12T00:00:00+09:00</updated><id>https://thakicloud.github.io/en/dev/vllm-v0-25-0-model-runner-v2</id><content type="html" xml:base="https://thakicloud.github.io/en/dev/vllm-v0-25-0-model-runner-v2/"><![CDATA[<h2 id="overview">Overview</h2>

<p>vLLM is the de facto standard inference engine for serving open-weight LLMs in production. Thanks to its high throughput and broad hardware support, most teams that host their own models on their own GPUs run them through vLLM. A new release of an engine like this is never just a version bump. It changes how the entire serving stack is operated.</p>

<p>This post is written for engineers who run inference infrastructure directly or own serving costs. vLLM v0.25.0, released in 2026, contains 558 commits from 232 contributors, 64 of them new. The scale matches the intent: the new execution architecture the project has been building toward over several prior releases was promoted to the default in this one, and the old paths were cleaned up along the way.</p>

<p>The headline is two changes. First, <strong>Model Runner V2 (MRv2) is now the default execution path for every dense model</strong>. Second, the <strong>legacy PagedAttention implementation that made vLLM famous has been removed</strong>. This post covers what those two changes mean for anyone operating a serving fleet, and what the accompanying video and speculative-decoding features are good for.</p>

<h2 id="what-this-release-changes">What This Release Changes</h2>

<p>The biggest structural change is the promotion of MRv2. MRv2 was built up over previous releases while the team hardened quantized model support, and as of v0.25.0 it becomes the standard execution path for dense models. Most models now run on this new core without needing any special flags. The vLLM team describes MRv2 as a more modular, faster core, and this release locks it in as the default path.</p>

<p>The natural consequence of that shift is the removal of the legacy PagedAttention implementation. Now that the V1 and MRv2 backends are the standard path, there was no longer a reason to keep the old attention implementation around. PagedAttention, the technique that manages the KV cache page by page to cut memory waste, was something of a signature feature from vLLM’s early days, but the idea itself has already been absorbed into the new backends. What was removed here is old code, not the concept.</p>

<p>Here is the shift in execution paths laid out visually:</p>

<pre><code class="language-mermaid">flowchart TB
    A["Inference request"] --&gt; B{"Execution path selection"}
    B --&gt;|Before v0.24| C["Legacy PagedAttention path&lt;br/&gt;removed in this release"]
    B --&gt;|v0.25.0 default| D["Model Runner V2&lt;br/&gt;standard path for all dense models"]
    D --&gt; E["Quantized model support"]
    D --&gt; F["Dynamic speculative decoding&lt;br/&gt;full CUDA graph compatible"]
    D --&gt; G["Mamba hybrid&lt;br/&gt;prefix caching"]
    D --&gt; H["Multimodal prefix&lt;br/&gt;bidirectional attention"]
</code></pre>

<h2 id="key-changes-in-detail">Key Changes in Detail</h2>

<p>The features layered on top of MRv2 in this release mostly target multimodal and long-context workloads.</p>

<p>First, <strong>Efficient Video Sampling (EVS)</strong>. Vision-language models that handle video see their token counts explode as frame counts grow, which quickly wrecks memory and latency. EVS prunes tokens from spatiotemporal regions that are nearly static while preserving the positional identity of the tokens that remain. Because the number of retained tokens grows sublinearly with clip length, models can handle much longer temporal context without blowing past memory and latency budgets.</p>

<p>Second, <strong>dynamic speculative decoding is now compatible with full CUDA graphs</strong>. Speculative decoding uses a small draft model to propose several tokens ahead of time, which the main model then verifies, boosting throughput. Working alongside CUDA graph capture means you can now get the kernel-overhead savings of graph capture and the throughput gains of speculative decoding at the same time.</p>

<p>Third, there is an important tradeoff to know about. <strong>Turning on EVS pruning automatically disables the video CUDA graph.</strong> Because EVS makes the token count depend on the input data, it conflicts with CUDA graph capture, which assumes a fixed shape. In other words, choosing the token savings of long-video pruning means giving up CUDA graph optimization on that path. Which side makes sense depends on the workload, and teams need to make that call themselves.</p>

<p>The release also ships realtime embeddings, prefix caching for Mamba hybrid models, and bidirectional attention support for multimodal prefixes. As hybrid architectures built on Mamba become more common, prefix caching support for them is a concrete win that lowers the cost of repeated requests.</p>

<h2 id="installation-and-verification">Installation and Verification</h2>

<p>vLLM v0.25.0 installs the standard way.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>uv pip <span class="nb">install </span><span class="nv">vllm</span><span class="o">==</span>0.25.0
</code></pre></div></div>

<p>The basic command for serving a model after installation hasn’t changed.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>vllm serve &lt;model-id&gt;
</code></pre></div></div>

<p>Since MRv2 is now the default path, you generally don’t need to set any separate runner flags to serve dense models.</p>

<p>To be upfront about it, the environment we wrote this post in has no GPU, so we couldn’t measure actual throughput or latency ourselves. That’s why this post doesn’t include any performance numbers we haven’t measured firsthand. Every fact cited here comes from the official release notes: the commit and contributor counts, MRv2’s promotion to default, the removal of legacy PagedAttention, and the characteristics of EVS and dynamic speculative decoding are all based on published release information. For real benchmarks, we recommend measuring on your own GPU cluster with your target models and traffic patterns.</p>

<h2 id="implications-for-thakiclouds-products">Implications for ThakiCloud’s Products</h2>

<p>This release lands directly on how ThakiCloud runs <strong>ai-platform</strong>. ai-platform schedules GPUs with K8s and Kueue and serves models to a range of customer environments through vLLM. Since vLLM is the core engine of our serving stack, a change in its execution architecture is also a change in how we operate.</p>

<p>MRv2 becoming the default means we can now concentrate our validation and optimization effort on a single standard execution path. When multiple paths coexist, bug reproduction and performance tuning fork along each one, but once a standard path is set, operational complexity drops. For a platform serving dozens of models concurrently in a multi-tenant environment, that simplification translates directly into stability.</p>

<p>The combination of dynamic speculative decoding with CUDA graphs, along with Mamba hybrid prefix caching, both push serving costs down. Lower serving costs are a direct competitive edge for customers who need on-premises or sovereign AI. The economics of the agents and applications running on top only work if the underlying infrastructure can serve cheaply. In that sense, ai-platform’s low-cost serving is the foundation that supports the economics of higher-level agent layers like Paxis.</p>

<h2 id="limitations-and-counterpoints">Limitations and Counterpoints</h2>

<p>The first thing to flag is that this release includes a breaking change. Because the legacy PagedAttention path was removed, any custom configuration or third-party integration that depended on it may break under v0.25.0. When bumping versions in production serving, you should actually spin up your target models in staging and check for regressions before rolling out. Deploying a new release straight to production just because it’s new is risky.</p>

<p>Second, as with the EVS and CUDA graph tradeoff noted above, new features don’t always come out as a pure win. Teams need to decide which optimizations to turn on or off based on their own workload characteristics, and that call is hard to make without real measurement. The expectation that “turning on every new feature makes things faster” often doesn’t hold up in practice.</p>

<p>Third, the sheer size of the release is itself a risk. A release that bundles in 558 commits at once leaves more room for unexpected interactions. There may be issues that only show up with specific model architectures or hardware combinations, so it’s worth not skipping validation on the exact model and GPU combination you actually serve.</p>

<p>In short, vLLM v0.25.0 is a release that locks in the results of long preparation as the default. Unifying around MRv2 and cleaning up legacy paths makes the serving stack simpler and faster over the long run, which is a direct benefit for ThakiCloud’s ai-platform, which runs vLLM as its core engine. But capturing that benefit safely still requires the basics: validating breaking changes and measuring per-workload before you flip the switch.</p>

<h2 id="sources">Sources</h2>

<ul>
  <li>vLLM v0.25.0 release: <a href="https://github.com/vllm-project/vllm/releases/tag/v0.25.0">github.com/vllm-project/vllm/releases/tag/v0.25.0</a></li>
  <li>Model Runner V2 introduction: <a href="https://vllm.ai/blog/2026-03-24-mrv2">vllm.ai/blog/2026-03-24-mrv2</a></li>
  <li>Efficient Video Sampling (EVS) paper: <a href="https://arxiv.org/pdf/2510.14624">arxiv.org/pdf/2510.14624</a></li>
</ul>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="dev" /><category term="dev" /><category term="vllm" /><category term="inference" /><category term="serving" /><category term="cuda" /><category term="self-hosting" /><category term="kubernetes" /><category term="paxis" /><summary type="html"><![CDATA[vLLM v0.25.0 landed with 558 commits from 232 contributors. Two changes define this release: Model Runner V2 is now the default execution path for every dense model, and the legacy PagedAttention implementation that first made vLLM famous has been removed from the codebase. Alongside that, the release adds efficient video sampling (EVS), dynamic speculative decoding, and Mamba hybrid prefix caching. Here is what changed and what to prepare for from the perspective of a team running serving infrastructure.]]></summary></entry><entry xml:lang="en"><title type="html">Connecting Claude Code to Self-Hosted Open Models: Inside the free-claude-code Proxy</title><link href="https://thakicloud.github.io/en/llmops/claude-code-open-model-proxy/" rel="alternate" type="text/html" title="Connecting Claude Code to Self-Hosted Open Models: Inside the free-claude-code Proxy" /><published>2026-07-12T00:00:00+09:00</published><updated>2026-07-12T00:00:00+09:00</updated><id>https://thakicloud.github.io/en/llmops/claude-code-open-model-proxy</id><content type="html" xml:base="https://thakicloud.github.io/en/llmops/claude-code-open-model-proxy/"><![CDATA[<h2 id="overview">Overview</h2>

<p>Claude Code and Codex have become the most widely used coding agents inside terminals and IDEs over the past year. The problem is that both are tightly coupled to their respective cloud APIs, Anthropic and OpenAI. For teams that cannot let source code leave the building under internal policy, teams working in air-gapped networks, or teams already serving open-weight models on their own GPUs, that coupling becomes a hard wall.</p>

<p>This piece is for engineering leaders weighing the operating cost and data sovereignty of coding agents, and for practitioners looking to serve models on-premise. We examined <code class="language-plaintext highlighter-rouge">free-claude-code</code>, an open source proxy that has been getting attention in developer communities recently, directly from its repository. The project is known for a somewhat provocative pitch about “killing the subscription,” but the technically interesting part is elsewhere. It preserves the user experience of a proven agent, Claude Code, while swapping out only the model behind it for your own infrastructure.</p>

<p>To put it plainly upfront: the core value of this proxy isn’t “free,” it’s “isolation.” Separating the agent UI from the model backend lets you move the same workflow onto an open model running on in-house GPUs. We look at why that separation matters from the standpoint of running on-premise AI infrastructure, and at the limitations that come with it.</p>

<h2 id="what-this-tool-is">What This Tool Is</h2>

<p><code class="language-plaintext highlighter-rouge">free-claude-code</code> is a local proxy server built on FastAPI. It exposes an endpoint compatible with the Anthropic API, so the Claude Code CLI, Codex CLI, VS Code extensions, JetBrains ACP, and even some chatbots mistake it for a genuine Anthropic server and connect to it directly. From the agent’s point of view nothing has changed; only the model actually handling the request gets swapped out behind the scenes.</p>

<p>The breadth of supported backends is what stands out about this project. According to the repository, it supports 24 providers across cloud and local, switchable from the Admin UI, spanning cloud APIs like NVIDIA NIM, OpenRouter, and DeepSeek alongside local runtimes like LM Studio, llama.cpp, and Ollama. In other words, you can point it at a commercial API or at an open model running on your own GPU.</p>

<p>The routing structure is more than a simple switch, too. Internally, Claude Code splits work across three model tiers depending on the situation: Opus, Sonnet, and Haiku. Heavy reasoning goes to Opus, everyday tasks go to Sonnet, and light exploration goes to Haiku. <code class="language-plaintext highlighter-rouge">free-claude-code</code> lets you map each of these three tiers, plus fallback traffic, to a different backend model. Streaming, tool use, and reasoning support are preserved within the range of what the target model supports. This tier-based routing lines up exactly with a principle already in use inside ThakiCloud: send exploration to a cheap model, implementation to a mid-tier model, and reserve the expensive model for architectural judgment calls.</p>

<p>The overall request flow looks like this.</p>

<pre><code class="language-mermaid">flowchart TB
    A["Coding agent&lt;br/&gt;Claude Code / Codex / IDE extension"] --&gt; B["free-claude-code proxy&lt;br/&gt;FastAPI, Anthropic-compatible endpoint"]
    B --&gt; C["Admin UI&lt;br/&gt;127.0.0.1:8082/admin&lt;br/&gt;provider selection and validation"]
    B --&gt; D{"Tier-based routing&lt;br/&gt;Opus / Sonnet / Haiku / fallback"}
    D --&gt;|Heavy reasoning| E["Cloud backends&lt;br/&gt;OpenRouter / DeepSeek / NIM"]
    D --&gt;|Everyday tasks| F["Local runtimes&lt;br/&gt;Ollama / llama.cpp / LM Studio"]
    D --&gt;|Self-hosted serving| G["On-prem vLLM&lt;br/&gt;in-house GPU cluster"]
</code></pre>

<p>The difference from the existing approach is clear. Until now, running a coding agent on an open model meant either forking the agent itself or hand-building a different API shim for every model. This proxy collapses that translation layer into one place, leaving the agent untouched while only the model changes.</p>

<h2 id="installation-and-integration">Installation and Integration</h2>

<p>The repository offers two installation paths. One is downloading and running the install script in a single command.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-fsSL</span> <span class="s2">"https://github.com/Alishahryar1/free-claude-code/blob/main/scripts/install.sh?raw=1"</span> | sh
</code></pre></div></div>

<p>This script provisions <code class="language-plaintext highlighter-rouge">free-claude-code</code> itself along with <code class="language-plaintext highlighter-rouge">uv</code> and Python 3.14. If Claude Code and Codex aren’t already installed, it installs them too, which means Node.js needs to already be in place since that step requires npm. Running the same command again acts as an update.</p>

<p>If you prefer a manual install, you can clone the repository directly and prepare the environment file instead.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://github.com/Alishahryar1/free-claude-code.git
<span class="nb">cd </span>free-claude-code
<span class="nb">cp</span> .env.example .env
pip <span class="nb">install </span>uv
</code></pre></div></div>

<p>Once the proxy is running, open the local-only Admin UI in a browser to pick providers and validate the connection.</p>

<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>http://127.0.0.1:8082/admin
</code></pre></div></div>

<p>From this screen you enter each provider’s key, check the connection status, and decide which model goes into the Opus, Sonnet, Haiku, and fallback slots. Once that’s set, all you need is to point Claude Code’s API base address at this proxy. From there you keep using the Claude Code commands you’re used to, but the actual inference happens on the backend you specified.</p>

<h2 id="how-it-actually-works-and-what-we-verified">How It Actually Works, and What We Verified</h2>

<p>For this analysis we checked the repository’s public documentation and install script directly to verify the commands and structure above. We did not, however, measure actual inference latency or accuracy across all 24 backends. A meaningful serving benchmark needs to be run against an open model actually loaded on your own GPU, and the environment used to write this piece had no local GPU, so we could not carry out a full round-trip measurement across every backend. To avoid inventing numbers, we left unverified latency or throughput figures out of this piece.</p>

<p>What we can verify structurally is nonetheless clear. Because the proxy exposes an Anthropic-compatible endpoint, the agent has no need to know what the backend actually is. As long as that contract holds, switching the backend from Ollama to an in-house vLLM deployment is just reassigning one slot in the Admin UI. No agent reinstall, no workflow change required. This switching cost being close to zero is the real strength of this architecture.</p>

<p>We should also record the sober fact on quality. Coding quality when connected to an open model is not the same as with Anthropic’s top-tier model. In particular, gaps against the leading commercial model can show up in long tool-call chains or complex refactoring. So it’s more accurate to think of this proxy not as “a free tool that keeps the quality” but as “a tool that lets your team choose the tradeoff between quality and sovereignty for itself.”</p>

<h2 id="implications-for-thakiclouds-products">Implications for ThakiCloud’s Products</h2>

<p>The question this tool raises lines up directly with problems ThakiCloud is already addressing through two products.</p>

<p>First, from the <strong>Paxis</strong> angle. Paxis is ThakiCloud’s control plane for the Agent-Native Cloud, treating skills, tools, policy, and audit logs as first-class resources. The separation between agent UI and model backend that <code class="language-plaintext highlighter-rouge">free-claude-code</code> demonstrates is a small-scale version of the direction Paxis is heading. In Paxis, model routing for coding agents doesn’t have to be picked by hand in a local Admin UI by each individual; it can be governed by an organization-wide policy gate. Which team’s requests go to which backend, whether code from a sensitive repository is forced through an in-house model only, all of that gets recorded as policy and audit logs. If a proxy changes individual productivity, Paxis takes that same principle and lifts it to organizational governance. Add MCP connectors and isolated sandbox execution on top, and even external tool calls fall inside the scope of control.</p>

<p>Second, from the <strong>ai-platform</strong> angle. The fact that this proxy supports Ollama and llama.cpp as local runtimes means, in the end, that someone has to serve that open model reliably. Ollama on a personal laptop is fine for a demo, but it can’t handle the load of an entire team running a coding agent all day. ThakiCloud’s ai-platform schedules GPUs on K8s and Kueue and serves open models in a multi-tenant environment with vLLM. Route coding agent traffic through this serving layer, and you can run a team-scale on-premise coding agent without the ceiling of individual hardware. Low serving cost and the ability to handle air-gapped environments become the competitive edge here.</p>

<p>The two lenses complement each other. When ai-platform serves open models cheaply and reliably, Paxis governs the agent traffic on top of it with policy and audit. Low-cost serving is what makes the agent economical, and governance is what turns that economy into something an organization can trust.</p>

<h2 id="limitations-and-counterarguments">Limitations and Counterarguments</h2>

<p>First, the terms of service issue needs to be said plainly. Using clients like Claude Code or Codex in a way that circumvents a paid subscription can run into conflict with each service’s terms of use. The use case this piece considers meaningful is strictly the on-premise scenario of routing traffic to your own open models or a legitimately contracted API backend, not unauthorized bypass of a paid service. Any organization adopting this needs to check each client’s terms of service first.</p>

<p>Second, the attack surface widens. A proxy, by definition, sits in a position to intercept all traffic between agent and model, meaning your source code and full prompts. An untrustworthy proxy configuration can become a code leak path. The benefit only holds if you run it inside your own infrastructure, in an auditable way. This is exactly why Paxis’s policy gates and audit logs matter.</p>

<p>Third, there’s a quality and maintenance burden. As noted above, coding quality on open models differs from the top commercial model, and supporting 24 backends also means being that much more exposed to upstream API changes. When Anthropic or any individual provider changes its API contract, the proxy has to keep up. Loading an organization’s core workflow entirely onto maintenance at the level of a personal project is risky.</p>

<p>To sum up, <code class="language-plaintext highlighter-rouge">free-claude-code</code> is worth more when read as “an open source experiment separating a coding agent’s model layer” than under the banner of “free Claude Code.” When that separation meets on-premise serving, it opens a realistic path to running a team-scale coding agent while keeping data sovereignty intact. What ThakiCloud is building with ai-platform and Paxis is exactly the work of letting an organization walk that path safely.</p>

<h2 id="sources">Sources</h2>

<ul>
  <li>free-claude-code repository: <a href="https://github.com/Alishahryar1/free-claude-code">github.com/Alishahryar1/free-claude-code</a></li>
  <li>Install script: <a href="https://github.com/Alishahryar1/free-claude-code/blob/main/scripts/install.sh">scripts/install.sh</a></li>
</ul>]]></content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;nil, &quot;bio&quot;=&gt;nil, &quot;location&quot;=&gt;&quot;Seoul, Korea&quot;, &quot;email&quot;=&gt;&quot;info@thakicloud.co.kr&quot;, &quot;uri&quot;=&gt;nil, &quot;home&quot;=&gt;nil, &quot;links&quot;=&gt;[{&quot;label&quot;=&gt;&quot;Website&quot;, &quot;icon&quot;=&gt;&quot;fas fa-fw fa-link&quot;, &quot;url&quot;=&gt;&quot;https://thakicloud.co.kr&quot;}, {&quot;label&quot;=&gt;&quot;GitHub&quot;, &quot;icon&quot;=&gt;&quot;fab fa-fw fa-github&quot;, &quot;url&quot;=&gt;&quot;https://github.com/thakicloud&quot;}]}</name><email>info@thakicloud.co.kr</email></author><category term="llmops" /><category term="llmops" /><category term="claude-code" /><category term="proxy" /><category term="self-hosting" /><category term="ollama" /><category term="vllm" /><category term="agent" /><category term="paxis" /><summary type="html"><![CDATA[Coding agents like Claude Code and Codex are tied to the Anthropic API. free-claude-code sits an Anthropic-compatible proxy in between, letting teams keep the same agent UI while routing requests to self-hosted backends such as Ollama, llama.cpp, and vLLM. We examine the real repository, how it lets you pick from 24 backends in an Admin UI and route Opus, Sonnet, and Haiku traffic to different models, and what this means for ThakiCloud from an on-premise coding agent perspective.]]></summary></entry></feed>