<?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-06-26T18:30:05+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">وكيل ذكاء اصطناعي يكتب الأوراق البحثية - نقل سير عمل الكتابة بحزمة Skill مفتوحة المصدر</title><link href="https://thakicloud.github.io/ar/dev/ai-agent-research-paper-skills/" rel="alternate" type="text/html" title="وكيل ذكاء اصطناعي يكتب الأوراق البحثية - نقل سير عمل الكتابة بحزمة Skill مفتوحة المصدر" /><published>2026-06-26T00:00:00+09:00</published><updated>2026-06-26T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/dev/ai-agent-research-paper-skills</id><content type="html" xml:base="https://thakicloud.github.io/ar/dev/ai-agent-research-paper-skills/"><![CDATA[<p>كلما اقترب موعد تسليم الورقة البحثية، وجد الباحث نفسه يكرر نفس المهام: يُعيد صياغة المقدمة، ويتحقق من انسجام حجج الملخص مع أدلتها، ويُسبق المراجع إلى الجمل الإشكالية. هذه الخبرة عادةً ما تظل حبيسة ذاكرة المشرف أو موزّعة في ملاحظات متفرقة. المشروع المفتوح المصدر <a href="https://github.com/Master-cai/Research-Paper-Writing-Skills">Research-Paper-Writing-Skills</a> الذي أثار اهتماماً واسعاً على X مؤخراً يُجمّع هذه الخبرة في حزمة Skill يستطيع وكيل الترميز الذكي استدعاءها مباشرةً. والأهم ليس أنها “مجموعة برومبتات أخرى”، بل أنها صيغة قابلة للنقل تُضمَّن بالتساوي في Codex وClaude Code وGemini.</p>

<p><img src="/assets/images/ai-agent-research-paper-skills-hero.png" alt="صورة مجردة تُظهر وحدة معرفية مركزية تتفرع منها ثلاثة تدفقات بيانات نحو ثلاثة أدوات مختلفة" /></p>

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

<p>يقوم هذا المشروع على ملاحظات تعليمية نشرها الأستاذ بنغ سيدا (彭思达) من جامعة تشجيانغ الصينية في مستودع <a href="https://github.com/pengsida/learning_research">learning_research</a>، ويُعيد صياغة خبرة كتابة الأوراق البحثية في هيئة حزمة Agent Skill. وفق وصف المستودع، يركز المشروع على أوراق ML وCV وNLP، وقد مرّ بعمليات تنظيم وهيكلة تستهدف Codex وClaude Code وGemini. الإسهام الجوهري ليس نسخ نص الملاحظات الأصلية، بل تفكيك النصائح المتناثرة إلى وحدات عمل يمكن للوكيل استدعاؤها باعتبارها قدرات قابلة لإعادة الاستخدام.</p>

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

<h2 id="ما-هو-agent-skill">ما هو Agent Skill؟</h2>

<p>Agent Skill حزمة تُخبر الوكيل بكيفية تنفيذ مهمة بعينها. تتمحور عادةً حول ملف تعليمات <code class="language-plaintext highlighter-rouge">SKILL.md</code>، وتضم عند الحاجة وثائق مرجعية وسكريبتات وقوالب. لها ثلاث خصائص جوهرية: أولاً، تخضع لإدارة الإصدارات - يمكن تتبع تاريخ تعديلاتها في المستودع فتتراكم أصلاً لا تنتهي بانتهاء البرومبت. ثانياً، تُستدعى عند الحاجة فقط - بدلاً من حشو كل المعرفة في السياق دفعة واحدة، يُحمَّل فقط الـ Skill المرتبط بالمهمة في تلك اللحظة. ثالثاً، لا تتقيد بـ harness بعينه - الهدف أن يُشغَّل الـ Skill نفسه في Claude Code وCodex وGemini على حد سواء.</p>

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

<p><img src="/assets/images/ai-agent-research-paper-skills-diagram.png" alt="هيكل يُظهر حزمة Skill واحدة قابلة للنقل تحتوي على ملف SKILL.md ومواد مرجعية، مُدمجة بالتساوي في ثلاثة harness: Claude Code وCodex وGemini، لتنفيذ مهام كتابة الأوراق البحثية" /></p>

<p>جوهر الشكل أعلاه أن حزمة الـ Skill واحدة في الوسط. الأدوات الثلاثة لا تحمل كل منها برومبتاً مختلفاً؛ بل تتشارك نفس معرفة العمل. هنا يكمن الفارق الجوهري عن لصق سطر برومبت في نافذة دردشة.</p>

<h2 id="استعراض-research-paper-writing-skills">استعراض Research-Paper-Writing-Skills</h2>

<p>المهام التي تتناولها الحزمة تتطابق مع المراحل الفعلية لكتابة الورقة البحثية. من أمثلة الاستخدام المنشورة: استدعاء <code class="language-plaintext highlighter-rouge">$research-paper-writing</code> لتحسين المقدمة وصقل فقراتها الأولى، أو إعادة كتابة الملخص مع التحقق من توافق الادعاءات مع الأدلة. أي أن البنية لا تقدم طلباً مبهماً كـ”اكتب لي بشكل جيد”، بل تفصل المهام الفرعية المتكررة في كتابة الأوراق إلى قدرات مستقلة. وهذا ينسجم مع مبدأ التصميم الجيد للبرومبت: فعل واحد يقابله ناتج واحد.</p>

<p>اللافت أيضاً أن المشروع يستهدف أدوات ترميز ذكاء اصطناعي متعددة في آنٍ واحد. المستخدم يُفعّل نفس القدرة بمجرد نسخ الحزمة إلى مجلد الـ Skill الخاص ببيئته. هذا التوجه نحو harnesses متعددة ليس سمة هذا المشروع وحده؛ بل يتشاركه عدد من المشاريع المفتوحة المصدر التي ظهرت مؤخراً كمجموعات Skills أكاديمية مبنية على Codex، ومكتبات Skill للبحث الذكاء الاصطناعي العامة. علامة على أن ثمة محاولات متزامنة لنقل سير عمل البحث بأكمله إلى بيئة Skills.</p>

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

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

<p>نموذج تثبيت Agent Skill بسيط في مجمله. تنزّل الحزمة وتضعها في مسار الـ Skill الذي تتعرف عليه الأداة، فيستدعي الوكيل الـ Skill المناسب بحسب المهمة. التدفق العام كالتالي:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># استنساخ المستودع</span>
git clone https://github.com/Master-cai/Research-Paper-Writing-Skills.git

<span class="c"># نسخه إلى مجلد Skill الخاص بأداتك (راجع توثيق كل أداة للمسار الصحيح)</span>
<span class="c"># مثال: وضعه تحت .claude/skills/ في مشروع Claude Code</span>
<span class="nb">cp</span> <span class="nt">-r</span> Research-Paper-Writing-Skills/&lt;skill-dir&gt; .claude/skills/
</code></pre></div></div>

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

<h2 id="التطبيق-والدلالات-في-منصة-thakicloud-للذكاء-الاصطناعي-على-kubernetes">التطبيق والدلالات في منصة ThakiCloud للذكاء الاصطناعي على Kubernetes</h2>

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

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

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

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

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

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

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

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

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

<ul>
  <li>Research-Paper-Writing-Skills: <a href="https://github.com/Master-cai/Research-Paper-Writing-Skills">https://github.com/Master-cai/Research-Paper-Writing-Skills</a></li>
  <li>ملاحظات المؤلف الأصلية learning_research (بنغ سيدا): <a href="https://github.com/pengsida/learning_research">https://github.com/pengsida/learning_research</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="ai-agent" /><category term="agent-skills" /><category term="claude-code" /><category term="paper-writing" /><category term="llm" /><summary type="html"><![CDATA[مشروع مفتوح المصدر يُحوّل خبرة الأستاذ في كتابة الأوراق البحثية إلى حزمة Skill قابلة للاستدعاء من Codex أو Claude Code أو Gemini. نستعرض الفارق عن مجموعات البرومبت التقليدية، وأهمية صيغة Agent Skill، ودلالة هذا الاتجاه من منظور ThakiCloud التي تُشغّل منصة وكلاء تضم مئات الـ Skills.]]></summary></entry><entry xml:lang="ar"><title type="html">NVIDIA GLM-5.2-NVFP4: خدمة نموذج MoE رائد بحجم 753B بدقة 4 بت</title><link href="https://thakicloud.github.io/ar/llmops/nvidia-glm-5-2-nvfp4/" rel="alternate" type="text/html" title="NVIDIA GLM-5.2-NVFP4: خدمة نموذج MoE رائد بحجم 753B بدقة 4 بت" /><published>2026-06-26T00:00:00+09:00</published><updated>2026-06-26T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/llmops/nvidia-glm-5-2-nvfp4</id><content type="html" xml:base="https://thakicloud.github.io/ar/llmops/nvidia-glm-5-2-nvfp4/"><![CDATA[<p><img src="/assets/images/nvidia-glm-5-2-nvfp4-hero.png" alt="صورة تجريدية لشبكة عصبية بدقة 16 بت تتكثّف في نواة مدمجة بدقة 4 بت" />
<em>تصوّر مفاهيمي لتكثيف أوزان 16 بت إلى 4 بت.</em></p>

<p>بالنسبة لأي فريق يحاول خدمة نموذج استدلال من الطراز الرائد على بنيته التحتية الخاصة، فإن أول جدار يصطدم به هو ذاكرة وحدة معالجة الرسوميات (GPU). تحميل 753 مليار معامل بدقة 16 بت يتطلب ما يقارب 1.5 تيرابايت، أي عدة عُقد GPU. نموذج <code class="language-plaintext highlighter-rouge">nvidia/GLM-5.2-NVFP4</code>، الذي صدر على Hugging Face في 25 يونيو 2026، يكمّم نموذج GLM-5.2 من ZAI (zai-org) إلى 4 بت في محاولة لخفض هذا الجدار.</p>

<p>هذه المقالة ليست تعريفاً بنموذج GLM-5.2 نفسه. كيف يعيد طول رموز الاستدلال في النموذج تشكيل حسابات تكلفة الاستضافة الذاتية مشروح في <a href="https://thakicloud.github.io/ar/llmops/glm-5-2-reasoning-token-economics/">مقالة اقتصاديات رموز الاستدلال</a>، وتكميم GGUF بدقة 1 بت للعتاد الاستهلاكي في <a href="https://thakicloud.github.io/ar/llmops/unsloth-glm-5-2-1bit-gguf/">مقالة Unsloth GGUF</a>. هذه المقالة تنظر إلى مسار مركز البيانات: ما البنية التي اختارها تكميم NVFP4 الرسمي من NVIDIA، وعلى أي عتاد يُخدَم، وماذا يعني ذلك لمشغّل يدير خدمة متعددة المستأجرين.</p>

<p>كل رقم دقة هنا هو قياس رسمي منشور في بطاقة نموذج NVIDIA. النموذج بحجم 753B مخصص لـ Blackwell فقط ويتطلب توازياً موتّرياً بمقدار 8، لذا لم نتمكن من إعادة إنتاجه في بيئة تطوير ThakiCloud. لذلك فهذه المقالة تحليل مبني على مواد عامة — لم نختلق أي أرقام إعادة إنتاج. الأرقام التي تختلف بين المصادر مُعلَّمة بـ <code class="language-plaintext highlighter-rouge">[تقديري]</code>.</p>

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

<p><code class="language-plaintext highlighter-rouge">nvidia/GLM-5.2-NVFP4</code> هو نسخة من <code class="language-plaintext highlighter-rouge">zai-org/GLM-5.2</code> لـ ZAI مكمَّمة بأداة NVIDIA Model Optimizer (ModelOpt). النموذج الأساس هو بنية مزيج خبراء (MoE) للاستدلال والبرمجة، بإجمالي 753 مليار معامل يُفعَّل منها 40 مليار فقط لكل رمز. بنيته الشبكية هي <code class="language-plaintext highlighter-rouge">GlmMoeDsaForCausalLM</code>، ويستخدم انتباهاً متناثراً مع مُفهرِس IndexShare لدعم سياق يصل إلى مليون رمز. الترخيص هو MIT، مثل النموذج الأساس، ويتيح الاستخدام التجاري وغير التجاري.</p>

<p>جوهر الأمر في جملة واحدة: <strong>MoE يقلّل الحوسبة، والتكميم الانتقائي بـ NVFP4 يقلّل الذاكرة، والأجزاء الحسّاسة للدقة تُستثنى عمداً من التكميم.</strong> بفضل بنية MoE، حتى عند 753B تظل الحوسبة لكل رمز محصورة في خبراء الـ 40B المفعَّلين. ثم يُنزِل NVFP4 أوزان الخبراء الموجَّهين — التي تشكّل معظم بصمة الذاكرة — من 16 بت إلى 4 بت، مع إبقاء الخبير المشترك غير مكمَّم بدقة BF16 لتقليل خسارة الدقة.</p>

<p>التوقيت مهم. صدور نموذج مفتوح الأوزان قوي بترخيص MIT يتزامن مع إعادة NVIDIA إصدار ذلك النموذج، مُحسَّناً لعتادها، في صيغة قابلة للخدمة مباشرة. بالنسبة للمؤسسات التي توازن سيادة النماذج، هذه ليست قضية سياسات مجردة بل خيار معماري آنيّ: أي GPU يشغّل ماذا، وكيف.</p>

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

<p>GLM-5.2 هو نموذج استدلال وبرمجة من نوع MoE من ZAI. على عكس النموذج الكثيف (dense) التقليدي، يضع عدة شبكات خبراء داخل كل كتلة محوِّل ويفعّل مجموعة فرعية فقط لكل رمز إدخال. يحمل GLM-5.2 إجمالي 753 مليار معامل، لكن 40 مليار فقط تشارك فعلياً في توليد رمز معيّن. “سعته المعرفية” من فئة 753B، بينما حوسبة الاستدلال أقرب إلى نموذج كثيف بحجم 40B.</p>

<p>علاوة على ذلك، يستخدم GLM-5.2 انتباهاً متناثراً مع مُفهرِس IndexShare. التصميم يدعم سياق مليون رمز مع تجنّب تكلفة الانتباه الكامل الذي يقارن كل زوج رموز. تسمّي بطاقة النموذج هذه البنية <code class="language-plaintext highlighter-rouge">glm_moe_dsa</code> وتتطلب <code class="language-plaintext highlighter-rouge">transformers&gt;=5.3.0</code> للتشغيل. هاتان الطبقتان من التناثر — تناثر MoE وتناثر الانتباه — تتكاملان لتقديم استدلال من الطراز الرائد بحوسبة اقتصادية نسبياً، وهذه نقطة انطلاق GLM-5.2.</p>

<p>NVFP4 هو نوع بيانات عائم بدقة 4 بت عرّفته NVIDIA. المفتاح أنه عائم وليس عدداً صحيحاً بـ 4 بت. على وجه التحديد، يحزم قيماً عائمة صغيرة (E2M1) في كتل من 16 عنصراً ويرفق بكل كتلة مقياس FP8 (E4M3) — تحجيم على مستوى الكتل بمرحلتين. لأن كل كتلة تتتبّع مداها الديناميكي الخاص، يحافظ على أذيال التوزيع أفضل بكثير من التكميم الصحيح البسيط. تذكر NVIDIA بوضوح في بطاقة النموذج أن هذا ليس نموذجاً درّبته من الصفر بل نسخة مكمَّمة من نموذج طرف ثالث، أُنتجت بأداة NVIDIA Model Optimizer مفتوحة المصدر.</p>

<h2 id="المفتاح-هو-التكميم-الانتقائي">المفتاح هو التكميم “الانتقائي”</h2>

<p><img src="/assets/images/nvidia-glm-5-2-nvfp4-diagram.png" alt="مخطط لاستراتيجية التكميم الانتقائي ومسار الخدمة في GLM-5.2-NVFP4" />
<em>تُكمَّم فقط المعاملات الخطية لخبراء MoE الموجَّهين إلى NVFP4؛ ويبقى الخبير المشترك والانتباه بدقة BF16.</em></p>

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

<ul>
  <li><strong>مكمَّم إلى NVFP4 (4 بت)</strong>: أوزان وتنشيطات المعاملات الخطية لخبراء MoE الموجَّهين. بما أن هنا تعيش معظم معاملات الـ 753B، يأتي تقريباً كل توفير الذاكرة من هنا.</li>
  <li><strong>محفوظ بدقة BF16 (16 بت)</strong>: الخبير المشترك، ومسار الانتباه المتناثر IndexShare. هذه يعبرها كل رمز، فلها أثر كبير على الدقة.</li>
</ul>

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

<p>استخدمت المعايرة (calibration) مجموعات بيانات عائلة Nemotron من NVIDIA. تسمّي بطاقة النموذج Nemotron-SFT-Instruction-Following-Chat-v2 وNemotron-Science-v1 وNemotron-Competitive-Programming-v1 وNemotron-SFT-Agentic-v2 وNemotron-Math-v2 وNemotron-SFT-SWE-v2 وNemotron-SFT-Multilingual-v1 كبيانات معايرة. المزيج يشمل الاستدلال والعلوم والبرمجة والوكلاء والرياضيات ومتعدد اللغات، بما يتماشى مع طبيعة معايير التقييم.</p>

<h2 id="القياسات-المنشورة-الدقة-مقابل-fp8">القياسات المنشورة: الدقة مقابل FP8</h2>

<p><img src="/assets/images/nvidia-glm-5-2-nvfp4-results.png" alt="رسم بياني شريطي يقارن خط أساس FP8 ودرجات معايير NVFP4" />
<em>قياسات عامة من بطاقة نموذج nvidia/GLM-5.2-NVFP4. خط الأساس هو GLM-5.2-FP8.</em></p>

<p>المقارنة التي نشرتها NVIDIA في بطاقة النموذج أدناه. اللافت أن خط الأساس ليس BF16 بل <code class="language-plaintext highlighter-rouge">GLM-5.2-FP8</code> المضغوط أصلاً. أي أن هذا هو السؤال الأصعب: “كم يخسر 4 بت مقارنة بنموذج خُفِّض أصلاً إلى 8 بت”، بدلاً من “مقارنة بالأصل غير المضغوط”.</p>

<table>
  <thead>
    <tr>
      <th>المعيار</th>
      <th>خط الأساس (FP8)</th>
      <th>NVFP4</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>GPQA Diamond</td>
      <td>89.52</td>
      <td>89.39</td>
    </tr>
    <tr>
      <td>SciCode</td>
      <td>49.85</td>
      <td>49.04</td>
    </tr>
    <tr>
      <td>IFBench</td>
      <td>74.95</td>
      <td>75.81</td>
    </tr>
    <tr>
      <td>AA-LCR</td>
      <td>69.38</td>
      <td>70.13</td>
    </tr>
    <tr>
      <td>τ²-Bench Telecom</td>
      <td>97.9</td>
      <td>98.25</td>
    </tr>
  </tbody>
</table>

<p>كانت إعدادات القياس درجة حرارة 1.0 وtop_p 0.95، بحد أقصى للرموز الجديدة 100000 لـ GPQA Diamond و64000 للبقية. قِيس AA-LCR بـ SGLang؛ والبقية بـ vLLM. المعايير الخمسة تقيّم على التوالي الاستدلال العلمي بمستوى الدراسات العليا (GPQA Diamond، 448 سؤالاً)، والبرمجة العلمية (SciCode)، واتّباع التعليمات (IFBench)، واستذكار السياق الطويل (AA-LCR)، واستخدام الأدوات الوكيلي (τ²-Bench Telecom).</p>

<p>انخفض GPQA (−0.13) وSciCode (−0.81) قليلاً، بينما كان IFBench (+0.86) وAA-LCR (+0.75) وτ²-Bench Telecom (+0.35) أعلى فعلياً تحت NVFP4. قد يبدو تفوّق 4 بت على 8 بت غير بديهي، لكن فروقاً بهذا الحجم تُقرأ بأمان أكبر كضوضاء تباين أخذ العينات لا كخسارة تكميم. الرسالة الجوهرية أن “ضغط FP8 خطوة إضافية إلى 4 بت يُبقي الدقة ثابتة فعلياً”، وهي نتيجة مباشرة لاستراتيجية التكميم الانتقائي الموصوفة أعلاه.</p>

<h2 id="النشر-vllm-وsglang">النشر: vLLM وSGLang</h2>

<p>يدعم هذا النموذج رسمياً بيئتي التشغيل SGLang وvLLM، ويتطلب عتاد NVIDIA Blackwell، ويعمل على Linux. لأن نوى موتّرات NVFP4 موجودة فقط في جيل Blackwell، فإن عدم القدرة على استخدام مسار 4 بت هذا مباشرة على وحدات GPU الأقدم قيد مهم. أمر الخدمة عبر SGLang الذي توفّره بطاقة النموذج هو:</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip <span class="nb">install</span> <span class="nt">-U</span> <span class="s2">"transformers&gt;=5.3.0"</span> <span class="o">&amp;&amp;</span> <span class="se">\</span>
python3 <span class="nt">-m</span> sglang.launch_server <span class="se">\</span>
    <span class="nt">--model</span> nvidia/GLM-5.2-NVFP4 <span class="se">\</span>
    <span class="nt">--tensor-parallel-size</span> 8 <span class="se">\</span>
    <span class="nt">--quantization</span> modelopt_fp4 <span class="se">\</span>
    <span class="nt">--tool-call-parser</span> glm47 <span class="se">\</span>
    <span class="nt">--reasoning-parser</span> glm45 <span class="se">\</span>
    <span class="nt">--trust-remote-code</span> <span class="se">\</span>
    <span class="nt">--chunked-prefill-size</span> 131072 <span class="se">\</span>
    <span class="nt">--mem-fraction-static</span> 0.80
</code></pre></div></div>

<p>بضع إشارات تستحق القراءة هنا. <code class="language-plaintext highlighter-rouge">--tensor-parallel-size 8</code> يعني أن النموذج يفترض عُقدة من 8 وحدات GPU لا واحدة. <code class="language-plaintext highlighter-rouge">--quantization modelopt_fp4</code> يخبر بيئة التشغيل بالتعرّف على صيغة NVFP4 التي أنتجها ModelOpt. <code class="language-plaintext highlighter-rouge">--chunked-prefill-size 131072</code> يقسّم التعبئة المسبقة عند معالجة سياق المليون رمز لمنع قفزات الذاكرة، وهي قيمة تحكم الاستقرار في خدمة السياق الطويل. <code class="language-plaintext highlighter-rouge">--tool-call-parser glm47</code> و<code class="language-plaintext highlighter-rouge">--reasoning-parser glm45</code> يحلّلان صيغتَي استدعاء الأدوات ورموز الاستدلال لعائلة GLM، وهما يرتبطان مباشرة بأحمال العمل الوكيلية.</p>

<p>من ناحية الذاكرة، تقدير تقريبي: خدمة 753B بدقة BF16 تحتاج نحو 1.5 تيرابايت [تقديري]. بما أن الخبراء الموجَّهين يهيمنون على عدد المعاملات ويُنزَلون إلى 4 بت، تنخفض ذاكرة الأوزان الفعلية إلى نحو الثلث، فتقع في نطاق قابل للتحميل على عُقدة واحدة بتوازٍ موتّري ثماني (تُبلِغ مرايا NVFP4 المجتمعية عن نحو 1.37 تيرابايت ← 459 جيجابايت، أي نحو 3 أضعاف [تقديري]). لأن بطاقة النموذج لا تذكر الحجم الدقيق بالجيجابايت قبل التكميم وبعده، يحمل هذا الرقم علامة <code class="language-plaintext highlighter-rouge">[تقديري]</code>. ما لا لبس فيه أن أمر <code class="language-plaintext highlighter-rouge">--tensor-parallel-size 8</code> نفسه يشير إلى أن “8 وحدات Blackwell يمكنها خدمة نموذج استدلال بحجم 753B بسياق مليون رمز”.</p>

<h2 id="تطبيقه-على-منصة-thakicloud-السحابية-لخدمات-aiml-على-k8s">تطبيقه على منصة ThakiCloud السحابية لخدمات AI/ML على K8s</h2>

<p>تشغّل ThakiCloud منصة متعددة المستأجرين تجدوِل وحدات GPU عبر Kueue على K8s وتخدم النماذج عبر vLLM. في هذه البيئة، يهمّ نموذج مكمَّم مسبقاً من الطراز الرائد مثل <code class="language-plaintext highlighter-rouge">nvidia/GLM-5.2-NVFP4</code> بثلاث طرق.</p>

<p>أولاً، <strong>يتّسع نطاق مرشّحي الخدمة.</strong> يُستبعَد نموذج استدلال من فئة 753B عادةً مبكراً من النظر في الاستضافة الذاتية، لكن إذا جعل تكميم 4 بت الأوزان مع هامش KV تناسب عُقدة Blackwell واحدة بـ 8 وحدات GPU، تصبح الخدمة الذاتية داخل المؤسسة خياراً واقعياً. باستخدام ResourceFlavor وClusterQueue في Kueue لتخصيص تجمّع عُقد Blackwell لاستدلال NVFP4، يتحوّل هامش الذاكرة المكتسب عبر التكميم مباشرة إلى عدد المستأجرين المخدومين معاً. بالنسبة للعملاء الذين لا يستطيعون إرسال البيانات إلى واجهات برمجية خارجية — خصوصاً القطاع العام والمالية حيث تُشترَط الاستضافة الذاتية وسيادة البيانات — فإن إبقاء الاستدلال الرائد داخلياً ميزة تنافسية بحد ذاتها.</p>

<p>ثانياً، <strong>لست مضطراً لتشغيل خط أنابيب التكميم بنفسك.</strong> معايرة وتكميم 753B بـ ModelOpt يتطلبان وقت GPU وهندسة كبيرين. إذا أمكننا أخذ نموذج معتمَد من NVIDIA ووضعه مباشرة على vLLM/SGLang، يمكننا تركيز الموارد على التوجيه متعدد المستأجرين والتوسّع التلقائي ومراقبة التكلفة بدلاً من التحقق من التكميم. ومع ذلك، يحوي نظام مهارات ThakiCloud بالفعل سير عمل داخلياً يكمّم عائلة Qwen3-MoE إلى NVFP4، لذا فإن الوصفة التي طبّقتها NVIDIA على GLM-5.2 — “الخبراء إلى 4 بت، الخبير المشترك والانتباه بـ BF16” — تصبح نمطاً عاماً يمكننا اقتباسه مباشرة عند تكميم نماذج مجال العملاء بأنفسنا.</p>

<p>ثالثاً، <strong>يستحق التكميم الانتقائي الإدراج في معايير اعتماد النماذج لدينا.</strong> المبدأ الذي أظهره هذا النموذج — “بقوة حيث يوجد الكثير المتناثر، وبتحفّظ حيث يُستخدم دائماً” — ينطبق كما هو عند تكميم نماذج MoE أخرى داخلياً. بدلاً من سحق الكل ببساطة إلى 4 بت، يمكن أن يصبح الحفاظ على الخبير المشترك والانتباه بنداً في بوابة اعتماد النماذج. غير أن قيد Blackwell-only مرتبط مباشرة بتكوين تجمّع GPU لدينا، لذا يجب أن تذكر خارطة طريق الاعتماد أن استخدام مسار NVFP4 يفترض تأمين عُقد Blackwell.</p>

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

<p>أكبر قيد هو <strong>التبعية للعتاد.</strong> يفترض مسار NVFP4 بـ 4 بت نوى موتّرات Blackwell، لذا فإن البيئات التي تملك أجيالاً أقدم فقط (Hopper H100/H200) لا يمكنها تحقيق فوائد هذا النموذج كما هي. سردية “4 بت تجعله رخيصاً” تصحّ فقط عندما تكون عُقد Blackwell مؤمَّنة أو مخطَّطة، وهي فعلاً تفترض إنفاقاً رأسمالياً جديداً.</p>

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

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

<p>رابعاً، <strong>وجها التكميم الانتقائي.</strong> إبقاء الخبير المشترك والانتباه بـ BF16 حمى الدقة، لكنه أيضاً يجعل توفير الذاكرة أصغر من “الكل بـ 4 بت”. أي أن هذا النموذج اختار “ضغطاً يحمي الدقة” لا “أقصى ضغط”. لبيئة تكلفة قصوى تهدف إلى تشغيله على وحدة GPU واحدة لمحطة عمل، تناسب مقايضة GGUF بـ 1 بت الأكثر جرأة (بجودة أدنى) بشكل أفضل.</p>

<p>باختصار، <code class="language-plaintext highlighter-rouge">nvidia/GLM-5.2-NVFP4</code> حالة لإنزال نموذج استدلال MoE رائد بحجم 753B إلى 4 بت دون خسارة دقة، ما يجعل الخدمة الذاتية على عُقدة Blackwell بـ 8 وحدات GPU خياراً واقعياً. من منظور ThakiCloud، يضيف ورقة أخرى لتقديم الاستدلال الرائد للعملاء ذوي متطلبات الاستضافة الداخلية وسيادة البيانات، ومناسبة لإدراج المبدأ العام “التكميم الانتقائي” في معايير اعتماد النماذج. لكن ذلك الباب لا يُفتَح إلا بمفتاح Blackwell.</p>

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

<ul>
  <li><a href="https://huggingface.co/nvidia/GLM-5.2-NVFP4">nvidia/GLM-5.2-NVFP4 · Hugging Face</a></li>
  <li><a href="https://huggingface.co/zai-org/GLM-5.2">النموذج الأساس GLM-5.2 (ZAI) · Hugging Face</a></li>
  <li><a href="https://github.com/NVIDIA/Model-Optimizer">NVIDIA Model Optimizer · GitHub</a></li>
  <li><a href="https://huggingface.co/collections/nvidia/inference-optimized-checkpoints-with-model-optimizer">Inference-Optimized Checkpoints with Model Optimizer (مجموعة) · Hugging Face</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="nvfp4" /><category term="quantization" /><category term="vllm" /><category term="sglang" /><category term="glm" /><category term="moe" /><category term="inference-optimization" /><category term="model-optimizer" /><summary type="html"><![CDATA[كمّمت NVIDIA نموذج الاستدلال GLM-5.2 من ZAI (MoE بحجم 753B) إلى NVFP4 (4 بت) ونشرته على Hugging Face. بدلاً من سحق كل الأوزان إلى 4 بت، تُكمَّم فقط المعاملات الخطية لخبراء MoE الموجَّهين، بينما يبقى الخبير المشترك والانتباه بدقة BF16 — تكميم انتقائي يحافظ على الدقة شبه ثابتة مقابل خط أساس FP8. نستعرض استراتيجية التكميم والقياسات المنشورة وأوامر النشر عبر vLLM/SGLang من منظور منصة الخدمة متعددة المستأجرين على K8s لدى ThakiCloud.]]></summary></entry><entry xml:lang="ar"><title type="html">ذاكرة الوكيل أصبحت الآن نظام بيانات: تحليل Agent-Native Memory من منظور إدارة البيانات</title><link href="https://thakicloud.github.io/ar/research/agent-native-memory-system/" rel="alternate" type="text/html" title="ذاكرة الوكيل أصبحت الآن نظام بيانات: تحليل Agent-Native Memory من منظور إدارة البيانات" /><published>2026-06-26T00:00:00+09:00</published><updated>2026-06-26T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/research/agent-native-memory-system</id><content type="html" xml:base="https://thakicloud.github.io/ar/research/agent-native-memory-system/"><![CDATA[<p><img src="/assets/images/agent-native-memory-system-hero.png" alt="صورة تجريدية تُظهر بيانات طبقية تتدفق عبر بنية شبكية تجمع بين الشبكات العصبية وقواعد البيانات، مع خلايا ذاكرة تتشكل وتتلاشى" /></p>

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

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

<p>غير أن ورقة arXiv المنشورة في 23 يونيو 2026 بعنوان <a href="https://arxiv.org/abs/2606.24775">Are We Ready For An Agent-Native Memory System?</a> تطرح منظوراً يمكن تلخيصه في جملة واحدة: ذاكرة الوكيل لم تعد أداةً للتعزيز بالاسترجاع، بل تطورت لتصبح <strong>نظام إدارة بيانات متكاملاً (data management system)</strong> يتولى التخزين الدائم والاسترجاع والتحديث والدمج وإدارة دورة الحياة الديناميكية معاً. هذه الورقة هي التي لخّصها dair_ai بالقول: “ذاكرة الوكيل أصبحت الآن نظام بيانات”.</p>

<p>أهمية هذا المنظور بالنسبة لمن يُشغّل وكلاء متعددي المستأجرين فوق Kubernetes كما تفعل ThakiCloud، أن الذاكرة تتحول من “ميزة” إلى “نظام تشغيلي”، وهذا يستتبع فوراً قرارات تتعلق بالتكلفة والمتانة والهندسة المعمارية. تستند هذه المقالة إلى الملخص الرسمي للورقة و<a href="https://github.com/OpenDataBox/MemoryData">الكود المنشور</a> لاستخلاص الحجج الجوهرية وما يمكن أن تُفيد به منصتنا.</p>

<blockquote>
  <p>📄 <strong>المراجعة المتعمقة الكاملة (DOCX)</strong>: <a href="https://drive.google.com/file/d/1wLivKobOMtAKQ1zwCmG-O8wdebyZRbcz/view">نزّل المراجعة التفصيلية من Google Drive</a>.</p>
</blockquote>

<h2 id="ما-الذي-تبحثه-هذه-الدراسة">ما الذي تبحثه هذه الدراسة؟</h2>

<p>إشكالية الورقة بسيطة لكنها حادة: كانت طرق تقييم ذاكرة الوكيل حتى الآن تقتصر في معظمها على <strong>مقاييس النجاح الشامل من طرف إلى طرف (end-to-end)</strong>. درجات مثل F1 أو BLEU تُجيب فقط على “هل أجاب الوكيل بصورة صحيحة؟”، فيما يبقى النظام الداخلي للذاكرة التي أنتجت تلك الإجابة صندوقاً أسود مغلقاً.</p>

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

<p>لذلك أجرى المؤلفون، وهم Wei Zhou وXuanhe Zhou وGuoliang Li وZhiyu Li وFeiyu Xiong وآخرون، ولافتٌ أن في صفوفهم باحثين متخصصين في أنظمة قواعد البيانات مما يشكّل هوية الورقة، تجارب منهجية على الذاكرة <strong>من منظور إدارة البيانات</strong>. ويتجسد هذا في إطار تحليلي يُفكّك ذاكرة الوكيل إلى أربع وحدات جوهرية.</p>

<p><img src="/assets/images/agent-native-memory-system-diagram.png" alt="مخطط هيكلي يُبيّن الوحدات الأربع للذاكرة المحيطة بتنفيذ الوكيل (التمثيل والتخزين، الاستخراج، الاسترجاع والتوجيه، الصيانة)، مع تدفقات الكتابة والقراءة والدمج" /></p>

<p>الوحدات الأربع هي:</p>

<ol>
  <li><strong>التمثيل والتخزين (Representation &amp; Storage)</strong>: بأي شكل تُحفظ الذكريات وأين تُخزّن؟ طريقة التمثيل، متجهات أو رسوم بيانية أو أشجار أو نص عادي، تُحدد مباشرةً <strong>دقة التمثيل (representation fidelity)</strong>.</li>
  <li><strong>الاستخراج (Extraction)</strong>: مرحلة انتقاء ما يستحق التذكر خلال تنفيذ الوكيل. لا يمكن تخزين كل الرموز، فهنا يُفرز الإشارة من الضجيج.</li>
  <li><strong>الاسترجاع والتوجيه (Retrieval &amp; Routing)</strong>: مرحلة الوصول إلى الذكرى الصحيحة في اللحظة المناسبة وإعادتها عبر المسار الملائم. يتجلى هنا مقياس <strong>دقة الاسترجاع (retrieval precision)</strong>.</li>
  <li><strong>الصيانة (Maintenance)</strong>: مرحلة دمج الذكريات القديمة وتحديثها وتنظيفها. هنا تُحدَّد <strong>دقة التحديث (update correctness)</strong> و<strong>الاستقرار طويل الأمد (long-horizon stability)</strong>.</li>
</ol>

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

<h2 id="الاكتشافات-الجوهرية">الاكتشافات الجوهرية</h2>

<p>تُقيّم الورقة على هذا الإطار <strong>12 نظام ذاكرة تمثيلياً و2 خطوط أساسية مرجعية</strong> عبر <strong>5 أعباء عمل معيارية و11 مجموعة بيانات</strong>. قياس أنظمة متعددة بمقياس موحّد، لا نموذج واحد ولا مجموعة بيانات واحدة، هو ما يمنح هذه الدراسة ثقلها. ثمة ثلاثة استنتاجات يمكن استخلاصها مباشرةً من الملخص.</p>

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

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

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

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

<h2 id="الدلالات-والتطبيقات-على-منصة-thakicloud-k8s-aiml-saas">الدلالات والتطبيقات على منصة ThakiCloud K8s AI/ML SaaS</h2>

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

<p><strong>اعتبار الذاكرة نظام بيانات يُدار لكل مستأجر.</strong> إذا كانت ذاكرة الوكيل نظام إدارة بيانات، فهذا يعني أن لكل مستأجر تكاليف تخزين ومواعيد استجابة وأحمال تحديث مستقلة تستوجب الإدارة. في بيئة متعددة المستأجرين، ضمان ألا تمتص صيانة ذاكرة مستأجر واحد موارد GPU أو I/O مستأجرين آخرين هو مشكلة من الطراز ذاته الذي نُعالجه بـKueue حين نُجدوّل أحمال GPU ونعزلها. الذاكرة أيضاً ينبغي أن تُعامَل بوصفها “عبء عمل له ميزانية موارد” لا “ميزة”.</p>

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

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

<p>ثمة خطوتان عمليتان يمكننا اتخاذهما الآن: الأولى اتخاذ تفكيك الوحدات الأربع وتصنيف أعباء العمل من <a href="https://github.com/OpenDataBox/MemoryData">كود MemoryData</a> نقطةَ انطلاق لقياس ذاكرة المستأجرين بمقاييس لكل وحدة (دقة التمثيل / دقة الاسترجاع / دقة التحديث / الاستقرار طويل الأمد) بدلاً من درجة شاملة واحدة. الثانية تصميم سياسة الصيانة بحيث تُعطى الأولوية للتحديث المحلي على إعادة التنظيم الشاملة، مما يُرسّخ سقفاً للتكلفة في مرحلة التصميم ذاتها.</p>

<h2 id="القيود-والانتقادات">القيود والانتقادات</h2>

<p>للموضوعية، ثمة نقاط ينبغي مراعاتها قبل تبنّي هذا البحث على علّاته.</p>

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

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

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

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

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

<ul>
  <li>الورقة: <a href="https://arxiv.org/abs/2606.24775">Are We Ready For An Agent-Native Memory System? (arXiv 2606.24775)</a></li>
  <li>HF Papers: <a href="https://hf.co/papers/2606.24775">hf.co/papers/2606.24775</a></li>
  <li>الكود المنشور: <a href="https://github.com/OpenDataBox/MemoryData">github.com/OpenDataBox/MemoryData</a></li>
  <li>السياق الأصلي: dair_ai، “Agent memory is a data system now”</li>
</ul>

<blockquote>
  <p>📄 <strong>المراجعة المتعمقة الكاملة (DOCX)</strong>: <a href="https://drive.google.com/file/d/1wLivKobOMtAKQ1zwCmG-O8wdebyZRbcz/view">نزّل المراجعة التفصيلية من Google Drive</a>.</p>
</blockquote>]]></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="agent-memory" /><category term="llm-agent" /><category term="data-management" /><category term="long-term-memory" /><category term="retrieval" /><category term="benchmark" /><category term="on-premise" /><summary type="html"><![CDATA[تتناول ورقة arXiv 2606.24775 بعنوان 'Are We Ready For An Agent-Native Memory System?' ذاكرة وكلاء LLM باعتبارها نظام إدارة بيانات متكاملاً لا مجرد RAG، وتُفكّك 12 نظام ذاكرة إلى 4 وحدات وتقيسها. نستعرض هنا الحجج الجوهرية ودلالاتها من منظور منصة ThakiCloud، استناداً إلى الملخص الرسمي والكود المنشور.]]></summary></entry><entry xml:lang="ar"><title type="html">لن تكتب SKILL.md بيدك بعد الآن: نظرة معمّقة على أمر /learn في Hermes Agent</title><link href="https://thakicloud.github.io/ar/technique/hermes-agent-learn-skills/" rel="alternate" type="text/html" title="لن تكتب SKILL.md بيدك بعد الآن: نظرة معمّقة على أمر /learn في Hermes Agent" /><published>2026-06-26T00:00:00+09:00</published><updated>2026-06-26T00:00:00+09:00</updated><id>https://thakicloud.github.io/ar/technique/hermes-agent-learn-skills</id><content type="html" xml:base="https://thakicloud.github.io/ar/technique/hermes-agent-learn-skills/"><![CDATA[<p><img src="/assets/images/hermes-agent-learn-skills-hero.png" alt="عملية تأليف المهارات ممثَّلة بتقارب شظايا معرفية متفرقة إلى بنية متبلورة واحدة" />
<em>مفهوم /learn مُجسَّدًا بتبلور شظايا معرفية متناثرة من اتجاهات شتى في مخرج واحد منظّم.</em></p>

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

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

<p>أمر <code class="language-plaintext highlighter-rouge">/learn</code> الذي أضافه Nous Research في 24 يونيو 2026 إلى إطار عمل Hermes Agent يُلغي هذه الخطوة اليدوية كليًا. أشِر إلى دليل، أو رابط URL، أو محادثة انتهيت منها للتو، أو ملاحظات لصقتها، فيجمع الوكيل الحيّ المواد مباشرةً ويؤلف <code class="language-plaintext highlighter-rouge">SKILL.md</code> مطابقًا للمعيار. أشعل هذا الأمر اهتمامًا واسعًا حين شارك tonbistudio مقطع عرض توضيحي على تويتر يُظهر بناء مهارة من مصادر متعددة، وبما أن ThakiCloud كانت قد ثبّتت Hermes Agent مسبقًا وتشغّله داخليًا، أجرينا التحقق بأنفسنا.</p>

<p>تُشغّل ThakiCloud وكلاء متعددي المستأجرين على منصة SaaS للذكاء الاصطناعي/تعلم الآلة مبنية على Kubernetes. البنية التي يبني فيها الوكيل ذاكرةً إجرائية بنفسه، ثم يخضع هذا البناء لمراجعة بشرية عبر بوابة مخصصة، تتقاطع تمامًا مع المبدأ الذي كنّا نصيغه تحت اسم “Thin Harness, Fat Skills - harness رفيع ومهارات ثرية”، أي أنّ القدرات تتراكم في المهارات لا في الـ harness. <code class="language-plaintext highlighter-rouge">/learn</code> أداة تخفّض حاجز الدخول لبناء تلك المهارات، مما يجعلها أكثر من مجرد ميزة مريحة.</p>

<h2 id="ما-هذه-التقنية">ما هذه التقنية؟</h2>

<p><code class="language-plaintext highlighter-rouge">/learn</code> ليس محرك استيعاب مستقلًا. جوهره أنه “يبني موجّهًا يرشد الوكيل عبر المعايير ثم يُمرره كدورة عادية واحدة.” لذلك تظل عملية جمع المصادر تعمل بالأدوات التي يمتلكها الوكيل بالفعل: الأدلة المحلية تُقرأ عبر <code class="language-plaintext highlighter-rouge">read_file</code> و<code class="language-plaintext highlighter-rouge">search_files</code>، والوثائق الإلكترونية تُجلب عبر <code class="language-plaintext highlighter-rouge">web_extract</code>، وسير العمل التي أُنجزت معًا في المحادثة تُلتقط من سياق الحوار مباشرةً.</p>

<p><img src="/assets/images/hermes-agent-learn-skills-diagram.png" alt="مسار /learn من جمع المصادر إلى تأليف SKILL.md معياري ثم العبور عبر البوابة ليصبح أمر slash" />
<em>المسار الكامل لـ /learn: من وصف المصدر، إلى الجمع بأدوات الوكيل، ثم تأليف SKILL.md معياري، ثم العبور عبر بوابة write_approval وcurator.</em></p>

<p>المصادر المقبولة أربعة أنواع. فيما يلي الأمثلة المأخوذة مباشرةً من التوثيق الرسمي:</p>

<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code># دليل SDK أو وثائق محلية (تُقرأ عبر read_file / search_files)
/learn the REST client in ~/projects/acme-sdk, focus on auth + pagination

# صفحة وثائق إلكترونية (تُجلب عبر web_extract)
/learn https://docs.example.com/api/quickstart

# سير عمل أنجزناها معًا في هذه المحادثة
/learn how I just deployed the staging server

# ملاحظات لُصقت أو إجراء شُرح شفهيًا
/learn filing an expense: open the portal, New &gt; Expense, attach the receipt, submit
</code></pre></div></div>

<p>يُنظّم الوكيل المواد المجموعة وفق “معيار التأليف الداخلي”: الوصف لا يتجاوز 60 حرفًا، وترتيب الأقسام ثابت، والصياغة مرجعها أدوات Hermes، وقاعدة صارمة بعدم اختراع أوامر غير موجودة. المنتج النهائي <code class="language-plaintext highlighter-rouge">SKILL.md</code> مؤلَّف من frontmatter بصيغة YAML وأقسام ثابتة في الجسم:</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">name</span><span class="pi">:</span> <span class="s">my-skill</span>
<span class="na">description</span><span class="pi">:</span> <span class="s">Brief description of what this skill does</span>
<span class="na">version</span><span class="pi">:</span> <span class="s">1.0.0</span>
<span class="na">platforms</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">macos</span><span class="pi">,</span> <span class="nv">linux</span><span class="pi">]</span>
<span class="na">metadata</span><span class="pi">:</span>
  <span class="na">hermes</span><span class="pi">:</span>
    <span class="na">tags</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">python</span><span class="pi">,</span> <span class="nv">automation</span><span class="pi">]</span>
    <span class="na">category</span><span class="pi">:</span> <span class="s">devops</span>
<span class="nn">---</span>

<span class="c1"># Skill Title</span>

<span class="c1">## When to Use</span>
<span class="s">الشروط التي تُطلق هذه المهارة.</span>

<span class="c1">## Procedure</span>
<span class="s">1. الخطوة الأولى</span>
<span class="s">2. الخطوة الثانية</span>

<span class="c1">## Pitfalls</span>
<span class="pi">-</span> <span class="s">أنماط الفشل المعروفة وكيفية معالجتها</span>

<span class="c1">## Verification</span>
<span class="s">كيفية التحقق من صحة التنفيذ.</span>
</code></pre></div></div>

<p>التخزين يتولاه أداة <code class="language-plaintext highlighter-rouge">skill_manage</code>. ثمة ضمانة أمان مهمة هنا: إذا كان <code class="language-plaintext highlighter-rouge">skills.write_approval</code> مُفعَّلًا، فإن كل كتابة مهارة من الوكيل لا تُطبَّق فورًا، بل تُرحَّل إلى <code class="language-plaintext highlighter-rouge">~/.hermes/pending/skills/</code>. يرى المشغّل التغييرات المعلّقة عبر <code class="language-plaintext highlighter-rouge">/skills pending</code>، ويفحص الفرق الكامل عبر <code class="language-plaintext highlighter-rouge">/skills diff &lt;id&gt;</code>، ثم يوافق أو يرفض. تنطبق هذه البوابة على المهارات المُنشأة في الدورات الأمامية وعلى تلك التي اقترحها الوكيل في إطار مراجعة التحسين الذاتي الخلفية.</p>

<p>بفضل عدم الاعتماد على محرك استيعاب مستقل، يعمل <code class="language-plaintext highlighter-rouge">/learn</code> بالتماثل ذاته في واجهات CLI وTUI وبوابات المراسلة ولوحات التحكم. لا يُهم إذا كانت الخلفية الطرفية محلية أو ضمن Docker أو بعيدة. في لوحة التحكم، تظهر في صفحة Skills زر “Learn a skill” يعرض حقلًا للدليل وحقلًا لعنوان URL ومربع نص حر لتكوين طلب <code class="language-plaintext highlighter-rouge">/learn</code> وتشغيله.</p>

<p>سيناريوهات الاستخدام التي يقترحها التوثيق الرسمي ثلاثة. الأول: إعداد API الداخلي. تشغيل <code class="language-plaintext highlighter-rouge">/learn</code> على رابط وثائق خاص يُنتج مهارة تضم المصادقة والصفحات وأكثر الاستدعاءات استخدامًا، يستدعيها الأعضاء الجدد كأمر slash. الثاني: التقاط كتاب التشغيل. بعد إجراء نشر staging مع الوكيل، تشغيل <code class="language-plaintext highlighter-rouge">/learn how I just deployed the staging server</code> يجعل تلك الإجراءات قابلة للتكرار عبر CLI وأنظمة الدردشة. الثالث: تجميع المهام المتكررة. تقوم حزمة المهارات بتحميل مهارات المراجعة والاختبار وطلب السحب دفعةً واحدة بأمر slash واحد:</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># ~/.hermes/skill-bundles/backend-dev.yaml</span>
<span class="na">name</span><span class="pi">:</span> <span class="s">backend-dev</span>
<span class="na">description</span><span class="pi">:</span> <span class="s">Backend feature work - review, test, PR workflow.</span>
<span class="na">skills</span><span class="pi">:</span>
  <span class="pi">-</span> <span class="s">github-code-review</span>
  <span class="pi">-</span> <span class="s">test-driven-development</span>
  <span class="pi">-</span> <span class="s">github-pr-workflow</span>
<span class="na">instruction</span><span class="pi">:</span> <span class="pi">|</span>
  <span class="s">Always start by writing failing tests, then implement.</span>
</code></pre></div></div>

<p>يُتيح نظام المهارات نفسه البدء بحالة نظيفة. <code class="language-plaintext highlighter-rouge">hermes skills opt-out</code> يوقف بذر مهارات الحزمة، و<code class="language-plaintext highlighter-rouge">hermes skills opt-in --sync</code> يُعيده. حقل <code class="language-plaintext highlighter-rouge">platforms</code> يُخفي المهارات على أنظمة التشغيل غير المتوافقة، والحقول الشرطية تكشف المهارة فقط حين تتوفر مجموعة أدوات بعينها.</p>

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

<p>فحصنا Hermes Agent المثبّت في بيئة ThakiCloud مباشرةً. الملف الثنائي في <code class="language-plaintext highlighter-rouge">~/.local/bin/hermes</code>، ويعمل فعليًا عبر Python في <code class="language-plaintext highlighter-rouge">~/hermes-agent/venv</code>.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>~/.local/bin/hermes <span class="nt">--version</span>
Hermes Agent v0.16.0 <span class="o">(</span>2026.6.5<span class="o">)</span> · upstream 40cea4d5
Python: 3.11.13
OpenAI SDK: 2.24.0
</code></pre></div></div>

<p>تتجمع جميع المهارات في <code class="language-plaintext highlighter-rouge">~/.hermes/skills/</code>، وهو مصدر الحقيقة الوحيد. نظرًا للتوافق مع المعيار المفتوح agentskills.io، يمكن تهيئة أدوات متعددة لمسح مجلد مهارات مشترك. هذه التهيئة الخارجية هي صلب منظور المنصة الذي سنتناوله لاحقًا.</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># ~/.hermes/config.yaml</span>
<span class="na">skills</span><span class="pi">:</span>
  <span class="na">external_dirs</span><span class="pi">:</span>
    <span class="pi">-</span> <span class="s">~/.agents/skills</span>
    <span class="pi">-</span> <span class="s">/home/shared/team-skills</span>
    <span class="pi">-</span> <span class="s">${SKILLS_REPO}/skills</span>
</code></pre></div></div>

<p>استخرجنا قائمة المهارات المثبّتة مباشرةً. يتضمن التثبيت الحالي 78 مهارة مصنّفة ضمن فئات مثل apple وautonomous-ai-agents وcreative وغيرها.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>~/.local/bin/hermes skills list
                                Installed Skills
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┓
┃ Name                ┃ Category             ┃ Source  ┃ Trust   ┃ Status  ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━┩
│ claude-code         │ autonomous-ai-agents │ <span class="nb">builtin</span> │ <span class="nb">builtin</span> │ enabled │
│ architecture-diagram│ creative             │ <span class="nb">builtin</span> │ <span class="nb">builtin</span> │ enabled │
│ humanizer           │ creative             │ <span class="nb">builtin</span> │ <span class="nb">builtin</span> │ enabled │
│ excalidraw          │ creative             │ <span class="nb">builtin</span> │ <span class="nb">builtin</span> │ enabled │
└─────────────────────┴──────────────────────┴─────────┴─────────┴─────────┘
</code></pre></div></div>

<p>كل مهارة مثبّتة تصبح تلقائيًا أمر slash. الاستدعاء بالاسم وحده كـ <code class="language-plaintext highlighter-rouge">/excalidraw</code> يُحمّل المهارة ويسأل الوكيل عمّا يمكنه مساعدتك به، والاستدعاء مع وسيطات كـ <code class="language-plaintext highlighter-rouge">/plan design a rollout for migrating our auth provider</code> يعالج الطلب فورًا. الأوامر الفرعية لإدارة المهارات وفيرة:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>~/.local/bin/hermes skills <span class="nt">--help</span>
<span class="o">{</span>browse, search, <span class="nb">install</span>, inspect, list, check, update, audit,
 uninstall, reset, opt-out, opt-in, repair-official, publish,
 snapshot, tap, config<span class="o">}</span>
</code></pre></div></div>

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

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>~/.local/bin/hermes curator <span class="nt">--help</span>
<span class="o">{</span>status, run, pause, resume, pin, unpin, restore,
 list-archived, archive, prune, backup, rollback<span class="o">}</span>
</code></pre></div></div>

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

<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Level 0: skills_list()           → [{name, description, category}, ...]   (~3k رمزًا)
Level 1: skill_view(name)        → المحتوى الكامل + البيانات الوصفية
Level 2: skill_view(name, path)  → ملف مرجعي محدد
</code></pre></div></div>

<h2 id="نتائج-التجربة-الفعلية">نتائج التجربة الفعلية</h2>

<p>ثمة قيد يجب توثيقه بصدق هنا. النسخة المثبّتة لدى ThakiCloud هي <code class="language-plaintext highlighter-rouge">v0.16.0 (2026.6.5)</code>، وهي تسبق إصدار 24 يونيو 2026 الذي أضاف <code class="language-plaintext highlighter-rouge">/learn</code>. إذ يُبلّغ الملف الثنائي بأنه “محدَّث” بناءً على checkout git المحلي، فلم تنعكس الإصدارات الجديدة من المستودع الرئيسي تلقائيًا. لهذا لم نتمكن في هذا المقال من تشغيل <code class="language-plaintext highlighter-rouge">/learn</code> في بيئتنا والتقاط نتائج قابلة للقياس. قيد محاولة الاستنساخ: نسخة التثبيت تسبق إدخال <code class="language-plaintext highlighter-rouge">/learn</code> فالأمر غائب أصلًا.</p>

<p>في المقابل، تحققنا من كل ما كان ممكنًا بالقياس المباشر. الهيكل الذي يودع <code class="language-plaintext highlighter-rouge">/learn</code> نتائجه فيه - نظام المهارات - يعمل في بيئتنا كما هو متوقع. 78 مهارة مكشوفة كأوامر slash، ومسار التأليف الذاتي المعتمد على <code class="language-plaintext highlighter-rouge">skill_manage</code>، وبوابة الترحيل <code class="language-plaintext highlighter-rouge">skills.write_approval</code>، وتنظيف curator في الخلفية، وفهرسة الكشف التدريجي - كلها موجودة في النسخة المثبّتة. أي أن ما أضافه <code class="language-plaintext highlighter-rouge">/learn</code> هو نقطة دخول رفيعة تحوّل “أشر إلى مصدر فيُبنى موجّه معياري ويُمرر عبر مسار التأليف الموجود”، أما الجزء الثقيل الذي يقبع تحته فقد تحقق منه بالفعل.</p>

<p>سلوك <code class="language-plaintext highlighter-rouge">/learn</code> ذاته تحققنا منه عبر التوثيق الرسمي وتقرير MarkTechPost الصادر في 24 يونيو 2026. كلا المصدرين يُورد الحقائق ذاتها: أنواع المصادر الأربعة، وأدوات الجمع <code class="language-plaintext highlighter-rouge">read_file</code>/<code class="language-plaintext highlighter-rouge">search_files</code>/<code class="language-plaintext highlighter-rouge">web_extract</code>، وقيد الـ 60 حرفًا مع ترتيب الأقسام الثابت، والحفظ عبر <code class="language-plaintext highlighter-rouge">skill_manage</code> وبوابة <code class="language-plaintext highlighter-rouge">write_approval</code>. بدلًا من اختراع أرقام، نفصل بوضوح ما تحقق منه وما لم يتحقق.</p>

<p>التحديث إلى المستودع الرئيسي سيُتيح تشغيل <code class="language-plaintext highlighter-rouge">/learn</code> مباشرةً وقياس جودة المخرجات. غير أن هذا التحديث قد يؤثر على البيئة متعددة المستأجرين الجارية، لذا الأسلم التحقق في ملف تعريف معزول أولًا ثم تطبيقه. ننوي تعزيز هذا المقال بالتقاطات من <code class="language-plaintext highlighter-rouge">/learn</code> الفعلي في مقال لاحق.</p>

<h2 id="التطبيق-والانعكاسات-على-منصة-thakicloud-للذكاء-الاصطناعيتعلم-الآلة-على-kubernetes">التطبيق والانعكاسات على منصة ThakiCloud للذكاء الاصطناعي/تعلم الآلة على Kubernetes</h2>

<p>ما يجعل <code class="language-plaintext highlighter-rouge">/learn</code> مثيرًا للاهتمام ليس الراحة وحدها، بل تقاطعه المباشر مع ثلاث مشكلات تواجهها منصة الوكلاء متعددة المستأجرين.</p>

<p>الأولى: تكلفة التقاط المعرفة الحقلية. لكل عميل كتاب نشر ومعايير API داخلية وإجراءات للاستجابة للحوادث مختلفة. نقلها يدويًا في كل مرة إلى <code class="language-plaintext highlighter-rouge">SKILL.md</code> يُبطئ التبني. <code class="language-plaintext highlighter-rouge">/learn</code> يحوّل “حوّل العمل الذي أنجزناه للتو إلى مهارة” جملةً واحدة تُحوّل الذاكرة الإجرائية فورًا إلى أصل قابل لإعادة الاستخدام. نشر staging أجراه مشغّل مرة واحدة يصبح أمرًا قابلًا للتكرار عبر CLI والدردشة معًا.</p>

<p>الثانية: الحوكمة. تتعامل ThakiCloud مع بيئات on-premises وself-hosting وبيئات تخضع لمتطلبات أمنية صارمة. قدرة الوكيل على كتابة مهاراته الخاصة قوية، لكنها في الوقت ذاته خطر تراكم إجراءات غير مراجَعة تلقائيًا. بنية ترحيل <code class="language-plaintext highlighter-rouge">write_approval</code> لكل عمليات كتابة المهارات إلى <code class="language-plaintext highlighter-rouge">~/.hermes/pending/skills/</code>، مع استمرارها عبر عمليات إعادة التشغيل وإتاحة <code class="language-plaintext highlighter-rouge">/skills diff</code> للمراجعة البشرية الكاملة، مناسبة لهذه البيئات. إنها تصميم يفصل بين راحة التشغيل الآلي وضبط المراجعة البشرية.</p>

<p>الثالثة: مشاركة المهارات بين الأدوات. إعداد <code class="language-plaintext highlighter-rouge">external_dirs</code> في Hermes يسمح لأدوات AI متعددة بمشاركة مجلد المهارات ذاته. تُشغّل ThakiCloud بالفعل أكثر من 1,000 مهارة داخليًا وفق معيار agentskills.io نفسه. ربط Hermes بهذا الدليل المشترك يجعل المهارة المكتوبة في مكان واحد تعمل عبر Claude Code وCursor وHermes. هذا هو تجسيد مبدأ “Thin Harness, Fat Skills” - بناء القدرات في المهارات لا في الـ harness حتى تبقى الأصول قائمة حين يتغير الـ harness.</p>

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

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

<p>أكبر قيد هو أن جودة المخرجات تستلزم في نهاية المطاف مراجعة بشرية. <code class="language-plaintext highlighter-rouge">/learn</code> يضع قاعدة “لا اختراع لأوامر غير موجودة”، لكن النماذج الصغيرة قد تُسيء فهم ما تعلّمته. يُقرّ التوثيق الرسمي بذلك ويوصي بتفعيل <code class="language-plaintext highlighter-rouge">write_approval</code> عند استخدام نماذج أصغر أو في البيئات الحساسة أمنيًا. بعبارة أخرى: <code class="language-plaintext highlighter-rouge">/learn</code> يُلغي تكلفة الكتابة لكنه لا يُلغي تكلفة المراجعة. بل مع سهولة توليد المهارات قد تتراكم مهارات رديئة بسرعة إن غابت بوابة المراجعة وعملية curator.</p>

<p>ثانيًا: مصداقية المصدر تحدد مصداقية المخرج. إذا كانت الوثيقة الخارجية المجلوبة عبر <code class="language-plaintext highlighter-rouge">web_extract</code> غير دقيقة أو قديمة، فالمهارة المبنية فوقها ترث الخطأ ذاته. سهولة “مهارة من رابط URL واحد” تعني أن مسؤولية التحقق من المصدر تنتقل إلى المستخدم.</p>

<p>ثالثًا: الفجوة الواضحة في هذا التحقق هي أن نسخة التثبيت لدينا تسبق <code class="language-plaintext highlighter-rouge">/learn</code> فلم نتمكن من قياس مخرجاته الفعلية. تحققنا من صحة السلوك عبر التوثيق الرسمي والتقارير، لكن مقاييس كجودة المخرج ووقت التأليف ومعدل الامتثال للمعيار لم نلتقطها. سنتولى ذلك بعد تشغيل الإصدار المستودع الرئيسي في ملف تعريف معزول ونوثقه في مقال لاحق.</p>

<p>خلاصة القول: <code class="language-plaintext highlighter-rouge">/learn</code> تصميم يُزيل احتكاك كتابة المهارات ويُحوّل المرحلة المراجعة الطبيعية التي كان الاحتكاك يؤديها نحو بوابات وcurator. من منظور تشغيل منصة وكلاء متعددة المستأجرين، قراءته كتصميم حوكمة لا كميزة راحة أدق وأوفق.</p>

<h2 id="المصادر-sources">المصادر (Sources)</h2>

<ul>
  <li>Hermes Agent official documentation, Skills System: <a href="https://hermes-agent.nousresearch.com/docs/user-guide/features/skills">https://hermes-agent.nousresearch.com/docs/user-guide/features/skills</a></li>
  <li>MarkTechPost, “Nous Research Adds /learn to Hermes Agent’s Skills System” (2026-06-24): <a href="https://www.marktechpost.com/2026/06/24/nous-research-adds-learn-to-hermes-agents-skills-system-capturing-workflows-as-slash-commands-without-hand-writing-skill-md/">https://www.marktechpost.com/2026/06/24/nous-research-adds-learn-to-hermes-agents-skills-system-capturing-workflows-as-slash-commands-without-hand-writing-skill-md/</a></li>
  <li>NousResearch/hermes-agent (GitHub): <a href="https://github.com/NousResearch/hermes-agent">https://github.com/NousResearch/hermes-agent</a></li>
  <li>Original tweet (demo video, tonbistudio): <a href="https://x.com/hjguyhan/status/2070135061429854577">https://x.com/hjguyhan/status/2070135061429854577</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="technique" /><category term="ai-coding" /><category term="hermes-agent" /><category term="agent-skills" /><category term="skill-authoring" /><category term="agentskills-io" /><category term="platform-engineering" /><summary type="html"><![CDATA[أمر /learn الذي أضافه Nous Research إلى Hermes Agent يحوّل أيّ مصدر تشير إليه - دليلًا، أو رابطًا، أو محادثة انتهيت منها للتو، أو ملاحظات لصقتها - إلى مهارة قابلة لإعادة الاستخدام، دون كتابة سطر واحد في SKILL.md. قمنا بتشغيل Hermes المثبّت لدينا مباشرةً لقياس هيكل نظام المهارات، ونوضح آلية عمل /learn وما يعنيه من منظور تشغيل وكلاء متعددي المستأجرين على منصة ThakiCloud للذكاء الاصطناعي/تعلم الآلة المعتمدة على Kubernetes.]]></summary></entry><entry xml:lang="en"><title type="html">AI Agents That Write Papers - Moving Your Writing Workflow to an Open-Source Skill Package</title><link href="https://thakicloud.github.io/en/dev/ai-agent-research-paper-skills/" rel="alternate" type="text/html" title="AI Agents That Write Papers - Moving Your Writing Workflow to an Open-Source Skill Package" /><published>2026-06-26T00:00:00+09:00</published><updated>2026-06-26T00:00:00+09:00</updated><id>https://thakicloud.github.io/en/dev/ai-agent-research-paper-skills</id><content type="html" xml:base="https://thakicloud.github.io/en/dev/ai-agent-research-paper-skills/"><![CDATA[<p>As a paper deadline approaches, researchers repeat the same tasks: polish the introduction, verify that the abstract’s claims and evidence align, and preemptively fix any sentence a reviewer might target. That expertise typically lives inside an advisor’s head or scattered across notes. <a href="https://github.com/Master-cai/Research-Paper-Writing-Skills">Research-Paper-Writing-Skills</a>, a recently trending open-source project on X, packages exactly that expertise into a Skill package that AI coding agents can call directly. The key distinction is that this is not yet another collection of prompts – it is a portable format that plugs the same capability into Codex, Claude Code, and Gemini alike.</p>

<p><img src="/assets/images/ai-agent-research-paper-skills-hero.png" alt="Abstract image of a modular knowledge unit in the center sending three data streams to three different tools" /></p>

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

<p>This project is built on top of <a href="https://github.com/pengsida/learning_research">learning_research</a>, a research primer published by Professor Pengsi Da (pengsida) of Zhejiang University in China. It reframes that paper-writing knowledge as an Agent Skill package. According to the repository description, the package focuses on ML, CV, and NLP paper writing, and was curated and structured specifically for Codex, Claude Code, and Gemini. The contribution is not a copy of the original text – it takes scattered advice, breaks it into work units, and turns each unit into a reusable capability that an agent can invoke.</p>

<p>Why is this format attracting attention now? As AI coding agents have become mainstream, people have started treating not the model itself but “what to ask the model and how” as a durable asset. Well-organized task knowledge, once created, replicates across tools and teams. Tasks with clear procedures and explicit quality criteria – paper writing being a prime example – are a natural fit for this format. ThakiCloud already organizes much of its internal operations around hundreds of Skills, so we read this trend as a structural shift in how agents are run, not a passing fad.</p>

<h2 id="what-is-an-agent-skill">What is an Agent Skill</h2>

<p>An Agent Skill is a package that tells an agent how to perform a specific task. It centers on a <code class="language-plaintext highlighter-rouge">SKILL.md</code> instruction file and optionally includes reference documents, scripts, and templates. It has three defining properties. First, it is version-controlled: stored in a repository and tracked over time, it accumulates as an asset rather than a one-off prompt. Second, it is loaded on demand: instead of stuffing all knowledge into the context every time, only the Skills relevant to the current task are loaded. Third, it is harness-independent: the same Skill can be used in Claude Code, Codex, and Gemini – that is the design goal.</p>

<p>The third property best explains the value of this project. Models keep changing, and CLI tools keep changing. But “how to write a strong introduction” as task knowledge outlasts both by a wide margin. Accumulating capability in the Skill rather than in the tool means that expertise does not have to be rebuilt every time the tool changes. Internally, we call this the “thin harness, fat Skills” principle: keep the model loop, permissions, and file I/O thin; pack domain knowledge, judgment, and failure cases thickly into the Skill.</p>

<p><img src="/assets/images/ai-agent-research-paper-skills-diagram.png" alt="Diagram showing a single portable Skill package containing a SKILL.md instruction file and reference materials, plugged equally into Claude Code, Codex, and Gemini to perform paper-writing tasks" /></p>

<p>The central point of the diagram is that there is exactly one Skill package in the middle. The three tools are not each carrying separate prompts – they share the same task knowledge. That is the fundamental difference from pasting a one-liner prompt into a chat window.</p>

<h2 id="research-paper-writing-skills-in-detail">Research-Paper-Writing-Skills in Detail</h2>

<p>The tasks this package covers map directly to the actual stages of writing a paper. Published usage examples show calling <code class="language-plaintext highlighter-rouge">$research-paper-writing</code> to refine an introduction, or invoking the Skill to rewrite an abstract and verify that claims and evidence are properly paired. Rather than a vague “write this better” request, the design separates the recurring sub-tasks of paper writing into distinct, callable capabilities. This matches the principle that one verb should produce one deliverable.</p>

<p>The multi-harness orientation is also notable. A user can activate the same capability by simply copying the package to the Skill directory recognized by whichever tool they use. This direction is not unique to this project – several recently published open-source efforts, including academic Skill collections centered on Codex and general-purpose AI research Skill libraries, share the same orientation. It is a signal that a simultaneous push is underway to move the entire research workflow into a Skill ecosystem.</p>

<p>One point worth being explicit about: this post is based on the public description and usage examples from the repository. Specific counts such as star ratings, or internal file structures, can change over time and are not stated as fixed facts here. If you are evaluating adoption, check the repository directly along with the license and attribution requirements for the original author’s notes.</p>

<h2 id="installation-and-use">Installation and Use</h2>

<p>The installation model for Agent Skills is generally straightforward. Clone the package and place it in the Skill path recognized by the tool you use; the agent then loads the relevant Skill for each task. The general flow is:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Clone the repository</span>
git clone https://github.com/Master-cai/Research-Paper-Writing-Skills.git

<span class="c"># Copy to the Skill directory of your tool (check each tool's docs for the exact path)</span>
<span class="c"># Example: place under .claude/skills/ in a Claude Code project</span>
<span class="nb">cp</span> <span class="nt">-r</span> Research-Paper-Writing-Skills/&lt;skill-dir&gt; .claude/skills/
</code></pre></div></div>

<p>Once placed, invoke the Skill from an agent session to request work – ask in natural language to refine an introduction draft or check whether the abstract’s claims and evidence are consistent, and the procedures and criteria embedded in the Skill are applied. Because the Skill path and invocation convention differ slightly by tool, follow each tool’s documentation for the actual placement path. The key point is that a Skill placed once is reused across all sessions in that tool. The overhead of copying the same prompt repeatedly disappears.</p>

<h2 id="applying-it-on-the-thakicloud-k8s-aiml-saas-platform">Applying It on the ThakiCloud K8s AI/ML SaaS Platform</h2>

<p>ThakiCloud’s AI platform runs agents and batch workloads for diverse customers on top of Kubernetes. Our internal operations are already organized around Skills, so the format this project demonstrates is familiar. What matters more is that the same pattern is spreading rapidly in the broader community.</p>

<p>First, there is direct value for data scientists and researchers. Teams working on the platform write papers and technical reports regularly. Attaching proven paper-writing Skills to the standard internal toolchain lets teams apply consistent standards to error-prone areas such as introduction structure and abstract claim-evidence alignment – raising average quality without upgrading the model tier.</p>

<p>Second, harness independence pairs well with multi-tenant operations. Different customers may prefer different agent environments, but encapsulating capability in a Skill allows the same task knowledge to be reused regardless of environment. Capability is not locked to any one vendor’s tool, which makes it straightforward to port the same asset into on-premises deployments where customers have strong self-hosting requirements. That aligns with our strategy around self-hosting and cost efficiency.</p>

<p>Third, this project reinforces the lesson that Skills need to be managed as operational assets with discipline. A Skill carries a per-session context cost from the moment it is indexed. We therefore apply a question to every new Skill: “would the agent make a mistake without this?” We also document failure cases explicitly. Applying the same gate to externally sourced Skills prevents a growing Skill library from degrading retrieval accuracy – a real risk when the corpus exceeds what a retriever can distinguish cleanly.</p>

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

<p>This approach has clear weaknesses. First, there are no published objective metrics for the quality of text the package produces. Paper writing is inherently a judgment-intensive task, and whether the Skill-generated draft meets a human reader’s standard ultimately requires human review. That is why this post includes no performance figures – fabricating numbers without empirical measurement is exactly what should be avoided.</p>

<p>Second, there is the question of provenance and derivative works. This package is a repackaging of someone else’s public notes. Even though the original author is credited, organizations adopting it bear the responsibility to verify the license terms and the scope of required attribution themselves – more so when embedding it in internal standards.</p>

<p>Third, writing assistance does not replace thinking. A strong introduction comes from strong research. A Skill helps with expression and checking; it cannot transform thin results into a substantive paper. Distinguishing clearly between what the tool can supply and what the researcher must own is the prerequisite for using this format in a healthy way.</p>

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

<ul>
  <li>Research-Paper-Writing-Skills: <a href="https://github.com/Master-cai/Research-Paper-Writing-Skills">https://github.com/Master-cai/Research-Paper-Writing-Skills</a></li>
  <li>Original research primer learning_research (pengsida): <a href="https://github.com/pengsida/learning_research">https://github.com/pengsida/learning_research</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="ai-agent" /><category term="agent-skills" /><category term="claude-code" /><category term="paper-writing" /><category term="llm" /><summary type="html"><![CDATA[An open-source project bundles a professor's paper-writing expertise into a Skill package that works across Codex, Claude Code, and Gemini. We examine how it differs from a plain prompt collection, why the Agent Skill format matters, and what this trend signals for ThakiCloud -- an organization running an agent platform with hundreds of Skills.]]></summary></entry><entry xml:lang="en"><title type="html">NVIDIA GLM-5.2-NVFP4: Serving a 753B Frontier MoE in 4-bit</title><link href="https://thakicloud.github.io/en/llmops/nvidia-glm-5-2-nvfp4/" rel="alternate" type="text/html" title="NVIDIA GLM-5.2-NVFP4: Serving a 753B Frontier MoE in 4-bit" /><published>2026-06-26T00:00:00+09:00</published><updated>2026-06-26T00:00:00+09:00</updated><id>https://thakicloud.github.io/en/llmops/nvidia-glm-5-2-nvfp4</id><content type="html" xml:base="https://thakicloud.github.io/en/llmops/nvidia-glm-5-2-nvfp4/"><![CDATA[<p><img src="/assets/images/nvidia-glm-5-2-nvfp4-hero.png" alt="Abstract image of a 16-bit neural lattice condensing into a compact 4-bit core" />
<em>A visual concept of 16-bit weights condensing into 4-bit.</em></p>

<p>For any team trying to serve a frontier-grade reasoning model on its own infrastructure, the first wall is GPU memory. Loading 753B parameters in 16-bit demands close to 1.5TB, which means multiple GPU nodes. Released on Hugging Face on June 25, 2026, <code class="language-plaintext highlighter-rouge">nvidia/GLM-5.2-NVFP4</code> quantizes ZAI’s (zai-org) GLM-5.2 to 4-bit in an attempt to lower that wall.</p>

<p>This is not an introduction to GLM-5.2 itself. How the model’s reasoning-token length reshapes the self-hosting cost math is covered in the <a href="https://thakicloud.github.io/en/llmops/glm-5-2-reasoning-token-economics/">reasoning-token economics post</a>, and 1-bit GGUF quantization for consumer hardware in the <a href="https://thakicloud.github.io/en/llmops/unsloth-glm-5-2-1bit-gguf/">Unsloth GGUF post</a>. This post looks at the data-center track: what structure NVIDIA’s official NVFP4 quantization chose, on what hardware it serves, and what it means for an operator running multi-tenant serving.</p>

<p>Every accuracy figure here is an official measurement published in NVIDIA’s model card. The 753B model is Blackwell-only and requires 8-way tensor parallelism, so we could not reproduce it in ThakiCloud’s development environment. This post is therefore an analysis grounded in public material — we did not invent any reproduction numbers. Figures that vary across sources are marked <code class="language-plaintext highlighter-rouge">[est.]</code>.</p>

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

<p><code class="language-plaintext highlighter-rouge">nvidia/GLM-5.2-NVFP4</code> is a version of ZAI’s <code class="language-plaintext highlighter-rouge">zai-org/GLM-5.2</code> quantized with NVIDIA Model Optimizer (ModelOpt). The base model is a Mixture-of-Experts (MoE) architecture for reasoning and coding, with 753B total parameters of which only 40B are activated per token. Its network architecture is <code class="language-plaintext highlighter-rouge">GlmMoeDsaForCausalLM</code>, using sparse attention with an IndexShare indexer to support context up to 1M tokens. The license is MIT, the same as the base model, allowing both commercial and non-commercial use.</p>

<p>The crux in one sentence: <strong>MoE reduces compute, selective NVFP4 quantization reduces memory, and the accuracy-sensitive parts are deliberately left out of quantization.</strong> Thanks to the MoE structure, even at 753B the per-token compute is limited to the 40B active experts. NVFP4 then drops the routed-expert weights — which make up the bulk of the memory footprint — from 16-bit to 4-bit, while leaving the shared expert un-quantized in BF16 to minimize accuracy loss.</p>

<p>The timing matters. A strong open-weight model shipping under MIT lines up with NVIDIA re-releasing that model, optimized for its own hardware, in a directly servable form. For organizations weighing model sovereignty, this is not an abstract policy issue but an immediate architecture choice: which GPU runs what, and how.</p>

<h2 id="what-the-model-is">What the model is</h2>

<p>GLM-5.2 is a MoE reasoning-and-coding model from ZAI. Unlike a typical dense model, it places multiple expert networks inside each transformer block and activates only a subset per input token. GLM-5.2 holds 753B total parameters, but only 40B actually participate in generating a given token. Its “knowledge capacity” is in the 753B class, while its inference compute is closer to a 40B dense model.</p>

<p>On top of that, GLM-5.2 uses sparse attention with an IndexShare indexer. The design supports a 1M-token context while avoiding the cost of full attention that compares every token pair. The model card labels this architecture <code class="language-plaintext highlighter-rouge">glm_moe_dsa</code> and requires <code class="language-plaintext highlighter-rouge">transformers&gt;=5.3.0</code> to run. These two layers of sparsity — MoE sparsity and attention sparsity — combine to deliver frontier-grade reasoning at relatively economical compute, which is GLM-5.2’s starting point.</p>

<p>NVFP4 is a 4-bit floating-point data type defined by NVIDIA. The key is that it is floating point, not 4-bit integer. Concretely, it packs small floating-point (E2M1) values in blocks of 16 and attaches an FP8 (E4M3) scale per block — block-wise two-level scaling. Because each block tracks its own dynamic range, it preserves the tails of the distribution far better than plain integer quantization. NVIDIA states clearly in the model card that this is not a model it trained from scratch but a quantized version of a third-party model, produced with the open-source NVIDIA Model Optimizer.</p>

<h2 id="the-key-is-selective-quantization">The key is “selective” quantization</h2>

<p><img src="/assets/images/nvidia-glm-5-2-nvfp4-diagram.png" alt="Diagram of the GLM-5.2-NVFP4 selective quantization strategy and serving path" />
<em>Only the linear operators of the routed MoE experts are quantized to NVFP4; the shared expert and attention remain in BF16.</em></p>

<p>The most important design decision in this model is “what was NOT quantized.” Quoting the model card directly: “Only the weights and activations of the linear operators within transformer blocks in MoE experts are quantized. The shared expert is not quantized.” In summary:</p>

<ul>
  <li><strong>Quantized to NVFP4 (4-bit)</strong>: the weights and activations of the routed MoE experts’ linear operators. Since this is where most of the 753B parameters live, nearly all of the memory savings come from here.</li>
  <li><strong>Preserved in BF16 (16-bit)</strong>: the shared expert and the IndexShare sparse-attention path. These are traversed by every token, so they have a large impact on accuracy.</li>
</ul>

<p>The strategy is reasonable because of how MoE parameters are distributed. Routed experts are numerous and dominate the total parameter count, yet each token uses only a few of them. The shared expert and attention, by contrast, hold a smaller share of parameters but are traversed by every token. So “aggressively 4-bit where there is a lot that is sparsely used, precisely 16-bit where there is little but it is always used” is a sound trade-off that captures both memory and accuracy. The selective quantization is the root cause of the accuracy table staying nearly loss-free.</p>

<p>Calibration used NVIDIA’s Nemotron-family datasets. The model card names Nemotron-SFT-Instruction-Following-Chat-v2, Nemotron-Science-v1, Nemotron-Competitive-Programming-v1, Nemotron-SFT-Agentic-v2, Nemotron-Math-v2, Nemotron-SFT-SWE-v2, and Nemotron-SFT-Multilingual-v1 as calibration data. The mix spans reasoning, science, coding, agentic, math, and multilingual, aligned with the nature of the evaluation benchmarks.</p>

<h2 id="published-benchmarks-accuracy-vs-fp8">Published benchmarks: accuracy vs FP8</h2>

<p><img src="/assets/images/nvidia-glm-5-2-nvfp4-results.png" alt="Bar chart comparing the FP8 baseline and NVFP4 benchmark scores" />
<em>Public measurements from the nvidia/GLM-5.2-NVFP4 model card. The baseline is GLM-5.2-FP8.</em></p>

<p>The accuracy comparison NVIDIA published in the model card is below. Notably, the baseline is not BF16 but the already-compressed <code class="language-plaintext highlighter-rouge">GLM-5.2-FP8</code>. In other words, this is the harder question of “how much does 4-bit lose relative to a model already reduced to 8-bit,” rather than “relative to the uncompressed original.”</p>

<table>
  <thead>
    <tr>
      <th>Benchmark</th>
      <th>baseline (FP8)</th>
      <th>NVFP4</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>GPQA Diamond</td>
      <td>89.52</td>
      <td>89.39</td>
    </tr>
    <tr>
      <td>SciCode</td>
      <td>49.85</td>
      <td>49.04</td>
    </tr>
    <tr>
      <td>IFBench</td>
      <td>74.95</td>
      <td>75.81</td>
    </tr>
    <tr>
      <td>AA-LCR</td>
      <td>69.38</td>
      <td>70.13</td>
    </tr>
    <tr>
      <td>τ²-Bench Telecom</td>
      <td>97.9</td>
      <td>98.25</td>
    </tr>
  </tbody>
</table>

<p>Measurement settings were temperature 1.0, top_p 0.95, with max_new_tokens 100000 for GPQA Diamond and 64000 for the rest. AA-LCR was measured with SGLang; the others with vLLM. The five benchmarks evaluate graduate-level scientific reasoning (GPQA Diamond, 448 questions), scientific coding (SciCode), instruction following (IFBench), long-context recall (AA-LCR), and agentic tool use (τ²-Bench Telecom), respectively.</p>

<p>GPQA (−0.13) and SciCode (−0.81) dropped slightly, while IFBench (+0.86), AA-LCR (+0.75), and τ²-Bench Telecom (+0.35) were actually higher under NVFP4. 4-bit beating 8-bit may seem counterintuitive, but differences of this magnitude are safer read as sampling-variance noise than as quantization loss. The core message is that “compressing FP8 one more step to 4-bit keeps accuracy essentially flat,” which is a direct result of the selective quantization strategy described above.</p>

<h2 id="deployment-vllm-and-sglang">Deployment: vLLM and SGLang</h2>

<p>This checkpoint officially supports the SGLang and vLLM runtimes, requires NVIDIA Blackwell hardware, and runs on Linux. Because NVFP4 tensor cores exist only in the Blackwell generation, the inability to use this 4-bit path directly on earlier GPUs is an important constraint. The SGLang serving command the model card provides is:</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip <span class="nb">install</span> <span class="nt">-U</span> <span class="s2">"transformers&gt;=5.3.0"</span> <span class="o">&amp;&amp;</span> <span class="se">\</span>
python3 <span class="nt">-m</span> sglang.launch_server <span class="se">\</span>
    <span class="nt">--model</span> nvidia/GLM-5.2-NVFP4 <span class="se">\</span>
    <span class="nt">--tensor-parallel-size</span> 8 <span class="se">\</span>
    <span class="nt">--quantization</span> modelopt_fp4 <span class="se">\</span>
    <span class="nt">--tool-call-parser</span> glm47 <span class="se">\</span>
    <span class="nt">--reasoning-parser</span> glm45 <span class="se">\</span>
    <span class="nt">--trust-remote-code</span> <span class="se">\</span>
    <span class="nt">--chunked-prefill-size</span> 131072 <span class="se">\</span>
    <span class="nt">--mem-fraction-static</span> 0.80
</code></pre></div></div>

<p>A few signals to read here. <code class="language-plaintext highlighter-rouge">--tensor-parallel-size 8</code> means the model assumes a node of 8 GPUs, not a single one. <code class="language-plaintext highlighter-rouge">--quantization modelopt_fp4</code> tells the runtime to recognize the NVFP4 format that ModelOpt produced. <code class="language-plaintext highlighter-rouge">--chunked-prefill-size 131072</code> chunks the prefill when handling the 1M context to prevent memory spikes, a value that governs stability in long-context serving. <code class="language-plaintext highlighter-rouge">--tool-call-parser glm47</code> and <code class="language-plaintext highlighter-rouge">--reasoning-parser glm45</code> parse the GLM-family tool-call and reasoning-token formats, which connect directly to agentic workloads.</p>

<p>On memory, a rough estimate: serving 753B in BF16 needs about 1.5TB [est.]. Since routed experts dominate the parameter count and are dropped to 4-bit, the actual weight memory falls to roughly one-third, landing in a range loadable on a single 8-way tensor-parallel node (community NVFP4 mirrors report about 1.37TB → 459GB, roughly 3× [est.]). Because the model card does not state the exact GB before and after quantization, this memory figure carries an <code class="language-plaintext highlighter-rouge">[est.]</code> mark. What is unambiguous is that the <code class="language-plaintext highlighter-rouge">--tensor-parallel-size 8</code> command itself indicates that “8 Blackwell GPUs can serve a 753B reasoning model with a 1M context.”</p>

<h2 id="applying-it-to-thakiclouds-k8s-aiml-saas-platform">Applying it to ThakiCloud’s K8s AI/ML SaaS platform</h2>

<p>ThakiCloud runs a multi-tenant platform that schedules GPUs with Kueue on K8s and serves models with vLLM. In this environment, a pre-quantized frontier checkpoint like <code class="language-plaintext highlighter-rouge">nvidia/GLM-5.2-NVFP4</code> matters in three ways.</p>

<p>First, <strong>the pool of serving candidates widens.</strong> A 753B-class reasoning model is usually dropped early from self-hosting consideration, but if 4-bit quantization fits the weights plus KV headroom onto a single 8-GPU Blackwell node, on-premise self-serving becomes a realistic option. Using Kueue’s ResourceFlavor and ClusterQueue to carve out a Blackwell node pool dedicated to NVFP4 inference, the memory headroom won through quantization translates directly into the number of tenants served concurrently. For customers who cannot send data out to external APIs — especially public-sector and finance where self-hosting and data sovereignty are required — keeping frontier reasoning in-house is itself a competitive edge.</p>

<p>Second, <strong>you don’t have to run the quantization pipeline yourself.</strong> Calibrating and quantizing 753B with ModelOpt demands significant GPU time and engineering. If we can take an NVIDIA-validated checkpoint and put it straight onto vLLM/SGLang, we can focus resources on multi-tenant routing, autoscaling, and cost observability rather than quantization validation. That said, ThakiCloud’s skill system already has an in-house workflow that quantizes the Qwen3-MoE family to NVFP4, so the recipe NVIDIA applied to GLM-5.2 — “experts to 4-bit, shared expert and attention in BF16” — becomes a general pattern we can borrow directly when quantizing customer domain models ourselves.</p>

<p>Third, <strong>selective quantization is worth folding into our model-adoption criteria.</strong> The principle this model demonstrated — “aggressive where there is a lot that is sparse, conservative where it is always used” — applies as-is when we quantize other MoE models in-house. Rather than simply crushing the whole thing to 4-bit, whether the shared expert and attention are preserved can become a checklist item in our model-adoption gate. The Blackwell-only constraint, however, is tied directly to our GPU pool composition, so the adoption roadmap must state that using the NVFP4 path presupposes securing Blackwell nodes.</p>

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

<p>The biggest limitation is <strong>hardware dependency.</strong> The NVFP4 4-bit path presupposes Blackwell tensor cores, so environments with only earlier generations (Hopper H100/H200) cannot realize this checkpoint’s benefits as-is. The narrative that “4-bit makes it cheap” holds only when Blackwell nodes are already secured or planned, and indeed presupposes new capital expenditure.</p>

<p>Second, <strong>the scope of the benchmarks.</strong> The model card’s accuracy table is limited to five benchmarks, all close to English-language reasoning, coding, and agentic tasks. Real-world multilingual quality including Korean, and recall stability when the 1M context is filled to the brim, cannot be concluded from the public table alone. A separate evaluation on our own domain data — measuring regression against BF16/FP8 — is essential before adoption.</p>

<p>Third, <strong>the uncertainty of the memory figures.</strong> As noted, the model card does not publish exact memory GB before and after quantization. The memory estimate in this post is back-calculated from parameter counts and the quantization scope, so in actual deployment, adding the KV cache and 1M prefill buffers makes the effective per-node memory larger than the weights-only estimate. Operational planning must be based on peak memory, not weight memory.</p>

<p>Fourth, <strong>the two sides of selective quantization.</strong> Leaving the shared expert and attention in BF16 protected accuracy, but it also makes the memory saving smaller than “everything in 4-bit.” That is, this model chose “compression that protects accuracy,” not “maximum compression.” For an extreme cost environment aiming to fit it on a single workstation GPU, a more aggressive 1-bit GGUF trade-off fits better (at lower quality).</p>

<p>In summary, <code class="language-plaintext highlighter-rouge">nvidia/GLM-5.2-NVFP4</code> is a case of pulling a frontier-grade 753B MoE reasoning model down to 4-bit with no accuracy loss, making self-serving on a Blackwell 8-GPU node a realistic option. From ThakiCloud’s perspective, it adds one more card for offering frontier reasoning to customers with on-premise and data-sovereignty requirements, and an occasion to fold the general principle of “selective quantization” into our model-adoption criteria. That door, however, opens only with a Blackwell key.</p>

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

<ul>
  <li><a href="https://huggingface.co/nvidia/GLM-5.2-NVFP4">nvidia/GLM-5.2-NVFP4 · Hugging Face</a></li>
  <li><a href="https://huggingface.co/zai-org/GLM-5.2">Base model GLM-5.2 (ZAI) · Hugging Face</a></li>
  <li><a href="https://github.com/NVIDIA/Model-Optimizer">NVIDIA Model Optimizer · GitHub</a></li>
  <li><a href="https://huggingface.co/collections/nvidia/inference-optimized-checkpoints-with-model-optimizer">Inference-Optimized Checkpoints with Model Optimizer (collection) · Hugging Face</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="nvfp4" /><category term="quantization" /><category term="vllm" /><category term="sglang" /><category term="glm" /><category term="moe" /><category term="inference-optimization" /><category term="model-optimizer" /><summary type="html"><![CDATA[NVIDIA quantized ZAI's 753B MoE reasoning model GLM-5.2 to NVFP4 (4-bit) and published it on Hugging Face. Instead of crushing every weight to 4-bit, only the linear operators of the routed MoE experts are quantized, while the shared expert and attention stay in BF16 — selective quantization that holds accuracy nearly flat against an FP8 baseline. We cover the quantization strategy, the published benchmarks, and the vLLM/SGLang deployment commands from ThakiCloud's K8s multi-tenant serving perspective.]]></summary></entry><entry xml:lang="en"><title type="html">Agent Memory Is Now a Data System: A Data-Management Lens on Agent-Native Memory</title><link href="https://thakicloud.github.io/en/research/agent-native-memory-system/" rel="alternate" type="text/html" title="Agent Memory Is Now a Data System: A Data-Management Lens on Agent-Native Memory" /><published>2026-06-26T00:00:00+09:00</published><updated>2026-06-26T00:00:00+09:00</updated><id>https://thakicloud.github.io/en/research/agent-native-memory-system</id><content type="html" xml:base="https://thakicloud.github.io/en/research/agent-native-memory-system/"><![CDATA[<p><img src="/assets/images/agent-native-memory-system-hero.png" alt="Abstract image of layered data flowing through a lattice of neural networks and databases, with memory cells forming and dissolving" /></p>

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

<p>Anyone who has run LLM agents for any length of time will have hit the same wall. Agents handle one-shot question-answering well, but the moment you span tasks across days or context across multiple sessions, the agent forgets what it has done. That is where “agent memory” entered the picture, and at first it was little more than a RAG variant: store conversations in a vector store, retrieve on demand.</p>

<p>The arXiv paper <a href="https://arxiv.org/abs/2606.24775">Are We Ready For An Agent-Native Memory System?</a>, published on June 23, 2026, reframes this entire trajectory in a single observation. Agent memory is no longer a retrieval-augmentation device; it has evolved into a <strong>full data-management system responsible for persistent storage, retrieval, updating, consolidation, and dynamic lifecycle management</strong>. This is the paper dair_ai summarized as “Agent memory is a data system now.”</p>

<p>The reframing matters because for a platform like ThakiCloud, which actually runs multi-tenant agents on Kubernetes, the moment memory becomes a “system to operate” rather than a “feature to enable,” cost, robustness, and architectural choices all follow. This post summarizes the core claims from the official abstract and the <a href="https://github.com/OpenDataBox/MemoryData">public code</a>, and draws out what is actionable from the perspective of our platform.</p>

<blockquote>
  <p>📄 <strong>Full deep review (DOCX)</strong>: <a href="https://drive.google.com/file/d/1wLivKobOMtAKQ1zwCmG-O8wdebyZRbcz/view">Download the detailed peer review on Google Drive</a>.</p>
</blockquote>

<h2 id="what-this-research-does">What This Research Does</h2>

<p>The problem the paper identifies is simple but pointed. Most existing methods for evaluating agent memory stop at <strong>end-to-end task success metrics</strong>. Scores like F1 or BLEU answer the question “did it answer the question well?” while treating the memory system that produced the answer as a complete black box.</p>

<p>That framing hides exactly what an operator needs to know: how much <strong>operational cost</strong> does maintaining memory incur, what are the <strong>architectural trade-offs</strong> across different module combinations, and how robust is the system when knowledge keeps changing? A single aggregate score answers none of these.</p>

<p>The authors (Wei Zhou, Xuanhe Zhou, Guoliang Li, Zhiyu Li, Feiyu Xiong, and others, notably including database-systems researchers, which explains the paper’s character) therefore study memory systematically from a <strong>data-management perspective</strong>. The core of that study is an analytical framework that decomposes agent memory into four modules.</p>

<p><img src="/assets/images/agent-native-memory-system-diagram.png" alt="Architecture diagram showing the four memory modules surrounding agent execution: Representation &amp; Storage, Extraction, Retrieval &amp; Routing, and Maintenance, with write, read, and consolidation flows" /></p>

<p>The four modules are as follows.</p>

<ol>
  <li><strong>Representation &amp; Storage</strong>: How memory is encoded and where it is kept. The choice among vectors, graphs, trees, plain text, and other representations directly determines <strong>representation fidelity</strong>.</li>
  <li><strong>Extraction</strong>: The step of selecting what to commit to memory from the agent’s execution trace. Not every token can be stored, so this stage separates signal from noise.</li>
  <li><strong>Retrieval &amp; Routing</strong>: Finding the right memory at the right moment and returning it through the appropriate path. The metric here is <strong>retrieval precision</strong>.</li>
  <li><strong>Maintenance</strong>: Consolidating, updating, and pruning stale memories. <strong>Update correctness</strong> and <strong>long-horizon stability</strong> are determined here.</li>
</ol>

<p>Anyone familiar with databases will recognize the correspondence: Representation &amp; Storage maps to the storage engine, Extraction to the ingest pipeline, Retrieval &amp; Routing to the query planner, and Maintenance to compaction and garbage collection. That mapping is precisely why the authors call their lens a “data-management perspective.”</p>

<h2 id="core-findings">Core Findings</h2>

<p>On this framework, the paper evaluates <strong>12 representative memory systems and 2 reference baselines</strong> across <strong>5 benchmark workloads and 11 datasets</strong>. The weight of the contribution lies in measuring multiple systems against a common yardstick rather than optimizing a single model on a single dataset. Three conclusions can be drawn directly from the abstract.</p>

<p><strong>First, there is no single architecture that dominates all settings.</strong> The answer to “which memory structure is best?” is “it depends.” More precisely, effectiveness is determined by how well a memory structure aligns with the <strong>workload bottleneck</strong>. The structure that is optimal for a retrieval-bottlenecked workload differs from the one that suits an update-bottlenecked workload. This is a direct rebuttal of simple prescriptions like “graph memory is always best” or “a vector store is sufficient.”</p>

<p><strong>Second, decomposing at the module level separates accountability.</strong> The authors use granular ablation experiments to quantify each module’s individual contribution to representation fidelity, retrieval precision, update correctness, and long-horizon stability. This reveals what end-to-end scores collapse together: “which module breaks what.” From an operational standpoint, that is the real value. You can only fix a wrong answer if you can tell whether the failure was in the Extraction stage or the Retrieval stage.</p>

<p><strong>Third, cost-performance trade-offs in Maintenance are clear.</strong> On realistic workloads, the paper finds that <strong>localized maintenance is more cost-efficient than global reorganization</strong>. Touching only what has changed costs less than periodically rebuilding the entire memory. This is the same intuition as incremental database compaction being cheaper than a full rebuild, and for cost-sensitive production deployments, this single finding can change architectural decisions.</p>

<p>In summary, the paper is less a prescription for “how to build better agent memory” and more a framework for <strong>“how to measure and compare agent memory as a system.”</strong> On that framework it shows there is no single right answer, but that workload alignment and maintenance cost are the real levers.</p>

<h2 id="implications-for-the-thakicloud-k8s-aiml-saas-platform">Implications for the ThakiCloud K8s AI/ML SaaS Platform</h2>

<p>ThakiCloud’s AI platform runs multi-tenant agents across diverse customer environments on Kubernetes. Several points from this paper land directly on our platform.</p>

<p><strong>Treating memory as a per-tenant data system.</strong> If agent memory is a data-management system, it follows that every tenant incurs distinct storage costs, retrieval latency, and update load as separate operational concerns. In a multi-tenant setting, ensuring that one tenant’s memory maintenance does not consume another tenant’s GPU or I/O is a problem of the same kind as isolating GPU workloads with Kueue. Memory must be treated not as a “feature” but as a “workload with a resource budget.”</p>

<p><strong>Designing for pluggable rather than fixed memory architectures.</strong> The conclusion that no single architecture dominates implies that a platform should provide <strong>abstractions that allow memory structures to be swapped or composed by workload</strong>, rather than hard-coding a single memory backend. Depending on whether a customer’s agent is long-session conversational or rapid-knowledge-update oriented, the platform should support switching between retrieval-centric and maintenance-centric structures. The four-module decomposition provides natural boundaries for exactly that kind of pluggable abstraction.</p>

<p><strong>An asset for on-premise and cost-sensitive deployments.</strong> The finding that localized maintenance is cheaper than global reorganization is especially relevant for customers who self-host on-premise. It provides a design principle for controlling memory-maintenance costs within a finite in-house GPU and storage budget, without depending on an externally managed memory service. For customer environments where regulations or data-sovereignty requirements preclude external API calls, the ability to say “memory maintenance costs are predictable and contained inside your own cluster” is a direct sales point.</p>

<p>Two concrete actions are available to us now. One is to use the 4-module decomposition and workload taxonomy from the public <a href="https://github.com/OpenDataBox/MemoryData">MemoryData code</a> as a starting point for instrumenting tenant memory, observing it via per-module metrics (representation fidelity, retrieval precision, update correctness, long-horizon stability) rather than end-to-end scores. The other is to set the default maintenance policy to localized updates rather than global reorganization, baking a cost ceiling into the design from the start.</p>

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

<p>For balance, there are points to note before accepting the findings wholesale.</p>

<p>First, this paper is a <strong>measurement study, not a proposal for a new memory system.</strong> Readers expecting a blueprint for building better memory will be disappointed. What is offered is a comparative framework and diagnosis; “promising directions toward agent-native memory” are indicated, but implementation is left as future work.</p>

<p>Second, <strong>generalization limits of the benchmark.</strong> 5 workloads and 11 datasets is not trivial, but the domain space actual agents encounter is far broader. The conclusion that “optimal architecture varies by workload bottleneck” is also, somewhat paradoxically, a warning that if our customers’ real workloads differ from the benchmark distribution, the paper’s rankings may not transfer directly. Measurement in each deployment environment will still be necessary.</p>

<p>Third, <strong>potential perspective bias from the author composition.</strong> The database-systems research background makes the framing of “memory as data management” strong, but cognitive-science and reinforcement-learning perspectives on memory (episodic memory, policy-learned memory management, etc.) may receive comparatively less attention. Data management is a powerful lens, but not the only one.</p>

<p>Even so, the core message, “measure agent memory as a system,” is a hard-to-refute starting point for a platform that actually has to operate memory. The moment you start looking at memory through modules and costs rather than scores, what can be fixed becomes visible.</p>

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

<ul>
  <li>Paper: <a href="https://arxiv.org/abs/2606.24775">Are We Ready For An Agent-Native Memory System? (arXiv 2606.24775)</a></li>
  <li>HF Papers: <a href="https://hf.co/papers/2606.24775">hf.co/papers/2606.24775</a></li>
  <li>Public code: <a href="https://github.com/OpenDataBox/MemoryData">github.com/OpenDataBox/MemoryData</a></li>
  <li>Original tweet context: dair_ai, “Agent memory is a data system now”</li>
</ul>

<blockquote>
  <p>📄 <strong>Full deep review (DOCX)</strong>: <a href="https://drive.google.com/file/d/1wLivKobOMtAKQ1zwCmG-O8wdebyZRbcz/view">Download the detailed peer review on Google Drive</a>.</p>
</blockquote>]]></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="agent-memory" /><category term="llm-agent" /><category term="data-management" /><category term="long-term-memory" /><category term="retrieval" /><category term="benchmark" /><category term="on-premise" /><summary type="html"><![CDATA[arXiv 2606.24775 'Are We Ready For An Agent-Native Memory System?' treats LLM agent memory not as RAG but as a full data-management system, decomposing 12 memory systems into 4 modules and measuring each. Based on the official abstract and public code, we summarize the core claims and their implications for the ThakiCloud platform.]]></summary></entry><entry xml:lang="en"><title type="html">Stop Hand-Writing SKILL.md: A Deep Dive into Hermes Agent’s /learn Command</title><link href="https://thakicloud.github.io/en/technique/hermes-agent-learn-skills/" rel="alternate" type="text/html" title="Stop Hand-Writing SKILL.md: A Deep Dive into Hermes Agent’s /learn Command" /><published>2026-06-26T00:00:00+09:00</published><updated>2026-06-26T00:00:00+09:00</updated><id>https://thakicloud.github.io/en/technique/hermes-agent-learn-skills</id><content type="html" xml:base="https://thakicloud.github.io/en/technique/hermes-agent-learn-skills/"><![CDATA[<p><img src="/assets/images/hermes-agent-learn-skills-hero.png" alt="Skill authoring process depicted as scattered document fragments converging into a single structured crystal" />
<em>The concept of /learn expressed as scattered knowledge fragments from multiple directions crystallizing into a single structured output.</em></p>

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

<p>The most common way to teach an agent a new capability has been to write a skill file by hand. A skill is ultimately just one Markdown document, but authoring it from scratch while respecting the required frontmatter and section order takes more effort than it sounds. That friction is especially real for things that live in your head but are tedious to write down - internal API usage, deployment runbooks, and repetitive procedures.</p>

<p>The <code class="language-plaintext highlighter-rouge">/learn</code> command that Nous Research added to its Hermes Agent framework on June 24, 2026, eliminates the hand-authoring step entirely. Point it at a directory, a URL, a conversation you just finished, or a pasted note, and the live agent collects the material directly using its own tools and authors a standard-compliant <code class="language-plaintext highlighter-rouge">SKILL.md</code>. The demo video shared on X by tonbistudio - showing multiple sources being combined into a skill - sparked a lot of attention, and since ThakiCloud already had Hermes Agent installed internally, we decided to verify it firsthand.</p>

<p>ThakiCloud runs multi-tenant agents on a Kubernetes-based AI/ML SaaS platform. The idea of an agent building its own procedural memory in a form that humans can gate and review maps directly onto the principle we call Thin Harness, Fat Skills: capabilities belong in skills, not in the harness. <code class="language-plaintext highlighter-rouge">/learn</code> lowers the barrier to creating those skills, which makes it more than a convenience feature.</p>

<h2 id="what-this-technology-is">What This Technology Is</h2>

<p><code class="language-plaintext highlighter-rouge">/learn</code> is not a separate ingestion engine. The key insight is that it constructs a standard-guided prompt and hands it to the agent as an ordinary single turn. Source collection therefore uses the tools the agent already has. Local directories are read with <code class="language-plaintext highlighter-rouge">read_file</code> and <code class="language-plaintext highlighter-rouge">search_files</code>; online documentation is fetched with <code class="language-plaintext highlighter-rouge">web_extract</code>; workflows carried out together in the current conversation are captured directly from conversation context.</p>

<p><img src="/assets/images/hermes-agent-learn-skills-diagram.png" alt="The full /learn path: from source description through agent tool collection, standard SKILL.md authoring, the write_approval gate, and curator" />
<em>The complete /learn path: starting from a source description, collecting via agent tools, authoring a standard SKILL.md, and passing through the write_approval gate and curator.</em></p>

<p>Four source types are accepted. The following examples are taken verbatim from the official documentation:</p>

<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code># Local SDK or documentation directory (read via read_file / search_files)
/learn the REST client in ~/projects/acme-sdk, focus on auth + pagination

# Online documentation page (fetched via web_extract)
/learn https://docs.example.com/api/quickstart

# A workflow you just completed with the agent in this conversation
/learn how I just deployed the staging server

# A pasted note or verbally described procedure
/learn filing an expense: open the portal, New &gt; Expense, attach the receipt, submit
</code></pre></div></div>

<p>The agent organizes the collected material according to the “house authoring standard”: descriptions capped at 60 characters, a fixed section order, framing based on Hermes tools, and a rule against inventing commands that do not exist. The resulting <code class="language-plaintext highlighter-rouge">SKILL.md</code> consists of YAML frontmatter and fixed body sections:</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">name</span><span class="pi">:</span> <span class="s">my-skill</span>
<span class="na">description</span><span class="pi">:</span> <span class="s">Brief description of what this skill does</span>
<span class="na">version</span><span class="pi">:</span> <span class="s">1.0.0</span>
<span class="na">platforms</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">macos</span><span class="pi">,</span> <span class="nv">linux</span><span class="pi">]</span>
<span class="na">metadata</span><span class="pi">:</span>
  <span class="na">hermes</span><span class="pi">:</span>
    <span class="na">tags</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">python</span><span class="pi">,</span> <span class="nv">automation</span><span class="pi">]</span>
    <span class="na">category</span><span class="pi">:</span> <span class="s">devops</span>
<span class="nn">---</span>

<span class="c1"># Skill Title</span>

<span class="c1">## When to Use</span>
<span class="s">Conditions that trigger this skill.</span>

<span class="c1">## Procedure</span>
<span class="s">1. First step</span>
<span class="s">2. Second step</span>

<span class="c1">## Pitfalls</span>
<span class="pi">-</span> <span class="s">Known failure modes and solutions</span>

<span class="c1">## Verification</span>
<span class="s">How to confirm the skill is working.</span>
</code></pre></div></div>

<p>Storage is handled by the <code class="language-plaintext highlighter-rouge">skill_manage</code> tool. One important safety mechanism is attached here. When <code class="language-plaintext highlighter-rouge">skills.write_approval</code> is enabled, every skill write by the agent is staged to <code class="language-plaintext highlighter-rouge">~/.hermes/pending/skills/</code> instead of being applied immediately. A human can review pending changes with <code class="language-plaintext highlighter-rouge">/skills pending</code>, inspect the full diff with <code class="language-plaintext highlighter-rouge">/skills diff &lt;id&gt;</code>, and then approve or reject. This gate applies equally to skills created in a foreground turn and to skills proposed by the background self-improvement review.</p>

<p>Because there is no separate ingestion engine, <code class="language-plaintext highlighter-rouge">/learn</code> works identically across the CLI, the TUI, messaging gateways, and the dashboard. It does not matter whether the terminal backend is local, Docker, or remote. In the dashboard, a “Learn a skill” button appears on the Skills page and assembles a <code class="language-plaintext highlighter-rouge">/learn</code> request from a directory field, a URL field, and a free-text box.</p>

<p>The official documentation identifies three usage scenarios. First, internal API onboarding: run <code class="language-plaintext highlighter-rouge">/learn</code> against a private documentation URL and it produces a skill covering authentication, pagination, and common calls; new team members then invoke it as a slash command. Second, deployment runbook capture: step through a staging deployment with the agent, then run <code class="language-plaintext highlighter-rouge">/learn how I just deployed the staging server</code> and the procedure becomes repeatable across CLI and chat platforms. Third, bundling repetitive tasks: a skill bundle lets a single slash command load the review, test, and PR skills together.</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># ~/.hermes/skill-bundles/backend-dev.yaml</span>
<span class="na">name</span><span class="pi">:</span> <span class="s">backend-dev</span>
<span class="na">description</span><span class="pi">:</span> <span class="s">Backend feature work - review, test, PR workflow.</span>
<span class="na">skills</span><span class="pi">:</span>
  <span class="pi">-</span> <span class="s">github-code-review</span>
  <span class="pi">-</span> <span class="s">test-driven-development</span>
  <span class="pi">-</span> <span class="s">github-pr-workflow</span>
<span class="na">instruction</span><span class="pi">:</span> <span class="pi">|</span>
  <span class="s">Always start by writing failing tests, then implement.</span>
</code></pre></div></div>

<p>The skill system also offers an opt-out path if you want to start from a clean slate. <code class="language-plaintext highlighter-rouge">hermes skills opt-out</code> stops seeding bundle skills, and <code class="language-plaintext highlighter-rouge">hermes skills opt-in --sync</code> restores them. The <code class="language-plaintext highlighter-rouge">platforms</code> field hides incompatible skills on unsupported operating systems, and conditional fields expose a skill only when a specific toolset is present, giving fine-grained control over what surfaces in any given environment.</p>

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

<p>We verified the Hermes Agent installation in our ThakiCloud environment directly. The binary lives at <code class="language-plaintext highlighter-rouge">~/.local/bin/hermes</code> and actually runs on Python from <code class="language-plaintext highlighter-rouge">~/hermes-agent/venv</code>.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>~/.local/bin/hermes <span class="nt">--version</span>
Hermes Agent v0.16.0 <span class="o">(</span>2026.6.5<span class="o">)</span> · upstream 40cea4d5
Python: 3.11.13
OpenAI SDK: 2.24.0
</code></pre></div></div>

<p>All skills are stored in <code class="language-plaintext highlighter-rouge">~/.hermes/skills/</code>, which is the single source of truth. Because Hermes is compatible with the agentskills.io open standard, you can configure multiple tools to share-scan the same skills folder:</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># ~/.hermes/config.yaml</span>
<span class="na">skills</span><span class="pi">:</span>
  <span class="na">external_dirs</span><span class="pi">:</span>
    <span class="pi">-</span> <span class="s">~/.agents/skills</span>
    <span class="pi">-</span> <span class="s">/home/shared/team-skills</span>
    <span class="pi">-</span> <span class="s">${SKILLS_REPO}/skills</span>
</code></pre></div></div>

<p>That <code class="language-plaintext highlighter-rouge">external_dirs</code> setting is the crux of the platform perspective we cover later. We pulled the list of installed skills directly. 78 skills are currently installed, categorized under apple, autonomous-ai-agents, creative, and others:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>~/.local/bin/hermes skills list
                                Installed Skills
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┓
┃ Name                ┃ Category             ┃ Source  ┃ Trust   ┃ Status  ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━┩
│ claude-code         │ autonomous-ai-agents │ <span class="nb">builtin</span> │ <span class="nb">builtin</span> │ enabled │
│ architecture-diagram│ creative             │ <span class="nb">builtin</span> │ <span class="nb">builtin</span> │ enabled │
│ humanizer           │ creative             │ <span class="nb">builtin</span> │ <span class="nb">builtin</span> │ enabled │
│ excalidraw          │ creative             │ <span class="nb">builtin</span> │ <span class="nb">builtin</span> │ enabled │
└─────────────────────┴──────────────────────┴─────────┴─────────┴─────────┘
</code></pre></div></div>

<p>Every installed skill automatically becomes a slash command. Typing the name alone - <code class="language-plaintext highlighter-rouge">/excalidraw</code> - loads the skill and the agent asks how it can help; supplying an argument such as <code class="language-plaintext highlighter-rouge">/plan design a rollout for migrating our auth provider</code> processes the request immediately. The skill management subcommands are extensive:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>~/.local/bin/hermes skills <span class="nt">--help</span>
<span class="o">{</span>browse, search, <span class="nb">install</span>, inspect, list, check, update, audit,
 uninstall, reset, opt-out, opt-in, repair-official, publish,
 snapshot, tap, config<span class="o">}</span>
</code></pre></div></div>

<p>A mechanism to prevent unbounded skill accumulation is also built in. The curator runs a secondary model in the background on a schedule, reviewing agent-created skills to consolidate duplicates and archive stale ones. Bundle skills and hub-installed skills are never touched; archives are recoverable and there is no automatic deletion:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>~/.local/bin/hermes curator <span class="nt">--help</span>
<span class="o">{</span>status, run, pause, resume, pin, unpin, restore,
 list-archived, archive, prune, backup, rollback<span class="o">}</span>
</code></pre></div></div>

<p>Progressive disclosure for token cost management is confirmed as well. At level 0, an index of roughly 3,000 tokens containing only name and description loads first; the full content loads only when the work actually requires it:</p>

<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Level 0: skills_list()           -&gt; [{name, description, category}, ...]   (~3k tokens)
Level 1: skill_view(name)        -&gt; Full content + metadata
Level 2: skill_view(name, path)  -&gt; Specific reference file
</code></pre></div></div>

<h2 id="what-we-actually-tested">What We Actually Tested</h2>

<p>There is a limitation that must be stated honestly here. The version installed at ThakiCloud is <code class="language-plaintext highlighter-rouge">v0.16.0 (2026.6.5)</code>, which predates the June 24, 2026 release that introduced <code class="language-plaintext highlighter-rouge">/learn</code>. Because the binary reports “Up to date” based on the local git checkout, upstream new releases are not applied automatically. We therefore could not run <code class="language-plaintext highlighter-rouge">/learn</code> in our environment and capture output metrics. The constraint encountered during reproduction attempts: the installed version predates <code class="language-plaintext highlighter-rouge">/learn</code>, so the command itself is absent.</p>

<p>What we could verify, we measured directly. The skill system skeleton that <code class="language-plaintext highlighter-rouge">/learn</code> writes into is fully operational in our environment. All 78 skills surface as slash commands, and the <code class="language-plaintext highlighter-rouge">skill_manage</code>-based agent self-authoring path, the <code class="language-plaintext highlighter-rouge">skills.write_approval</code> staging gate, the curator background cleanup, and progressive disclosure indexing are all present in the installed version. In other words, what <code class="language-plaintext highlighter-rouge">/learn</code> adds is a thin entry point that, given a source description, constructs a standard prompt and feeds it into the existing authoring pipeline. The heavy machinery underneath has already been verified.</p>

<p>The behavior of <code class="language-plaintext highlighter-rouge">/learn</code> itself was cross-verified against the official documentation and the June 24, 2026 MarkTechPost report. Both sources describe the same facts: four source types, <code class="language-plaintext highlighter-rouge">read_file</code> / <code class="language-plaintext highlighter-rouge">search_files</code> / <code class="language-plaintext highlighter-rouge">web_extract</code> as collection tools, a 60-character description cap with fixed section order, <code class="language-plaintext highlighter-rouge">skill_manage</code> storage, and the <code class="language-plaintext highlighter-rouge">write_approval</code> gate. Rather than fabricate numbers, we clearly delineate what has been verified and what has not.</p>

<p>Updating to the upstream release would allow us to run <code class="language-plaintext highlighter-rouge">/learn</code> directly and measure output quality. However, that update could affect the running multi-tenant environment, so the safe path is to verify first in an isolated profile before rolling it in. We plan to capture actual <code class="language-plaintext highlighter-rouge">/learn</code> output in a follow-up post.</p>

<h2 id="implications-for-thakiclouds-kubernetes-aiml-saas-platform">Implications for ThakiCloud’s Kubernetes AI/ML SaaS Platform</h2>

<p><code class="language-plaintext highlighter-rouge">/learn</code> is interesting not simply because it is convenient, but because it directly addresses three problems that a multi-tenant agent platform has to solve.</p>

<p>The first is the cost of capturing domain knowledge. Every customer has different deployment runbooks, internal APIs, and incident response procedures. Having a human translate each of these into a <code class="language-plaintext highlighter-rouge">SKILL.md</code> slows onboarding. <code class="language-plaintext highlighter-rouge">/learn</code> turns “convert this work we just finished into a skill” into a single command that immediately converts procedural memory into a reusable asset. A staging deployment a operator walks through once becomes a repeatable command available across both CLI and chat.</p>

<p>The second is governance. ThakiCloud serves customers who require on-premises and self-hosted deployments, as well as environments that must meet National Intelligence Service security requirements. An agent that can write its own skills is powerful, but it also introduces the risk of unreviewed procedures accumulating automatically. The <code class="language-plaintext highlighter-rouge">write_approval</code> gate, which stages every skill write to <code class="language-plaintext highlighter-rouge">~/.hermes/pending/skills/</code>, persists across restarts, and lets a human inspect the full diff via <code class="language-plaintext highlighter-rouge">/skills diff</code> before applying it, is well-suited to these environments. The design deliberately separates the benefits of automation from the control of human review.</p>

<p>The third is cross-tool skill sharing. Hermes’s <code class="language-plaintext highlighter-rouge">external_dirs</code> configuration allows multiple AI tools to share the same skills folder. ThakiCloud already operates more than 1,000 skills internally using the same agentskills.io standard. Connecting Hermes to that shared directory means a skill authored in one place works across Claude Code, Cursor, and Hermes without duplication. This is the practical implementation of Thin Harness, Fat Skills - the principle that capabilities accumulate in skills rather than in the harness - which is how you build assets that compound in value even as harnesses change.</p>

<p>The roughly 3,000-token progressive disclosure index also matters from a serving cost perspective. Even as the skill count grows into the hundreds, only the index enters the context on every turn; full content loads on demand. For a team running multi-tenant vLLM serving and managing per-token costs, the pattern of decoupling skill count from context cost is worth adopting directly.</p>

<h2 id="limitations-and-counter-arguments">Limitations and Counter-Arguments</h2>

<p>The most significant limitation is that a human still has to review the output. <code class="language-plaintext highlighter-rouge">/learn</code> has a rule against inventing commands that do not exist, but the possibility that a small model misjudges what it has learned remains. The official documentation acknowledges this and recommends enabling <code class="language-plaintext highlighter-rouge">write_approval</code> when using a smaller model or in security-sensitive environments. In other words, <code class="language-plaintext highlighter-rouge">/learn</code> eliminates authoring cost but does not eliminate review cost. In fact, because skill creation becomes easier, the absence of a review gate and curator cleanup could accelerate the accumulation of low-quality skills.</p>

<p>Second, the trustworthiness of the source determines the trustworthiness of the output. If a document fetched with <code class="language-plaintext highlighter-rouge">web_extract</code> is inaccurate or outdated, the skill built on top of it inherits the same errors. The convenience of creating a skill from a single URL transfers the responsibility for source verification to the user.</p>

<p>Third, the clear gap in this verification is that our installed version predates <code class="language-plaintext highlighter-rouge">/learn</code>, so we could not measure actual output. The behavior is cross-verified through official documentation and press coverage, but metrics such as output quality, authoring time, and standard-compliance rate were not captured directly. We will obtain those numbers by running the upstream version in an isolated profile and publish them in a follow-up post.</p>

<p>In summary, <code class="language-plaintext highlighter-rouge">/learn</code> substantially reduces the friction of creating skills while moving the natural review step that friction used to provide into an explicit gate and a curator. For teams operating multi-tenant agent platforms, it reads more accurately as a governance design choice than as a convenience feature.</p>

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

<ul>
  <li>Hermes Agent official documentation, Skills System: <a href="https://hermes-agent.nousresearch.com/docs/user-guide/features/skills">https://hermes-agent.nousresearch.com/docs/user-guide/features/skills</a></li>
  <li>MarkTechPost, “Nous Research Adds /learn to Hermes Agent’s Skills System” (2026-06-24): <a href="https://www.marktechpost.com/2026/06/24/nous-research-adds-learn-to-hermes-agents-skills-system-capturing-workflows-as-slash-commands-without-hand-writing-skill-md/">https://www.marktechpost.com/2026/06/24/nous-research-adds-learn-to-hermes-agents-skills-system-capturing-workflows-as-slash-commands-without-hand-writing-skill-md/</a></li>
  <li>NousResearch/hermes-agent (GitHub): <a href="https://github.com/NousResearch/hermes-agent">https://github.com/NousResearch/hermes-agent</a></li>
  <li>Original tweet (demo video, tonbistudio): <a href="https://x.com/hjguyhan/status/2070135061429854577">https://x.com/hjguyhan/status/2070135061429854577</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="technique" /><category term="ai-coding" /><category term="hermes-agent" /><category term="agent-skills" /><category term="skill-authoring" /><category term="agentskills-io" /><category term="platform-engineering" /><summary type="html"><![CDATA[The /learn command that Nous Research added to Hermes Agent can point at a directory, a URL, a just-finished conversation, or a pasted note and turn it into a reusable skill - no hand-written SKILL.md required. We ran the installed Hermes to measure the skill system skeleton directly, and here we break down how /learn works and what it means for ThakiCloud's multi-tenant agent operations on a Kubernetes AI/ML SaaS platform.]]></summary></entry><entry xml:lang="ko"><title type="html">논문 쓰는 AI 에이전트 - 오픈소스 Skill 패키지로 작성 워크플로 옮기기</title><link href="https://thakicloud.github.io/ko/dev/ai-agent-research-paper-skills/" rel="alternate" type="text/html" title="논문 쓰는 AI 에이전트 - 오픈소스 Skill 패키지로 작성 워크플로 옮기기" /><published>2026-06-26T00:00:00+09:00</published><updated>2026-06-26T00:00:00+09:00</updated><id>https://thakicloud.github.io/ko/dev/ai-agent-research-paper-skills</id><content type="html" xml:base="https://thakicloud.github.io/ko/dev/ai-agent-research-paper-skills/"><![CDATA[<p>논문 마감이 가까워지면 연구자는 같은 작업을 반복합니다. 서론을 다시 다듬고, 초록의 주장과 근거가 맞물리는지 확인하고, 리뷰어가 물고 늘어질 만한 문장을 미리 손봅니다. 이 노하우는 대개 지도교수의 머릿속이나 흩어진 메모에 있습니다. 최근 X에서 화제가 된 <a href="https://github.com/Master-cai/Research-Paper-Writing-Skills">Research-Paper-Writing-Skills</a>는 바로 이 노하우를 AI 코딩 에이전트가 그대로 불러 쓸 수 있는 Skill 패키지로 묶은 오픈소스 프로젝트입니다. 핵심은 “또 하나의 프롬프트 모음”이 아니라, Codex와 Claude Code, Gemini 어디서나 같은 능력을 끼워 넣는 이식 가능한 형식이라는 점입니다.</p>

<p><img src="/assets/images/ai-agent-research-paper-skills-hero.png" alt="중앙의 모듈형 지식 단위가 세 갈래 데이터 흐름을 통해 서로 다른 세 도구로 퍼져 나가는 추상 이미지" /></p>

<h2 id="개요">개요</h2>

<p>이 프로젝트는 중국 저장대학교 펑쓰다(彭思达) 교수가 공개한 연구 입문 노트 <a href="https://github.com/pengsida/learning_research">learning_research</a>를 바탕으로, 논문 작성 노하우를 재구성해 Agent Skill 패키지로 포장한 것입니다. 저장소 설명에 따르면 ML, CV, NLP 논문 작성에 초점을 맞췄고, Codex와 Claude Code, Gemini를 대상으로 큐레이션과 구조화 작업을 거쳤습니다. 원저작자의 글을 그대로 베낀 것이 아니라, 흩어진 조언을 작업 단위로 쪼개 에이전트가 호출할 수 있는 재사용 가능한 능력으로 만든 것이 기여의 핵심입니다.</p>

<p>왜 이런 형식이 지금 주목받을까요. AI 코딩 에이전트가 보편화되면서, 사람들은 모델 자체보다 “이 모델에게 무엇을 어떻게 시킬 것인가”를 자산으로 보기 시작했습니다. 잘 정리된 작업 지식은 한 번 만들어 두면 여러 도구와 여러 사람에게 복제됩니다. 논문 작성처럼 절차가 분명하고 품질 기준이 명확한 작업은 이 형식과 특히 잘 맞습니다. ThakiCloud 역시 내부 운영의 상당 부분을 수백 개의 Skill로 구성하고 있어, 이 흐름을 단순한 유행이 아니라 에이전트 운영의 구조적 변화로 보고 있습니다.</p>

<p><img src="/assets/images/ai-agent-research-paper-skills-slide-03.png" alt="단일 오픈소스 패키지 한 벌이 Codex, Claude, Gemini 세 파운데이션 모델에서 공통으로 호출되는 구조를 요약한 슬라이드" /></p>

<h2 id="agent-skill이란-무엇인가">Agent Skill이란 무엇인가</h2>

<p>Agent Skill은 에이전트에게 특정 작업을 수행하는 방법을 알려 주는 패키지입니다. 보통 <code class="language-plaintext highlighter-rouge">SKILL.md</code>라는 지시문 파일을 중심에 두고, 필요하면 참조 문서나 스크립트, 템플릿을 함께 담습니다. 핵심 성질은 세 가지입니다. 첫째, 버전 관리가 됩니다. 저장소에 두고 수정 이력을 추적할 수 있으므로 단발성 프롬프트와 달리 자산으로 축적됩니다. 둘째, 필요할 때만 불러옵니다. 모든 지식을 매번 컨텍스트에 욱여넣는 대신, 작업과 관련된 Skill만 그 순간 로드합니다. 셋째, 하네스에 종속되지 않습니다. 같은 Skill을 Claude Code에서도, Codex에서도, Gemini에서도 쓸 수 있는 것이 목표입니다.</p>

<p><img src="/assets/images/ai-agent-research-paper-skills-slide-04.png" alt="프롬프트 복붙과 Agent Skill 시스템을 버전 관리, 컨텍스트 로딩, 하네스 종속성 세 축으로 비교한 표 슬라이드" /></p>

<p>이 세 번째 성질이 이 프로젝트의 가치를 가장 잘 설명합니다. 모델은 계속 바뀌고 CLI 도구도 계속 바뀝니다. 그러나 “좋은 서론을 쓰는 법”이라는 작업 지식은 그보다 훨씬 오래갑니다. 능력을 도구가 아니라 Skill 쪽에 쌓아 두면, 도구를 갈아탈 때마다 노하우를 다시 만들 필요가 없습니다. 이것이 우리가 내부에서 “얇은 하네스, 두꺼운 Skill”이라고 부르는 원칙입니다. 모델 루프와 권한, 파일 입출력 같은 하네스는 얇게 유지하고, 도메인 지식과 판단, 실패 사례는 Skill에 두텁게 쌓는 것입니다.</p>

<p><img src="/assets/images/ai-agent-research-paper-skills-diagram.png" alt="이식 가능한 Skill 패키지가 SKILL.md 지시문과 참조 자료를 담은 채, Claude Code와 Codex, Gemini 세 하네스에 똑같이 끼워져 논문 작성 작업을 수행하는 구조" /></p>

<p>위 그림의 핵심은 가운데 Skill 패키지가 단 한 벌이라는 점입니다. 세 도구가 각자 다른 프롬프트를 들고 있는 것이 아니라, 같은 작업 지식을 공유합니다. 프롬프트 한 줄을 단톡방에 붙여 넣는 방식과 본질적으로 다른 지점이 여기입니다.</p>

<h2 id="research-paper-writing-skills-살펴보기">Research-Paper-Writing-Skills 살펴보기</h2>

<p>이 패키지가 다루는 작업은 논문 작성의 실제 단계와 맞닿아 있습니다. 공개된 사용 예시를 보면, 서론을 개선하라는 호출(<code class="language-plaintext highlighter-rouge">$research-paper-writing</code>)로 글의 도입부를 다듬거나, 초록을 다시 쓰되 주장과 근거가 짝을 이루는지 검사하는 식입니다. 즉 “글을 잘 써 줘”라는 막연한 요청이 아니라, 논문에서 반복적으로 발생하는 구체적 하위 작업을 각각의 능력으로 분리한 구조입니다. 이는 동사 하나에 결과물 하나를 대응시키는 좋은 프롬프트 설계 원칙과도 일치합니다.</p>

<p>여러 AI 코딩 도구를 함께 겨냥한 점도 눈에 띕니다. 사용자는 자신이 쓰는 환경의 Skill 디렉터리에 패키지를 복사해 넣는 것만으로 같은 능력을 활성화할 수 있습니다. 이런 다중 하네스 지향은 이 프로젝트만의 특징이 아니라, Codex 중심의 학술 Skill 모음이나 범용 AI 리서치 Skill 라이브러리 등 최근 등장한 여러 오픈소스 프로젝트가 공유하는 방향입니다. 연구 워크플로 전반을 Skill 생태계로 옮기려는 시도가 동시다발적으로 진행되고 있다는 신호입니다.</p>

<p>한 가지 분명히 해 둘 점이 있습니다. 이 글은 저장소의 공개 설명과 사용 예시를 근거로 작성했으며, 별점 수나 내부 파일 구성 같은 세부 수치는 시점에 따라 달라질 수 있어 단정하지 않았습니다. 실제 도입을 검토한다면 저장소 원문과 라이선스, 그리고 원저작자 노트의 출처 표기를 직접 확인하시기를 권합니다.</p>

<h2 id="설치-및-사용">설치 및 사용</h2>

<p>Agent Skill의 설치 모델은 대체로 단순합니다. 패키지를 내려받아 사용하는 도구가 인식하는 Skill 경로에 두면, 에이전트가 작업에 맞춰 해당 Skill을 불러옵니다. 일반적인 흐름은 다음과 같습니다.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># 저장소를 클론합니다</span>
git clone https://github.com/Master-cai/Research-Paper-Writing-Skills.git

<span class="c"># 사용하는 도구의 Skill 디렉터리에 복사합니다 (도구별 경로는 각 문서를 확인)</span>
<span class="c"># 예: Claude Code 프로젝트의 .claude/skills/ 하위로 배치</span>
<span class="nb">cp</span> <span class="nt">-r</span> Research-Paper-Writing-Skills/&lt;skill-dir&gt; .claude/skills/
</code></pre></div></div>

<p>배치가 끝나면 에이전트 세션에서 해당 Skill을 호출해 작업을 시킵니다. 서론 초안을 손보거나, 초록의 주장과 근거 정합성을 점검하는 식의 요청을 자연어로 던지면, Skill에 담긴 절차와 점검 기준이 적용됩니다. 도구마다 Skill을 인식하는 경로와 호출 관례가 조금씩 다르므로, 실제 배치 경로는 각 도구의 문서를 따르는 것이 안전합니다. 중요한 것은 한 번 배치한 Skill이 그 도구의 모든 세션에서 재사용된다는 점입니다. 매번 같은 프롬프트를 복사해 붙이는 수고가 사라집니다.</p>

<p><img src="/assets/images/ai-agent-research-paper-skills-slide-06.png" alt="환경 복사, 명령어 호출, 특정 작업 지시, 결과 도출로 이어지는 4단계 사용 흐름 슬라이드" /></p>

<h2 id="thakicloud-k8s-aiml-saas-플랫폼-적용-및-시사점">ThakiCloud K8s AI/ML SaaS 플랫폼 적용 및 시사점</h2>

<p>ThakiCloud의 AI 플랫폼은 Kubernetes 위에서 다양한 고객의 에이전트와 배치 작업을 운영합니다. 우리 내부 운영 자체가 이미 Skill 중심으로 구성되어 있어, 이 프로젝트가 보여 주는 형식은 낯설지 않습니다. 오히려 외부에서 같은 패턴이 빠르게 확산되고 있다는 점이 의미가 큽니다.</p>

<p><img src="/assets/images/ai-agent-research-paper-skills-slide-07.png" alt="사내 표준화, 벤더 독립성, K8s 네이티브 세 가지로 정리한 ThakiCloud 멀티테넌트 플랫폼 확장 슬라이드" /></p>

<p>첫째, 데이터 과학자와 연구 인력에게 직접적인 가치가 있습니다. 플랫폼을 다루는 팀은 논문과 기술 보고서를 자주 작성합니다. 검증된 논문 작성 Skill을 사내 표준 도구에 얹어 두면, 서론 구조나 초록의 주장-근거 정합성처럼 실수하기 쉬운 부분을 일관된 기준으로 점검할 수 있습니다. 모델 등급을 올리지 않고도 평균 품질을 끌어올리는 방식입니다.</p>

<p>둘째, 하네스 독립성은 멀티테넌트 운영과 잘 맞습니다. 고객마다 선호하는 에이전트 환경이 다를 수 있는데, 능력을 Skill에 담아 두면 환경이 달라도 같은 작업 지식을 재사용할 수 있습니다. 특정 벤더의 도구에 능력이 묶이지 않으므로, 온프레미스 요구가 강한 고객 환경에도 같은 자산을 이식하기 수월합니다. 이는 자체 호스팅과 비용 효율을 중시하는 우리 전략과 결이 같습니다.</p>

<p>셋째, Skill을 운영 자산으로 다루는 규율이 함께 필요하다는 교훈도 줍니다. Skill은 색인에 올라간 순간부터 매 세션 컨텍스트 비용을 치릅니다. 그래서 우리는 새 Skill마다 “이게 없으면 에이전트가 틀리는가”라는 질문을 통과시키고, 실패 사례를 명시적으로 적어 둡니다. 외부에서 좋은 Skill을 도입할 때도 같은 게이트를 적용하면, 늘어나는 Skill이 오히려 검색 정확도를 떨어뜨리는 부작용을 줄일 수 있습니다.</p>

<h2 id="한계-및-반론">한계 및 반론</h2>

<p>이 접근에는 분명한 약점도 있습니다. 가장 먼저, 생성된 글의 품질을 객관적으로 측정한 공개 지표가 없습니다. 논문 작성은 본질적으로 판단이 개입하는 작업이라, Skill이 만든 초안이 사람 기준에 얼마나 부합하는지는 결국 사람이 검토해야 합니다. 이 글에서도 성능 수치를 제시하지 않은 이유가 여기에 있습니다. 캡처한 실측이 없는데 수치를 지어내는 것은 가장 피해야 할 일입니다.</p>

<p><img src="/assets/images/ai-agent-research-paper-skills-slide-08.png" alt="엄격한 게이트키핑, 인간의 최종 책임, 공개 지표의 부재 세 가지 한계를 정리한 슬라이드" /></p>

<p>다음으로, 출처와 파생 저작의 문제가 있습니다. 이 패키지는 타인의 공개 노트를 재구성한 결과물입니다. 원저작자를 명시하고 있더라도, 도입하는 쪽에서는 라이선스와 출처 표기 범위를 직접 확인할 책임이 있습니다. 사내 표준에 얹는다면 더욱 그렇습니다.</p>

<p>마지막으로, 작성 보조가 사고를 대체하지는 않습니다. 좋은 서론은 좋은 연구에서 나옵니다. Skill은 표현과 점검을 거들 뿐, 빈약한 결과를 충실한 논문으로 둔갑시키지 못합니다. 도구가 채워 주는 부분과 연구자가 끝까지 책임져야 하는 부분을 혼동하지 않는 것이 이 형식을 건강하게 쓰는 전제입니다.</p>

<p><img src="/assets/images/ai-agent-research-paper-skills-slide-09.png" alt="프롬프트를 멈추고 자산을 구축하라는 메시지로 마무리하는 슬라이드" /></p>

<h2 id="출처">출처</h2>

<ul>
  <li>Research-Paper-Writing-Skills: <a href="https://github.com/Master-cai/Research-Paper-Writing-Skills">https://github.com/Master-cai/Research-Paper-Writing-Skills</a></li>
  <li>원저작 노트 learning_research (펑쓰다): <a href="https://github.com/pengsida/learning_research">https://github.com/pengsida/learning_research</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="ai-agent" /><category term="agent-skills" /><category term="claude-code" /><category term="paper-writing" /><category term="llm" /><summary type="html"><![CDATA[교수의 논문 작성 노하우를 Codex, Claude Code, Gemini 어디서나 불러 쓰는 Skill 패키지로 묶은 오픈소스 프로젝트가 화제입니다. 단순 프롬프트 모음과 무엇이 다른지, Agent Skill이라는 형식이 왜 중요한지, 그리고 수백 개의 Skill로 에이전트 플랫폼을 운영하는 ThakiCloud 관점에서 이 흐름이 무엇을 시사하는지 정리합니다.]]></summary></entry><entry xml:lang="ko"><title type="html">NVIDIA GLM-5.2-NVFP4: 753B 프런티어 MoE를 4비트로 서빙하기</title><link href="https://thakicloud.github.io/ko/llmops/nvidia-glm-5-2-nvfp4/" rel="alternate" type="text/html" title="NVIDIA GLM-5.2-NVFP4: 753B 프런티어 MoE를 4비트로 서빙하기" /><published>2026-06-26T00:00:00+09:00</published><updated>2026-06-26T00:00:00+09:00</updated><id>https://thakicloud.github.io/ko/llmops/nvidia-glm-5-2-nvfp4</id><content type="html" xml:base="https://thakicloud.github.io/ko/llmops/nvidia-glm-5-2-nvfp4/"><![CDATA[<p><img src="/assets/images/nvidia-glm-5-2-nvfp4-hero.png" alt="16비트 신경망 격자가 4비트의 압축된 코어로 응축되는 추상 이미지" />
<em>16비트 가중치가 4비트로 응축되는 개념을 시각화한 이미지입니다.</em></p>

<p>프런티어급 추론 모델을 자체 인프라에서 서빙하려는 팀에게 가장 먼저 부딪히는 벽은 GPU 메모리입니다. 753B 파라미터를 16비트로 그대로 올리면 1.5TB에 가까운 메모리가 필요하고, 이는 곧 GPU 노드 여러 대를 의미합니다. NVIDIA가 2026년 6월 25일 Hugging Face에 공개한 <code class="language-plaintext highlighter-rouge">nvidia/GLM-5.2-NVFP4</code>는 ZAI(zai-org)의 GLM-5.2를 4비트로 양자화해 이 벽을 낮추려는 시도입니다.</p>

<p>이 글은 GLM-5.2라는 모델 자체의 소개글이 아닙니다. 이 모델의 추론 토큰 길이가 자가호스팅 비용 셈법을 어떻게 바꾸는지는 <a href="https://thakicloud.github.io/ko/llmops/glm-5-2-reasoning-token-economics/">추론 토큰 경제성 글</a>에서, 컨슈머 하드웨어용 1비트 GGUF 양자화는 <a href="https://thakicloud.github.io/ko/llmops/unsloth-glm-5-2-1bit-gguf/">Unsloth GGUF 글</a>에서 이미 다뤘습니다. 이 글이 보려는 것은 데이터센터 트랙입니다. NVIDIA가 직접 공개한 NVFP4 양자화가 어떤 구조를 택했고, 어떤 하드웨어에서 어떻게 서빙되며, 멀티테넌트 서빙을 운영하는 입장에서 무엇을 의미하는가입니다.</p>

<p>본문의 정확도 수치는 모두 NVIDIA가 모델카드에 공개한 공식 측정치입니다. 753B 모델은 NVIDIA Blackwell 전용에 8-way 텐서 병렬을 요구하므로 ThakiCloud의 개발 환경에서는 직접 재현하지 못했습니다. 따라서 이 글은 공개 자료에 기반한 분석이며, 재현 수치를 임의로 만들어 넣지 않았습니다. 출처가 갈리는 값은 <code class="language-plaintext highlighter-rouge">[추정]</code>으로 표시합니다.</p>

<h2 id="개요">개요</h2>

<p><code class="language-plaintext highlighter-rouge">nvidia/GLM-5.2-NVFP4</code>는 ZAI의 <code class="language-plaintext highlighter-rouge">zai-org/GLM-5.2</code>를 NVIDIA Model Optimizer(ModelOpt)로 양자화한 버전입니다. 베이스 모델은 추론과 코딩을 위한 Mixture-of-Experts(MoE) 구조로, 총 753B 파라미터 중 토큰당 40B만 활성화됩니다. 네트워크 아키텍처는 <code class="language-plaintext highlighter-rouge">GlmMoeDsaForCausalLM</code>이며, IndexShare 인덱서를 사용하는 희소 어텐션(sparse attention)으로 최대 1M 토큰의 긴 컨텍스트를 지원합니다. 라이선스는 베이스 모델과 동일한 MIT로, 상업·비상업 모두 사용 가능합니다.</p>

<p>핵심을 한 문장으로 요약하면 이렇습니다. <strong>MoE는 연산량을, 선택적 NVFP4 양자화는 메모리를 줄이되, 정확도에 민감한 부분은 일부러 양자화에서 제외합니다.</strong> MoE 구조 덕분에 753B 모델이면서도 토큰당 계산은 40B 활성 전문가에 한정됩니다. 여기에 NVFP4가 더해져 모델의 메모리 무게 대부분을 차지하는 라우팅 전문가의 가중치를 16비트에서 4비트로 낮춥니다. 그러면서도 공유 전문가는 양자화하지 않고 BF16으로 남겨, 정확도 손실을 최소화하는 방향을 택했습니다.</p>

<p>타이밍도 의미가 있습니다. 강한 오픈웨이트 모델이 MIT로 풀리는 흐름과, NVIDIA가 그 모델을 자사 하드웨어에 맞춰 곧장 서빙 가능한 형태로 재배포하는 흐름이 맞물립니다. 모델 주권을 고민하는 조직에게 이것은 추상적 정책 이슈가 아니라 “어떤 GPU에 무엇을 어떻게 올릴 것인가”라는 당장의 아키텍처 선택입니다.</p>

<h2 id="이-모델은-무엇인가">이 모델은 무엇인가</h2>

<p>GLM-5.2는 ZAI가 공개한 MoE 추론·코딩 모델입니다. 일반적인 밀집(dense) 모델과 달리, 트랜스포머 블록 안에 여러 개의 전문가(expert) 네트워크를 두고 입력 토큰마다 일부만 활성화합니다. GLM-5.2는 총 753B 파라미터를 가지지만 토큰 하나를 생성할 때 실제로 계산에 참여하는 것은 40B 활성 파라미터뿐입니다. 즉 모델의 “지식 용량”은 753B급이지만, 추론 시 연산 비용은 40B 밀집 모델에 가깝습니다.</p>

<p>여기에 더해 GLM-5.2는 IndexShare 인덱서를 활용한 희소 어텐션을 사용합니다. 1M 토큰이라는 긴 컨텍스트를 지원하면서도 모든 토큰 쌍을 빠짐없이 비교하는 완전 어텐션의 비용을 피하려는 설계입니다. 모델카드는 이 아키텍처를 <code class="language-plaintext highlighter-rouge">glm_moe_dsa</code>로 표기하며, 실행을 위해 <code class="language-plaintext highlighter-rouge">transformers&gt;=5.3.0</code>을 요구합니다. 이 두 가지, 즉 MoE 희소성과 어텐션 희소성이 결합해 프런티어급 추론 능력을 비교적 절약된 연산으로 제공하는 것이 GLM-5.2의 출발점입니다.</p>

<p>NVFP4는 NVIDIA가 정의한 4비트 부동소수점 데이터 타입입니다. 정수 4비트가 아니라 부동소수점이라는 점이 중요합니다. 구체적으로는 작은 부동소수점(E2M1) 값을 16개씩 묶고, 그 블록마다 FP8(E4M3) 스케일을 붙이는 블록 단위 2단계 스케일링을 씁니다. 블록마다 동적 범위를 따라가기 때문에 단순 정수 양자화보다 분포의 꼬리를 잘 보존합니다. NVIDIA는 이 모델이 자사가 처음부터 학습한 모델이 아니라 제3자 모델을 양자화한 버전임을 모델카드에 명확히 밝히고 있으며, 양자화 도구로 오픈소스 NVIDIA Model Optimizer를 사용했습니다.</p>

<h2 id="핵심은-선택적-양자화입니다">핵심은 “선택적” 양자화입니다</h2>

<p><img src="/assets/images/nvidia-glm-5-2-nvfp4-diagram.png" alt="GLM-5.2-NVFP4 선택적 양자화 전략과 서빙 경로 도식" />
<em>MoE 라우팅 전문가의 선형 연산자만 NVFP4로 양자화하고, 공유 전문가와 어텐션은 BF16으로 남깁니다.</em></p>

<p>이 모델에서 가장 중요한 설계 결정은 “무엇을 양자화하지 않았는가”입니다. 모델카드의 표현을 그대로 옮기면, “MoE 전문가 안 트랜스포머 블록 내부 선형 연산자의 가중치와 활성값만 양자화하며, 공유 전문가는 양자화하지 않는다”입니다. 정리하면 다음과 같습니다.</p>

<ul>
  <li><strong>NVFP4(4비트)로 양자화</strong>: MoE 라우팅 전문가의 선형 연산자 가중치와 활성값. 이 부분이 753B 파라미터의 대부분을 차지하므로, 메모리 절감 효과의 거의 전부가 여기서 나옵니다.</li>
  <li><strong>BF16(16비트)로 보존</strong>: 공유 전문가, 그리고 IndexShare 희소 어텐션 경로. 모든 토큰이 항상 통과하는 부분이라 정확도에 미치는 영향이 크기 때문입니다.</li>
</ul>

<p>이 전략이 합리적인 이유는 MoE의 파라미터 분포에 있습니다. 라우팅 전문가는 수가 많아 전체 파라미터의 압도적 비중을 차지하지만, 각 토큰은 그중 일부만 사용합니다. 반대로 공유 전문가와 어텐션은 파라미터 비중은 작지만 모든 토큰이 반드시 통과합니다. 따라서 “양이 많고 듬성듬성 쓰이는 곳은 과감하게 4비트로, 양은 적지만 항상 쓰이는 곳은 정밀하게 16비트로” 나누는 것이 메모리와 정확도를 동시에 챙기는 합리적 절충입니다. 정확도 표가 거의 손실 없이 유지되는 근본 원인이 바로 이 선택적 양자화에 있습니다.</p>

<p>양자화 보정(calibration)에는 NVIDIA의 Nemotron 계열 데이터셋이 사용되었습니다. 모델카드는 Nemotron-SFT-Instruction-Following-Chat-v2, Nemotron-Science-v1, Nemotron-Competitive-Programming-v1, Nemotron-SFT-Agentic-v2, Nemotron-Math-v2, Nemotron-SFT-SWE-v2, Nemotron-SFT-Multilingual-v1을 보정 데이터로 명시합니다. 추론·과학·코딩·에이전트·수학·다국어를 고루 포함하는 구성으로, 평가 벤치마크의 성격과 결을 맞춘 것을 알 수 있습니다.</p>

<h2 id="공개-벤치마크-fp8-대비-정확도">공개 벤치마크: FP8 대비 정확도</h2>

<p><img src="/assets/images/nvidia-glm-5-2-nvfp4-results.png" alt="FP8 기준선과 NVFP4의 벤치마크 점수 비교 막대 그래프" />
<em>nvidia/GLM-5.2-NVFP4 모델카드의 공개 측정치입니다. 기준선은 GLM-5.2-FP8입니다.</em></p>

<p>NVIDIA가 모델카드에 공개한 정확도 비교는 아래와 같습니다. 기준선은 BF16이 아니라 한 단계 압축된 <code class="language-plaintext highlighter-rouge">GLM-5.2-FP8</code>이라는 점이 특징입니다. 즉 “압축 안 한 원본 대비”가 아니라 “이미 8비트로 줄인 버전 대비 4비트가 얼마나 손해인가”를 묻는, 더 까다로운 비교입니다.</p>

<table>
  <thead>
    <tr>
      <th>벤치마크</th>
      <th>baseline (FP8)</th>
      <th>NVFP4</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>GPQA Diamond</td>
      <td>89.52</td>
      <td>89.39</td>
    </tr>
    <tr>
      <td>SciCode</td>
      <td>49.85</td>
      <td>49.04</td>
    </tr>
    <tr>
      <td>IFBench</td>
      <td>74.95</td>
      <td>75.81</td>
    </tr>
    <tr>
      <td>AA-LCR</td>
      <td>69.38</td>
      <td>70.13</td>
    </tr>
    <tr>
      <td>τ²-Bench Telecom</td>
      <td>97.9</td>
      <td>98.25</td>
    </tr>
  </tbody>
</table>

<p>측정 조건은 temperature 1.0, top_p 0.95이며, GPQA Diamond는 max_new_tokens 100000, 나머지는 64000을 사용했습니다. AA-LCR은 SGLang으로, 나머지는 vLLM으로 측정되었습니다. 다섯 개 벤치마크는 각각 대학원 수준 과학 추론(GPQA Diamond, 448문항), 과학 코딩(SciCode), 지시 따르기(IFBench), 긴 컨텍스트 회상(AA-LCR), 에이전트 도구 사용(τ²-Bench Telecom)을 평가합니다.</p>

<p>결과를 보면 GPQA(−0.13)와 SciCode(−0.81)에서는 소폭 하락했지만, IFBench(+0.86), AA-LCR(+0.75), τ²-Bench Telecom(+0.35)에서는 오히려 NVFP4가 더 높습니다. 4비트가 8비트를 이기는 것이 직관에 어긋나 보일 수 있지만, 이 정도 차이는 양자화 손실이라기보다 샘플링 분산 범위 안의 잡음으로 보는 편이 안전합니다. 핵심 메시지는 “FP8을 4비트로 한 번 더 줄여도 정확도가 사실상 평평하게 유지된다”는 것이며, 이는 앞서 설명한 선택적 양자화 전략의 직접적인 결과입니다.</p>

<h2 id="배포-vllm과-sglang">배포: vLLM과 SGLang</h2>

<p>이 체크포인트는 SGLang과 vLLM 두 런타임을 공식 지원하며, 하드웨어는 NVIDIA Blackwell, 운영체제는 Linux를 요구합니다. NVFP4 텐서 코어가 Blackwell 세대에만 존재하기 때문에, 이전 세대 GPU에서는 이 4비트 경로를 그대로 활용할 수 없다는 점이 중요한 제약입니다. 모델카드가 제시하는 SGLang 서빙 명령은 다음과 같습니다.</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip <span class="nb">install</span> <span class="nt">-U</span> <span class="s2">"transformers&gt;=5.3.0"</span> <span class="o">&amp;&amp;</span> <span class="se">\</span>
python3 <span class="nt">-m</span> sglang.launch_server <span class="se">\</span>
    <span class="nt">--model</span> nvidia/GLM-5.2-NVFP4 <span class="se">\</span>
    <span class="nt">--tensor-parallel-size</span> 8 <span class="se">\</span>
    <span class="nt">--quantization</span> modelopt_fp4 <span class="se">\</span>
    <span class="nt">--tool-call-parser</span> glm47 <span class="se">\</span>
    <span class="nt">--reasoning-parser</span> glm45 <span class="se">\</span>
    <span class="nt">--trust-remote-code</span> <span class="se">\</span>
    <span class="nt">--chunked-prefill-size</span> 131072 <span class="se">\</span>
    <span class="nt">--mem-fraction-static</span> 0.80
</code></pre></div></div>

<p>여기서 읽어야 할 신호가 몇 가지 있습니다. <code class="language-plaintext highlighter-rouge">--tensor-parallel-size 8</code>은 이 모델이 단일 GPU가 아니라 8장으로 구성된 노드를 전제로 한다는 뜻입니다. <code class="language-plaintext highlighter-rouge">--quantization modelopt_fp4</code>는 런타임이 ModelOpt가 생성한 NVFP4 형식을 인식하도록 지정합니다. <code class="language-plaintext highlighter-rouge">--chunked-prefill-size 131072</code>는 1M 컨텍스트를 처리할 때 프리필을 잘라 메모리 급증을 막는 설정이며, 긴 컨텍스트 서빙에서 안정성을 좌우하는 값입니다. <code class="language-plaintext highlighter-rouge">--tool-call-parser glm47</code>과 <code class="language-plaintext highlighter-rouge">--reasoning-parser glm45</code>는 GLM 계열의 도구 호출과 추론 토큰 형식을 파싱하기 위한 옵션으로, 에이전트 워크로드에 그대로 연결됩니다.</p>

<p>메모리 측면을 거칠게 따져보면, 753B를 BF16으로 올릴 경우 약 1.5TB가 필요합니다[추정]. 라우팅 전문가가 파라미터 대부분을 차지하고 이를 4비트로 줄이므로, 실제 가중치 메모리는 대략 3분의 1 수준으로 내려가 8-way 텐서 병렬 단일 노드에 적재할 수 있는 범위로 들어옵니다(커뮤니티 NVFP4 미러 배포본은 약 1.37TB→459GB, 약 3배 수준으로 보고합니다 [추정]). 모델카드가 양자화 전후의 정확한 GB 수치를 명시하지는 않으므로 이 메모리 값에는 <code class="language-plaintext highlighter-rouge">[추정]</code> 표시를 남깁니다. 분명한 사실은 <code class="language-plaintext highlighter-rouge">--tensor-parallel-size 8</code>이라는 명령 자체가 “Blackwell 8장이면 1M 컨텍스트의 753B 추론 모델을 서빙할 수 있다”는 것을 가리킨다는 점입니다.</p>

<h2 id="thakicloud-k8s-aiml-saas-플랫폼-적용-및-시사점">ThakiCloud K8s AI/ML SaaS 플랫폼 적용 및 시사점</h2>

<p>ThakiCloud는 K8s 위에서 Kueue로 GPU를 스케줄링하고 vLLM으로 모델을 서빙하는 멀티테넌트 플랫폼을 운영합니다. 이런 환경에서 <code class="language-plaintext highlighter-rouge">nvidia/GLM-5.2-NVFP4</code> 같은 사전 양자화 프런티어 체크포인트는 세 가지 측면에서 의미가 있습니다.</p>

<p>첫째, <strong>서빙 후보의 폭이 넓어집니다.</strong> 753B급 추론 모델은 보통 자체 호스팅 검토 대상에서 일찌감치 제외되지만, 4비트 양자화로 단일 8-GPU Blackwell 노드에 가중치와 KV 헤드룸이 들어온다면 온프레미스 자체 서빙이 현실적인 선택지로 바뀝니다. Kueue의 ResourceFlavor와 ClusterQueue로 Blackwell 노드 풀을 NVFP4 추론 전용으로 분리하면, 양자화로 확보한 메모리 여유가 곧 동시 처리 테넌트 수로 환산됩니다. 데이터를 외부 API로 내보내기 어려운 고객, 특히 공공·금융처럼 self-hosting과 데이터 주권이 요구되는 환경에서 프런티어 추론 능력을 사내에 두는 것은 그 자체로 경쟁력입니다.</p>

<p>둘째, <strong>양자화 파이프라인을 직접 돌리지 않아도 됩니다.</strong> ModelOpt로 753B를 보정·양자화하는 작업은 그 자체로 상당한 GPU 시간과 엔지니어링을 요구합니다. NVIDIA가 검증한 체크포인트를 그대로 받아 vLLM/SGLang에 올릴 수 있다면, 우리는 양자화 검증이 아니라 멀티테넌트 라우팅, 오토스케일링, 비용 관측에 자원을 집중할 수 있습니다. 다만 ThakiCloud 스킬 시스템에는 이미 Qwen3-MoE 계열을 NVFP4로 양자화하는 사내 워크플로가 있으므로, NVIDIA가 GLM-5.2에 적용한 “전문가만 4비트, 공유 전문가·어텐션은 BF16”이라는 레시피는 우리가 고객 도메인 모델을 직접 양자화할 때 그대로 차용할 일반 패턴이 됩니다.</p>

<p>셋째, <strong>선택적 양자화는 우리 모델 도입 기준에 직접 반영할 만합니다.</strong> 이번 모델이 보여준 “양이 많고 듬성한 곳은 공격적으로, 항상 쓰이는 곳은 보수적으로” 나누는 원칙은, 사내에서 다른 MoE를 양자화할 때 그대로 적용 가능합니다. 단순히 전체를 일괄 4비트로 깎는 대신 공유 전문가·어텐션을 보존하는지를 모델 도입 게이트의 점검 항목으로 둘 수 있습니다. 다만 Blackwell 전용이라는 제약은 우리 GPU 풀 구성과 직결되므로, NVFP4 경로를 쓰려면 Blackwell 노드 확보가 전제라는 점을 도입 로드맵에 명시해야 합니다.</p>

<h2 id="한계-및-반론">한계 및 반론</h2>

<p>가장 큰 한계는 <strong>하드웨어 종속성</strong>입니다. NVFP4 4비트 경로는 Blackwell 텐서 코어를 전제로 하므로, Hopper(H100/H200) 등 이전 세대만 보유한 환경에서는 이 체크포인트의 이점을 그대로 살릴 수 없습니다. “4비트라서 싸다”는 서사는 Blackwell 노드를 이미 확보했거나 확보할 계획이 있을 때에만 성립하며, 오히려 새 자본 지출을 전제로 합니다.</p>

<p>둘째, <strong>벤치마크의 범위</strong>입니다. 모델카드의 정확도 표는 다섯 개 벤치마크에 한정되며, 모두 영어권 추론·코딩·에이전트 과제에 가깝습니다. 한국어를 포함한 다국어 실사용 품질, 그리고 1M 컨텍스트를 끝까지 채웠을 때의 회상 안정성은 공개 표만으로는 단정하기 어렵습니다. 도입 전 우리 도메인 데이터로 BF16/FP8 대비 회귀를 측정하는 별도 평가가 반드시 필요합니다.</p>

<p>셋째, <strong>메모리 수치의 불확실성</strong>입니다. 앞서 적었듯 모델카드는 양자화 전후의 정확한 메모리 GB를 공개하지 않습니다. 이 글의 메모리 추정은 파라미터 수와 양자화 범위에서 역산한 값이므로, 실제 배포 시 KV 캐시와 1M 프리필 버퍼까지 더하면 노드당 실효 메모리는 가중치만의 추정치보다 큽니다. 운영 계획은 가중치 메모리가 아니라 피크 메모리를 기준으로 잡아야 합니다.</p>

<p>넷째, <strong>선택적 양자화의 양면성</strong>입니다. 공유 전문가와 어텐션을 BF16으로 남긴 덕분에 정확도는 지켜졌지만, 그만큼 메모리 절감 폭은 “전부 4비트”보다 작습니다. 즉 이 모델은 “최대 압축”이 아니라 “정확도를 지키는 선에서의 압축”을 택한 것이며, 한 장의 워크스테이션 GPU에 올리려는 극단적 비용 환경이라면 NVFP4가 아니라 더 공격적인 1비트 GGUF 같은 절충이 더 맞습니다(품질은 더 떨어집니다).</p>

<p>정리하면, <code class="language-plaintext highlighter-rouge">nvidia/GLM-5.2-NVFP4</code>는 프런티어급 753B MoE 추론 모델을 정확도 손실 없이 4비트로 끌어내려, Blackwell 8-GPU 노드에서의 자체 서빙을 현실적 선택지로 만든 사례입니다. ThakiCloud 관점에서는 온프레미스·데이터 주권 요구가 있는 고객에게 프런티어 추론을 제공할 카드가 한 장 늘어난 것이며, 동시에 “선택적 양자화”라는 일반 원칙을 우리 모델 도입 기준에 반영할 계기가 됩니다. 다만 그 문은 Blackwell이라는 열쇠가 있어야 열립니다.</p>

<h2 id="출처-sources">출처 (Sources)</h2>

<ul>
  <li><a href="https://huggingface.co/nvidia/GLM-5.2-NVFP4">nvidia/GLM-5.2-NVFP4 · Hugging Face</a></li>
  <li><a href="https://huggingface.co/zai-org/GLM-5.2">베이스 모델 GLM-5.2 (ZAI) · Hugging Face</a></li>
  <li><a href="https://github.com/NVIDIA/Model-Optimizer">NVIDIA Model Optimizer · GitHub</a></li>
  <li><a href="https://huggingface.co/collections/nvidia/inference-optimized-checkpoints-with-model-optimizer">Inference-Optimized Checkpoints with Model Optimizer (컬렉션) · Hugging Face</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="nvfp4" /><category term="quantization" /><category term="vllm" /><category term="sglang" /><category term="glm" /><category term="moe" /><category term="inference-optimization" /><category term="model-optimizer" /><summary type="html"><![CDATA[NVIDIA가 ZAI의 753B MoE 추론 모델 GLM-5.2를 NVFP4(4비트)로 양자화해 Hugging Face에 공개했습니다. 모든 가중치를 일괄로 깎는 대신 MoE 전문가의 선형 연산자만 4비트로 줄이고 공유 전문가와 어텐션은 BF16으로 남기는 선택적 양자화로, FP8 기준선 대비 정확도를 거의 그대로 유지합니다. 양자화 전략과 공개 벤치마크, vLLM/SGLang 배포 명령을 ThakiCloud의 K8s 멀티테넌트 서빙 관점에서 정리합니다.]]></summary></entry></feed>