الفرق بين مهارات الوكيل وMCP وملفات القواعد
تعرف على الفرق بين مهارات الوكيل وخوادم MCP وملفات القواعد في برمجة الذكاء الاصطناعي. اكتشف تكلفة كل خيار من حيث الرموز واستهلاك السياق لتختار الأنسب لمشروعك البرمجي.
مهارات الوكيل (Agent skills) مقابل خوادم MCP مقابل ملفات القواعد: الإجابة المختصرة
تضع مهارات الوكيل وخوادم MCP وملفات القواعد المعرفة أمام وكيل البرمجة. اختر الآلية المناسبة بناءً على وظيفة هذه المعرفة. بروتوكول سياق النموذج (MCP) مخصص للبيانات التي قد تتغير في المرة القادمة التي تطلع فيها عليها. أما المهارة فهي مخصصة للإجراءات التي يمكنك تدوينها اليوم وتظل صحيحة بعد ستة أسابيع. بينما ملف القواعد مخصص للحقائق القليلة التي يجب أن تظل ثابتة في كل جلسة.
لهذا الاختيار تكلفة، وتلك التكلفة هي السياق (context). كل رمز (token) يُنفق على تعليمات لا يحتاجها الوكيل هو رمز غير متاح للكود الذي يقرأه. كما أنك تدفع ثمن هذا الرمز مجدداً في كل دورة، لأن نافذة السياق بأكملها تُرسل من جديد مع كل طلب. لذا، السؤال المفيد ليس أي آلية يمكنها إنجاز المهمة؛ ففي معظم الأيام، يمكن للآليات الثلاث القيام بذلك. السؤال هو أيها الأقل تكلفة أثناء حالة الخمول.
تكلفة كل منها قبل استخدامه
تُحمَّل هذه العناصر الثلاثة في لحظات مختلفة، وهذا التوقيت هو جوهر الاختلاف.
يُحمَّل ملف القواعد بالكامل عند التشغيل في كل جلسة، سواء كان ذا صلة أم لا. يقرأ Claude Code ملف CLAUDE.md في بداية كل محادثة ويحمّله بالكامل بغض النظر عن طوله. الهدف الموثّق هو أقل من 200 سطر لكل ملف، لأن الملف الأطول يستهلك مساحة أكبر من السياق ويقلّ الالتزام به. هذان التأثيران يدفعان في نفس الاتجاه، ولهذا السبب يكون ملف القواعد المكون من 900 سطر أسوأ من كونه عديم الفائدة.
تُحمَّل المهارة على مرحلتين. عند بدء التشغيل، يدخل سطر description فقط من كل SKILL.md في الترويسة (frontmatter) إلى السياق، ليعرف النموذج وجود المهارة وتوقيت تطبيقها تقريباً. أما متن المهارة فيُحمَّل عند استدعائها. لذا، فإن مستنداً مرجعياً مكوناً من 400 سطر لا يكلّفك شيئاً تقريباً حتى لحظة الحاجة إليه.
كان خادم MCP هو الأكثر تكلفة في السابق، وهنا تكمن النقطة التي تجعل معظم المقارنات التي تقرؤها حالياً قديمة. ميزة البحث عن الأدوات (Tool search) مفعّلة افتراضياً في إصدار Claude Code الحالي. لا تُحمَّل عند بدء الجلسة سوى أسماء الأدوات وحقل تعليمات الخادم، بينما يتم تأجيل تحميل مخططات JSON (ترميز كائنات JavaScript) الكاملة حتى يبحث عنها Claude. لم تعد إضافة خادم تكلّف آلاف الرموز (tokens) مقدماً. لا تزال هناك تكلفة، ولا تزال التكلفة تُدفع بالكامل مقدماً في الإعدادات التي تكون فيها ميزة البحث عن الأدوات معطّلة.
The data behind this chart
[
{
"label": "Rules file, 200 lines",
"at_startup": "2,500",
"after_use": "2,500"
},
{
"label": "Skill, 12 KB body",
"at_startup": 40,
"after_use": "3,000"
},
{
"label": "MCP server, tool search on",
"at_startup": 500,
"after_use": "3,200"
},
{
"label": "MCP server, tool search off",
"at_startup": "4,500",
"after_use": "4,500"
}
]هذه تقديرات وليست قياسات من جهازك. وهي مستمدة من حجم النص الذي تحمّله كل آلية، بمعدل أربعة أحرف تقريباً لكل رمز: ملف قواعد من 200 سطر يبلغ حجمه حوالي 10 KB من Markdown، ووصف المهارة يبلغ حوالي 160 حرفاً، والخادم الذي يعرض اثنتي عشرة أداة يحمل حوالي 18 KB من المخططات بالإضافة إلى كتلة تعليمات بحجم 2 KB. يقوم Claude Code باقتطاع وصف كل أداة وحقل تعليمات كل خادم عند 2 KB، لذا فإن هذا الجزء له سقف محدد. يوضح لك القسم التالي كيفية قراءة أرقامك الحقيقية.
اقرأ الصفين الأولين معاً. يكلّف ملف القواعد 2,500 رمزاً في جلسة لم يحتج فيها أحد إليه. وتكلّف المهارة 40 رمزاً في نفس الجلسة، و3,000 في الجلسة الواحدة من أصل عشر جلسات التي يتم فيها تشغيلها. الصفان الأخيران يمثلان نفس الخادم مرتين، مع تفعيل وتعطيل البحث عن الأدوات: 500 رمزاً مقابل 4,500. هذه الفجوة هي السبب في استمرار تداول النصائح القديمة حول تضخم سياق MCP.
يحتاج البحث عن الأدوات إلى نموذج يدعم كتل tool_reference، وهو ما يعني اعتباراً من أغسطس 2026 كلاً من Claude Sonnet 4.5 وHaiku 4.5 وOpus 4.5 وما بعدها. يعطّل Claude Code هذه الميزة عندما يشير ANTHROPIC_BASE_URL إلى مضيف ليس من الطرف الأول، لأن معظم الوكلاء (proxies) لا يمررون تلك الكتل. اضبط ENABLE_TOOL_SEARCH للتحكم في ذلك: false يحمّل كل مخطط مقدماً، وtrue يؤجل تحميلها جميعاً، وauto يحمّلها مقدماً فقط عندما تتناسب مع 10% من نافذة السياق.
# Load schemas up front only if they fit in 5% of the window
ENABLE_TOOL_SEARCH=auto:5 claudeالسؤال الحاسم: هل تتغير البيانات بين مرات الاستدعاء؟
اطرح هذا السؤال أولاً، لأنه يستبعد خياراً واحداً بشكل قاطع. إذا كان الوكيل يحتاج إلى قراءة أو كتابة شيء قد يختلف في المرة التالية التي ينظر فيها، فأنت بحاجة إلى خادم. مثل نظام تتبع المشكلات، أو قاعدة بيانات، أو لوحة تحكم للمراقبة، أو واجهة برمجة تطبيقات (API) داخلية خاصة بك. تدوين البيانات لا يساعد، لأن ما كتبته يصبح قديماً بمجرد أن يقوم شخص آخر بتعديل السجل. تندرج قاعدة الأكواد البرمجية الخاصة بك ضمن هذه القائمة أيضاً، لأن هيكلها يتغير مع كل عملية commit، وهذا هو السبب وراء تزويد الوكيل بخريطة محللة للمستودع عبر MCP بدلاً من وصف التخطيط في ملف يتقادم مع الوقت.
إذا كانت الإجابة ستظل صحيحة بعد ستة أسابيع دون أن يقوم أحد بصيانتها، فأنت بحاجة إلى مهارة (skill). مثل قائمة مراجعة الإصدار. أو إجراء الترحيل. أو شكل استجابات الخطأ الخاصة بك. أو الطريقة التي يفضل هذا المستودع كتابة الاختبارات بها. المهارة هي ملف في git. ليس لها منفذ، ولا عملية، ولا نمط فشل سوى أن تكون خاطئة، وهو أمر يمكن لمراجعة الكود اكتشافه.
إذا كانت حقيقة واحدة يجب أن تنطبق على عمل لم تفكر فيه بعد، ضعها في ملف القواعد (rules file). Run make lint before committing. Never push to main. Handlers live in src/api/handlers/. سطر واحد لكل منها. في اللحظة التي يتحول فيها الإدخال إلى خطوات، فإنه يتوقف عن كونه حقيقة ويصبح إجراءً، ويجب نقله إلى مهارة.
عندما يكون ملف القواعد كافياً
تُحمَّل ملفات القواعد من عدة أماكن، من الأكثر عمومية إلى الأكثر تخصيصاً: ملف سياسة مُدار، ملف ~/.claude/CLAUDE.md الشخصي الخاص بك، ملف ./CLAUDE.md أو ./.claude/CLAUDE.md الخاص بالمشروع، وملف ./CLAUDE.local.md المستثنى من git. تُدمج جميع الملفات المكتشفة بدلاً من أن يحل أحدها محل الآخر، وتُقرأ الملفات الأقرب إلى دليل عملك الحالي في النهاية.
يقرأ Claude Code ملف CLAUDE.md، وليس AGENTS.md. إذا كان مستودعك يحتوي بالفعل على AGENTS.md لأدوات أخرى، فلا تحتفظ بنسختين قد تختلفان عن بعضهما بمرور الوقت.
ln -s AGENTS.md CLAUDE.mdلا يطبع الرابط الرمزي (symlink) أي شيء عند النجاح. ابدأ جلسة، ونفّذ /context، وتأكد من ظهور CLAUDE.md تحت Memory files. إذا لم يكن مدرجاً هناك، فهذا يعني أن الوكيل لم يره قط ولن تجدي أي إعادة صياغة نفعاً. عندما ترغب أيضاً في إضافة أسطر خاصة بـ Claude، استخدم صيغة الاستيراد (import) وضعها أسفل الاستيراد.
@AGENTS.md
## Claude Code
Use plan mode for changes under `src/billing/`.هناك فخ واحد هنا. استيرادات @path لا تحفظ السياق. يتم توسيع الملف المستورد وتحميله عند التشغيل جنباً إلى جنب مع الملف الذي أشار إليه، حتى أربع مستويات عمقاً. تقسيم ملف قواعد مكون من 600 سطر إلى ستة استيرادات ينظمه للبشر ولا يغير تكلفة الرموز (tokens) بمقدار أي شيء على الإطلاق. تجدر قراءة الاتفاقيات الكامنة وراء AGENTS.md وتوأمه الموجه للبشر قبل الاستقرار على تخطيط معين.
ما يقلل التكلفة فعلياً هو .claude/rules/ مع حقل paths. يتم تحميل ملف القواعد الذي يحمل ترويسة paths فقط عندما يلمس الوكيل ملفاً يطابق أحد الأنماط.
---
paths:
- "src/api/**/*.ts"
---
# API rules
- Every endpoint validates its input.
- Use the standard error response shape.يتم تحميل القاعدة التي لا تحتوي على حقل paths عند التشغيل بنفس أولوية .claude/CLAUDE.md. لذا، فإن نمط العمل الفعال هو استخدام قواعد قصيرة غير مشروطة، بالإضافة إلى قائمة paths لأي شيء يهم فقط داخل دليل واحد.
عندما ترغب في إضافة مهارة
المهارة هي عبارة عن دليل يحتوي على ملف SKILL.md بداخله. توجد المهارات الشخصية في المسار ~/.claude/skills/<name>/SKILL.md وتُطبّق على كل مشروع على جهازك. أما مهارات المشروع فتوجد في .claude/skills/<name>/SKILL.md، وتنتقل مع المستودع، ويمكن مراجعتها في طلب سحب (pull request) مثل أي ملف آخر.
mkdir -p ~/.claude/skills/summarize-changes---
name: summarize-changes
description: Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff.
---
Run `git status` and `git diff` against the merge base.
Group the changes by intent, not by file.
Call out anything touching auth, migrations or deletions.يُعد description الجزء الوحيد من ذلك الملف الذي يظهر في السياق قبل تشغيل المهارة، لذا فهو يؤدي وظيفتين. فهو يحدد ما تفعله المهارة، ويحدد متى يجب استخدامها. إذا كان الوصف هو "يساعد في عمليات النشر"، فلن يجد النموذج ما يطابقه مع الطلب، وبالتالي لن تعمل المهارة بصمت، وستستنتج أنت أن المهارات لا تعمل.
يصبح اسم الدليل هو الأمر، لذا فإن المثال أعلاه يمنحك /summarize-changes. في المهارات الشخصية أو مهارات المشروع، يحدد الـ frontmatter في name تسمية العرض فقط في القوائم.
بعد استدعاء مهارة، يدخل محتواها المُنسَّق إلى المحادثة كرسالة واحدة، ويبقى فيها طوال الجلسة. لا يعيد Claude Code قراءة الملف في الأدوار اللاحقة. اكتب تعليمات مستمرة بدلاً من خطوات تُنفَّذ مرة واحدة، واجعل النص موجزاً، لأن كل سطر يصبح منذ تلك النقطة تكلفة متكررة مع كل طلب. بعد الضغط التلقائي للسياق، يعيد Claude Code إرفاق أحدث استدعاء لكل مهارة، مع الاحتفاظ بأول 5,000 token من كل مهارة ضمن ميزانية مشتركة قدرها 25,000 token. عند استدعاء عدة مهارات كبيرة في جلسة واحدة، تُحذف الأقدم بالكامل. لذلك قد تبدو المهارة كأنها لم تعد مؤثرة بعد محادثة طويلة. استدعِها مرة أخرى فتعود. توضّح المهارة التي تتضمن إجراءات كثيرة هذه المفاضلة: تنفق مهارة unlazy وطريقة شجرة العمق جزءاً فعلياً من السياق على بوابات التحقق وملف خطة، مقابل وكيل يتوقف عن إعلان اكتمال العمل قبل أوانه. عندما ينطبق الإجراء نفسه على أكثر من قاعدة شيفرة، شارك مهارة واحدة بين عدة مستودعات بدلاً من نسخ الملف بينها.
متى تحتاج إلى خادم MCP
تعد إضافة خادم عملية تتطلب أمراً واحداً فقط، ويحدد بروتوكول النقل شكل هذا الخادم.
# Remote HTTP server
claude mcp add --transport http notion https://mcp.notion.com/mcp
# Remote HTTP server behind a bearer token
claude mcp add --transport http secure-api https://api.example.com/mcp \
--header "Authorization: Bearer your-token"
# Local stdio server: everything after -- is passed through untouched
claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
-- npx -y airtable-mcp-serverيعد -- أمراً جوهرياً. بالنسبة لخادم يعمل عبر stdio، فإنه يفصل خيارات Claude Code الخاصة عن سطر الأوامر الذي يشغل خادمك. إذا أغفلته، سيتم تحليل --port 8080 المخصص للخادم كخيار لـ claude mcp add، والذي سيرفضه بدوره.
claude mcp list
claude mcp get notionيؤكد claude mcp add العملية عبر سطر Added ...، والذي يخبرك فقط بأنه تمت كتابة الإعدادات على القرص. claude mcp list هو الأمر الذي يخبرك بالحقيقة، لأنه يعرض حالة السلامة بجانب كل خادم: ✔ Connected، أو ! Needs authentication، أو ✘ Failed to connect. تعني حالة الفشل أن Claude Code لم يتمكن من الوصول إلى ذلك الخادم، وليس أن أمر القائمة قد تعطل. داخل الجلسة، يعطي /mcp نفس العرض لكل خادم بالإضافة إلى عدد الأدوات المتاحة.
كل استدعاء لخادم MCP مستقل بذاته ويحمل كل ما يحتاجه، وهذا هو سبب عدم تذكر خادم MCP لطلبك السابق. هذا خيار تصميمي يترتب عليه نتيجة تتحملها أنت: أي حالة تستحق الاحتفاظ بها يجب أن توجد خلف الخادم، في قاعدة بيانات أو ملف، وهذا هو الشيء الذي أصبحت تديره الآن.
خادم MCP هو عملية يجب عليك تشغيلها
هذه هي التكلفة التي تغفلها مقارنات البائعين. المهارة (skill) هي مجرد ملف. أما خادم MCP فهو برنامج يعمل في مكان ما، وعندما يكون هذا المكان هو خادمك الافتراضي الخاص (VPS)، فأنت المسؤول عن استمرارية عمله.
خادم stdio هو الحالة الأقل تكلفة. يقوم Claude Code بإنشائه كعملية فرعية عند بدء الجلسة، وينتهي بانتهاء الجلسة. لا شيء يستدعي المراقبة، ولا شيء يحتاج إلى تحديث وفق جدول زمني مستقل. أما خادم HTTP البعيد فهو خدمة طويلة الأمد، ويحتاج إلى ما تحتاجه أي خدمة من هذا النوع.
[Unit]
Description=Notes MCP server
After=network-online.target
Wants=network-online.target
[Service]
User=mcp
WorkingDirectory=/srv/notes-mcp
ExecStart=/usr/bin/node /srv/notes-mcp/dist/server.js
Environment=PORT=8931
Restart=on-failure
RestartSec=5
NoNewPrivileges=true
PrivateTmp=true
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now notes-mcp
systemctl is-active notes-mcp
journalctl -u notes-mcp -n 50 --no-pagerيجب أن يطبع systemctl is-active المخرج active. إذا طبع failed، فإن السجلات (journal) تحتوي على السبب، وفي التشغيل الأول يكون السبب غالباً متغيراً بيئياً مفقوداً أو منفذاً مشغولاً بواسطة عملية أخرى. استخدام Restart=on-failure ليس اختيارياً هنا، لأن خادم MCP الذي يتعطل لا يعلن عن نفسه. ستكتشف ذلك فقط عندما يخبرك الوكيل (agent) بأنه لا يستطيع قراءة نظام تتبع المشكلات الخاص بك.
اربط العملية بـ 127.0.0.1 وضع خادماً عكسياً (reverse proxy) مع TLS (أمن طبقة النقل) أمامه. خادم MCP يصل إلى قاعدة بياناتك ويستجيب على منفذ عام دون مصادقة هو بمثابة قاعدة بيانات نشرتها للعموم. يغطي الرابط تشغيل خادم MCP على خادم VPS جوانب الوكيل والشهادة وجدار الحماية بشكل صحيح.
بعد ذلك، احسب العمل المتكرر بصدق. تتلقى الخدمة تحديثات أمنية وفق جدولها الخاص، بمعزل عن الوكيل الذي يتحدث معها. تنتهي صلاحية رمز OAuth الخاص بها، ويبدأ claude mcp list بطباعة ! Needs authentication في وقت غير مناسب. توجد بيانات الاعتماد في ملف إعداد أو ترويسة Authorization، لذا فهي تحتاج إلى نفس العناية التي تتطلبها أي أسرار أخرى، وهو موضوع مستقل بذاته: إبقاء الأسرار بعيداً عن متناول وكيل الذكاء الاصطناعي. لا وجود لأي من هذا العمل في حالة المهارات (skills).
وازن بين هذا وبين البديل قبل أن تبدأ في البناء. إذا كانت البيانات التي يعتمد عليها الخادم المقترح تتغير مرة كل ربع سنة تقريباً، فإن المهارة التي تخبر الوكيل بمكان البحث وما تعنيه الحقول هي أقل تكلفة من خدمة يجب عليك إبقاؤها تعمل باستمرار.
كيفية قياس تكلفة السياق الخاصة بك
توقف عن التخمين وشغّل /context داخل الجلسة. سيطبع الأمر تفاصيل بدء التشغيل: مطالبة النظام (system prompt)، وملفات الذاكرة، والأدوات، وخوادم MCP، مع وزن الرموز (token weight) لكل منها.
تحقق من أمرين. ضمن ملفات الذاكرة (Memory files)، تأكد من إدراج كل ملف قواعد تتوقعه. الملف المفقود غير مرئي للوكيل، لذا فهذا هو أول شيء يجب استبعاده عندما يتم تجاهل التعليمات. إذا كان الملف مدرجاً ولا تزال القاعدة تُتجاهل، فإن السبب يكمن في مكان آخر تماماً، ويجدر بك مراجعة الأسباب التي تجعل الوكيل يتجاهل تعليمات يمكنه رؤيتها قبل إعادة كتابة السطر مرة أخرى. بعد ذلك، انظر إلى تكلفة خوادمك. إذا كان أحد الخوادم التي تستخدمها مرتين في الشهر يمثل أحد أكبر البنود في تلك القائمة، فأوقفه في /mcp وأعد تشغيله فقط للجلسات التي تحتاجه. يتم الاحتفاظ بالإعدادات في كلتا الحالتين.
يمكن للخادم البعيد أيضاً الإبلاغ عن حالة مثل cached 2h ago · connects on first use · 5 tools. هذا يعني أن Claude Code قرأ قائمة الأدوات من جلسة سابقة بدلاً من الاتصال عند بدء التشغيل، وسيقوم بالاتصال في المرة الأولى التي يتم فيها استدعاء أداة ما. الأدوات متاحة منذ رسالتك الأولى، لذا لا يوجد شيء يحتاج إلى إصلاح. اضبط MCP_DISCOVERY_CACHE=0 إذا كنت تفضل اتصال كل خادم عند بدء التشغيل. للحصول على صورة أوسع، يغطي إدارة نافذة سياق Claude Code ما يتبقى بعد الضغط، ويقوم ما تكلفك تلك الرموز فعلياً بتحويل الأرقام إلى مبالغ مالية.
لماذا لا يتم تفعيل مهارتي أبداً؟
السبب المعتاد هو description. إنه النص الوحيد في السياق قبل تشغيل المهارة، لذا إذا لم يحدد الحالة، فلن يطابق أي شيء. اكتب المشغّل (trigger) داخل الجملة: "استخدمه عندما يسأل المستخدم عما تغير، أو يريد رسالة commit، أو يطلب مراجعة diff الخاص به." الأوصاف الغامضة تفشل بصمت، مما يجعل من الصعب ملاحظة ذلك.
السبب الثاني هو خطأ مطبعي في الـfrontmatter، وهذا الخطأ يكون واضحاً. يتم رفض أي مفتاح غير معروف مباشرة:
Unexpected key(s) in SKILL.md frontmatter: argument-hint. Allowed properties are: allowed-tools, compatibility, description, license, metadata, nameالسبب الثالث هو الموقع. يتم تحميل مهارات المشروع من .claude/skills/ في دليل العمل الخاص بك وفي كل دليل أب وصولاً إلى جذر المستودع. المهارات الموجودة في الأدلة المتداخلة أسفل المكان الذي بدأت منه لا يتم تحميلها عند التشغيل. تظهر هذه المهارات في المرة الأولى التي يقرأ فيها الوكيل ملفاً أو يعدله داخل ذلك الدليل الفرعي، لذا فهي لا تظهر في الإكمال التلقائي ولا يمكن استدعاؤها بالاسم حتى ذلك الحين.
المكافئ لـ MCP لهذا الفشل الصامت هو إدخال .mcp.json مع url وبدون type. يقرأ Claude Code أي إدخال بدون type كخادم stdio، لذا فإنه يتخطى الإدخال ويبلغ عن:
MCP server "notes" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entryاستخدام الآليات الثلاث معاً
لا تتنافس هذه الآليات على نفس الدور. الإعداد الناجح هو الذي يستخدم كل آلية حيث تكون تكلفتها منخفضة. يحتوي ملف القواعد على بضعة أسطر تنطبق في كل مكان. بينما تحتوي المهارات (Skills) على الإجراءات ولا يتم تحميلها إلا عند الحاجة إليها. أما خادم MCP واحد، أو خادمين في بعض الأحيان، فيربط الأنظمة التي لا يمكنك التنبؤ بمحتوياتها مسبقاً. إذا كنت لا تزال تبني تصورك الذهني عن الآلية الأولى، فإن ماهية مهارة الوكيل فعلياً تغطي التنسيق بالتفصيل.
هناك اختبار واحد يحسم معظم الجدالات حول مكان وضع أي شيء. احذفه، وابدأ جلسة جديدة، ثم امنح الوكيل المهمة. إذا كان الوكيل أبطأ فقط، فمكانه في المهارات. إذا كان الوكيل واثقاً من إجابة خاطئة، فمكانه في ملف القواعد. إذا كان الوكيل عاجزاً عن الحصول على المعلومات تماماً، فأنت بحاجة إلى الخادم، والآن تحتاج أيضاً إلى خطة للحفاظ على عمل ذلك الخادم.
FAQ
هل يجب عليّ كتابة مهارة (skill) أم تشغيل خادم MCP؟
يعتمد القرار على ما إذا كانت المعلومات تتغير بين استدعاء وآخر. إذا كان على الوكيل قراءة حالة مباشرة يمكن لأي شخص تعديلها، مثل نظام تتبع المشكلات أو قاعدة بيانات أو لوحة تحكم، فأنت بحاجة إلى خادم MCP، لأن أي شيء تكتبه سيصبح قديماً بمجرد تغير السجل. أما إذا كان بإمكانك كتابة الإجابة مرة واحدة وتظل صحيحة بعد ستة أسابيع، فاكتب مهارة. المهارة هي ملف في git لا يتطلب عملية للتشغيل، ولا منفذاً للكشف عنه، ولا جدولاً للتصحيح، لذا فهي الخيار الأقل تكلفة كلما كان ذلك ممكناً.
هل لا تزال خوادم MCP تستهلك نافذة السياق الخاصة بي؟
بدرجة أقل بكثير مما كانت عليه في السابق. تم تفعيل ميزة البحث عن الأدوات افتراضياً في إصدار Claude Code الحالي، لذا يتم تحميل أسماء الأدوات وحقل تعليمات الخادم فقط عند بدء الجلسة، بينما يتم جلب المخططات الكاملة عندما يبحث Claude عنها. لا يزال التحميل المسبق يحدث عند إيقاف البحث عن الأدوات: مع ENABLE_TOOL_SEARCH=false، أو مع ANTHROPIC_BASE_URL الموجه إلى وكيل (proxy) ليس من الطرف الأول، أو عند استخدام نموذج أقدم من جيل Claude 4.5. شغّل /context لمعرفة الحالة التي أنت فيها، لأن الأرقام الواردة في منشورات المقارنة القديمة تفترض التحميل المسبق.
هل يقرأ Claude Code ملف AGENTS.md؟
لا. يقرأ Claude Code ملف CLAUDE.md. إذا كان مستودعك يحتوي بالفعل على AGENTS.md لوكلاء آخرين، فقم بتوجيه أحدهما إلى الآخر بدلاً من الاحتفاظ بنسختين. شغّل ln -s AGENTS.md CLAUDE.md لإنشاء رابط رمزي (symlink) بسيط، أو ضع @AGENTS.md في السطر الأول من CLAUDE.md وأضف تعليمات خاصة بـ Claude أسفله. بعد ذلك، ابدأ جلسة وشغّل /context للتأكد من ظهور CLAUDE.md ضمن ملفات الذاكرة (Memory files).
لماذا توقفت مهارتي عن التأثير في منتصف الجلسة؟
الضغط التلقائي (Auto-compaction) هو السبب المعتاد. عند تلخيص المحادثة، يقوم Claude Code بإعادة إرفاق أحدث استدعاء لكل مهارة، مع الاحتفاظ بأول 5,000 رمز (token) من كل منها، ضمن ميزانية إجمالية قدرها 25,000 رمز عبر جميع المهارات. يتم ملء هذه الميزانية بدءاً من المهارة التي تم استدعاؤها مؤخراً، لذا إذا استدعيت عدة مهارات كبيرة، فسيتم إسقاط المهارات الأقدم تماماً. استدعِ المهارة مرة أخرى لاستعادة محتواها الكامل.
كيف أمنع تحميل ملف قواعد طويل في كل جلسة؟
انقل الأجزاء التي تهمك في بعض الأحيان فقط إلى ملفات .claude/rules/ مع حقل paths في ترويستها (frontmatter)، بحيث يتم تحميل كل منها فقط عندما يلمس الوكيل ملفاً مطابقاً. تقسيم الملف إلى استيرادات @path لا يساعد، لأن الملفات المستوردة يتم توسيعها وتحميلها عند الإطلاق جنباً إلى جنب مع الملف الذي أشار إليها. أي شيء يمثل إجراءً متعدد الخطوات بدلاً من حقيقة ثابتة يجب أن يصبح مهارة بدلاً من ذلك، حيث إن محتوى المهارة لا يكلف شيئاً حتى يتم استدعاؤها.