مرجع نظام الأدوات
مرجع شامل لنظام الأدوات في Verdent
ماذا ستتعلم
مرجع شامل لنظام الأدوات المدمج في Verdent، يشمل عمليات الملفات، وقدرات البحث، وتنفيذ الأوامر، وأدوات التكامل.
نظرة عامة على الأدوات المتاحة
يوفر Verdent for VS Code مجموعة أدوات شاملة للتعامل مع الكود والتنقل فيه والتفاعل مع الأنظمة الخارجية.
| الأداة | الغرض | القدرات الأساسية |
|---|---|---|
file_read | قراءة محتوى الملفات | تدعم نطاقات الأسطر للملفات الكبيرة، وتعمل مع جميع صيغ النصوص |
file_edit | تعديلات دقيقة ومحددة | استبدال تطابقات نصية دقيقة، تعديلات متعددة، الحفاظ على التنسيق |
file_write | إنشاء ملفات جديدة أو استبدالها | إنشاء/استبدال كامل للملف، يتعامل مع المحتوى النصي |
| الأداة | الغرض | القدرات الأساسية |
|---|---|---|
glob | البحث عن الملفات حسب النمط | أنماط glob (**/*.ts)، أنماط الاستبعاد، تحديد عدد النتائج |
grep_content | البحث في المحتوى مع السياق | دعم التعبيرات النمطية regex، أسطر السياق، خيارات عدم حساسية حالة الأحرف |
grep_file | سرد الملفات المطابقة | تحديد الملفات بسرعة قبل قراءة محتواها |
list_dir | هيكل المجلدات | عرض التسلسل الهرمي، أنماط الاستبعاد، التحكم في العمق |
| الأداة | الغرض | القدرات الأساسية |
|---|---|---|
bash | تنفيذ أوامر shell | تهيئة المهلة الزمنية، أوصاف ملخصة، تسلسل الأوامر |
spawn_subagent | التفويض للمتخصصين | تشغيل وكلاء فرعيين عامين أو استكشافيين أو للتحقق أو لمراجعة الكود |
todo_update | تتبع تقدم المهام | إدارة قوائم المهام، تحديث الحالة، تتبع التقدم |
| الأداة | الغرض | القدرات الأساسية |
|---|---|---|
web_search | البحث في الإنترنت | تنفيذ الاستعلامات، التحكم في عدد النتائج، تصفية حسب الحداثة |
web_fetch | جلب الصفحات وتحليلها | استرجاع المحتوى، استخراج المعلومات باستعلامات محددة |
قدرات الأدوات وحالات الاستخدام
file_read
القدرات:
- قراءة محتوى الملف كاملًا أو نطاقات أسطر محددة
- ضروري لفهم الكود قبل إجراء التعديلات
- تعامل فعّال مع الملفات الكبيرة عبر تحديد النطاق
حالات الاستخدام:
- قراءة ملفات التهيئة قبل التعديل
- فهم أنماط التنفيذ الحالية
- مراجعة ملفات الاختبار لفهم التغطية
مثال:
# Read entire file
file_read("src/components/Button.tsx")
# Read specific range for large files
file_read("package-lock.json", start_line=1, max_lines=50)file_edit
القدرات:
- استبدال نصي دقيق باستخدام تطابق سلاسل نصية مطابق تمامًا
- عمليات استبدال متعددة باستخدام علم
multiple - الحفاظ على هيكل الملف وتنسيقه
حالات الاستخدام:
- تحديث تنفيذ الدوال
- تعديل قيم التهيئة
- إعادة تسمية المتغيرات عبر الملفات
أفضل ممارسة: استخدمها للتعديلات المحددة والدقيقة. للإعادة الكتابة الكاملة، استخدم file_write بدلًا من ذلك.
file_write
القدرات:
- إنشاء ملفات جديدة من الصفر
- استبدال محتوى الملفات الحالية بالكامل
- التعامل مع أي صيغة نصية
حالات الاستخدام:
- إنشاء مكونات أو وحدات جديدة
- إنشاء ملفات التهيئة
- كتابة ملفات الاختبار
تحذير: يستبدل الملفات الحالية بالكامل. استخدم file_edit للتعديلات الجزئية.
glob
القدرات:
- البحث عن الملفات المطابقة للأنماط:
**/*.ts،src/**/*.js - التصفية حسب مسار المجلد
- استبعاد الأنماط لتضييق النتائج
- التحكم في عدد النتائج
حالات الاستخدام:
- إيجاد جميع المكونات في المشروع
- تحديد موقع ملفات الاختبار
- تحديد ملفات التهيئة عبر المجلدات
أنماط مثال:
**/*.tsx # All TypeScript React files
src/**/*.test.js # All test files in src
**/config.* # All config files anywheregrep_content
القدرات:
- البحث في محتوى الملفات باستخدام أنماط regex
- عرض أسطر السياق قبل/بعد المطابقات (العلمان
-B،-A) - البحث بدون حساسية لحالة الأحرف
- التصفية حسب نوع الملف باستخدام أنماط glob
حالات الاستخدام:
- إيجاد تعريفات الدوال
- تحديد موقع تنفيذ نقاط نهاية API
- البحث عن رسائل خطأ محددة
- تحديد أنماط الأمان
مثال:
# Find authentication-related code
grep_content("auth.*login", glob="**/*.ts")
# Search with context
grep_content("TODO", glob="src/**", context_before=2, context_after=2)grep_file
القدرات:
- سرد الملفات التي تحتوي على مطابقات للنمط
- أسرع من
grep_contentعندما تحتاج فقط إلى مواقع الملفات - دعم أنماط regex
- تصفية glob لأنواع الملفات
حالات الاستخدام:
- تحديد الملفات التي تحتاج إلى إعادة هيكلة
- إيجاد الملفات التي تستورد وحدات محددة
- تحديد موقع الملفات التي تحتوي على أنماط قديمة
أفضل ممارسة: استخدم grep_file أولًا لتحديد الملفات ذات الصلة، ثم file_read للفحص التفصيلي.
list_dir
القدرات:
- عرض التسلسل الهرمي للمجلدات
- التحكم في العمق باستخدام معامل
max_depth - أنماط الاستبعاد لتصفية المخرجات
حالات الاستخدام:
- فهم هيكل المشروع
- التحقق من تنظيم المجلدات
- إيجاد مجلدات فرعية محددة
bash
القدرات:
- تنفيذ أوامر shell
- الحد الأقصى للمهلة الزمنية: 120 ثانية (دقيقتان، حد صارم)
- تسلسل الأوامر باستخدام
&&للاعتماديات - تقديم ملخصات وصفية للوضوح
حالات الاستخدام:
- تشغيل الاختبارات
- بناء المشاريع
- تثبيت التبعيات
- عمليات Git
- عمليات ترحيل قواعد البيانات
مثال:
# Run tests
bash("npm test", timeout=60000, summary="Run Jest test suite")
# Chain dependent commands
bash("npm install && npm run build", timeout=120000)الأمان: يتم تنفيذ الأوامر بصلاحيات المستخدم. راجع الأوامر في Manual Accept Mode.
spawn_subagent
القدرات:
- تشغيل وكلاء فرعيين متخصصين بسياقات معزولة
- الأنواع:
explorer،verifier،code-reviewer - تفويض المهام المعقدة دون تلويث السياق الرئيسي
- تنفيذ متوازٍ للوكلاء الفرعيين لتحقيق الكفاءة
حالات الاستخدام:
- الوكيل الفرعي الاستكشافي: البحث في قواعد الكود الكبيرة عن الأنماط
- وكيل التحقق الفرعي: التحقق من صحة منطق التنفيذ
- وكيل مراجعة الكود الفرعي: تقييم الأمان والجودة
أفضل ممارسة: فوّض مهام البحث الاستكشافي إلى الوكيل الفرعي الاستكشافي للحفاظ على سياق المحادثة الرئيسية.
todo_update
القدرات:
- إنشاء وإدارة قوائم المهام
- تحديث حالة المهمة (معلّقة، قيد التنفيذ، مكتملة)
- تتبع التقدم عبر عمليات التنفيذ المعقدة
حالات الاستخدام:
- تقسيم الميزات المتعددة الخطوات
- تتبع تقدم إعادة الهيكلة
- إدارة مهام الترحيل
web_search
القدرات:
- الاستعلام في محركات البحث على الإنترنت
- التحكم في عدد النتائج
- التصفية حسب الحداثة (الأيام الأخيرة)
حالات الاستخدام:
- إيجاد الوثائق لـAPIs غير المألوفة
- البحث عن رسائل الخطأ
- التحقق من أفضل الممارسات الحالية
web_fetch
القدرات:
- استرجاع محتوى صفحات الويب
- تحليل المحتوى باستعلامات محددة
- استخراج معلومات منظّمة
حالات الاستخدام:
- قراءة صفحات الوثائق
- تحليل وثائق API
- استخراج أمثلة من الدروس التعليمية
دعم صيغ الملفات
يعمل Verdent مع جميع صيغ الملفات النصية من خلال أدوات عمليات الملفات الخاصة به.
| الفئة | اللغات/الامتدادات |
|---|---|
| الويب | JavaScript، TypeScript، HTML، CSS، SCSS، LESS |
| الخادم | Python، Java، Go، Rust، C، C++، C#، Ruby، PHP، Perl |
| الأجهزة المحمولة | Swift، Kotlin، Dart (Flutter)، Objective-C |
| الوظيفية | Haskell، Scala، Elixir، Clojure، F# |
| البرمجة النصية | Bash، PowerShell، Zsh، Fish |
| البيانات | SQL، R، Julia، MATLAB |
| الصيغة | أمثلة شائعة |
|---|---|
| JSON | package.json، tsconfig.json، settings.json |
| YAML | docker-compose.yml، GitHub Actions، تهيئات Kubernetes |
| TOML | Cargo.toml، pyproject.toml |
| XML | pom.xml، web.xml، ملفات التهيئة |
| INI | .gitconfig، .editorconfig |
| ENV | ملفات .env، تهيئة البيئة |
| HCL | تهيئة Terraform |
| الصيغة | حالات الاستخدام |
|---|---|
| Markdown | README.md، ملفات الوثائق |
| HTML | القوالب، صفحات الويب |
| LaTeX | الوثائق العلمية، الأوراق الأكاديمية |
| reStructuredText | وثائق Python |
| AsciiDoc | الوثائق التقنية |
صيغ البيانات
| الصيغة | الوصف |
|---|---|
| CSV/TSV | ملفات البيانات الجدولية |
| البيانات النصية | ملفات السجلات، إغراقات البيانات |
| JSON/YAML | تبادل البيانات المنظّمة |
ملفات البناء والحزم
| الملف | الغرض |
|---|---|
| Makefile | أتمتة البناء |
| package.json | تبعيات Node.js |
| requirements.txt | حزم Python |
| Gemfile | حزم Ruby |
| Cargo.toml | حزم Rust |
| build.gradle | بناءات Gradle |
| نوع الصيغة | أمثلة | إمكانية التعديل |
|---|---|---|
| الصور | PNG، JPG، GIF، SVG (ثنائية) | لا يمكن تعديلها مباشرة |
| الفيديوهات | MP4، AVI، MOV | لا يمكن تعديلها مباشرة |
| الملفات الثنائية المُجمّعة | EXE، DLL، SO | لا يمكن تعديلها مباشرة |
| الأرشيفات | ZIP، TAR، GZ | لا يمكن تعديلها مباشرة |
| وثائق Office | DOCX، XLSX، PPTX | لا يمكن تعديلها مباشرة |
| ملفات PDF | ملفات PDF | لا يمكن تعديلها مباشرة |
قد يُشار إلى الملفات الثنائية في الكود ولكن لا يمكن تعديلها من خلال أدوات الملفات.
دعم لغات البرمجة
يوفر Verdent دعمًا شاملًا لجميع لغات البرمجة والأُطر النصية.
| اللغة/الإطار | مستوى الدعم | حالات الاستخدام الشائعة |
|---|---|---|
| JavaScript | ممتاز | منطق الواجهة الأمامية، خوادم Node.js، الأدوات |
| TypeScript | ممتاز | تطبيقات ويب آمنة الأنواع، مشاريع واسعة النطاق |
| React | ممتاز | واجهات مستخدم قائمة على المكونات، hooks، إدارة الحالة |
| Vue | ممتاز | تطبيقات ويب تقدمية، مكونات ملف واحد |
| Angular | ممتاز | تطبيقات المؤسسات، تكامل TypeScript |
| Svelte | جيد جدًا | مكونات مُجمّعة، البرمجة التفاعلية |
| HTML/CSS | ممتاز | التوسيم، التصميم، التصميم المتجاوب |
| SCSS/LESS | ممتاز | التصميم المتقدم، المتغيرات، الـ mixins |
| اللغة/الإطار | مستوى الدعم | حالات الاستخدام الشائعة |
|---|---|---|
| Python | ممتاز | APIs، معالجة البيانات، الأتمتة |
| Django/Flask/FastAPI | ممتاز | أُطر الويب، APIs من نوع REST |
| Node.js/Express | ممتاز | خوادم JavaScript، الخدمات الصغيرة |
| Java/Spring | ممتاز | تطبيقات المؤسسات، Spring Boot |
| Go | ممتاز | خدمات عالية الأداء، أدوات سطر الأوامر |
| Rust | جيد جدًا | برمجة الأنظمة، الكود الحرج للأداء |
| C/C++ | جيد جدًا | الأنظمة، الأنظمة المدمجة، محركات الألعاب |
| C# / .NET | ممتاز | تطبيقات Windows، خدمات الويب، Unity |
| Ruby/Rails | جيد جدًا | تطبيقات الويب، التطوير السريع |
| PHP | جيد | WordPress، Laravel، التطبيقات القديمة |
| اللغة/الإطار | مستوى الدعم | حالات الاستخدام الشائعة |
|---|---|---|
| Swift | ممتاز | تطبيقات iOS/macOS الأصلية |
| Kotlin | ممتاز | تطبيقات Android الأصلية |
| Dart/Flutter | ممتاز | تطبيقات الأجهزة المحمولة متعددة المنصات |
| React Native | ممتاز | تطبيقات الأجهزة المحمولة القائمة على JavaScript |
| Objective-C | جيد | تطبيقات iOS/macOS القديمة |
| اللغة | مستوى الدعم | حالات الاستخدام الشائعة |
|---|---|---|
| Python | ممتاز | NumPy، Pandas، scikit-learn، TensorFlow |
| R | جيد جدًا | التحليل الإحصائي، تصور البيانات |
| SQL | ممتاز | استعلامات قواعد البيانات، تصميم المخططات |
| Julia | جيد | الحوسبة العلمية، التحليل العددي |
| اللغة | مستوى الدعم | حالات الاستخدام الشائعة |
|---|---|---|
| C | جيد جدًا | برمجة الأنظمة، الأنظمة المدمجة |
| C++ | جيد جدًا | التطبيقات الحرجة للأداء |
| Rust | جيد جدًا | برمجة الأنظمة الآمنة للذاكرة |
| Go | ممتاز | الأنظمة المتزامنة، خدمات السحابة |
| Assembly | جيد | التحسين منخفض المستوى، تصحيح الأخطاء |
جودة الدعم: اللغات الشائعة (JavaScript، Python، TypeScript) تحصل على دعم أقوى نظرًا لبيانات التدريب الواسعة. اللغات الأقل شيوعًا أو المتخصصة قد تحصل على جودة دعم أقل ولكنها تظل فعّالة.
حدود الاستخدام وأفضل الممارسات
كفاءة file_read
أفضل الممارسات:
- استخدم نطاقات الأسطر للملفات التي تزيد عن 500 سطر لتجنب إثقال السياق
- اقرأ فقط الأقسام ذات الصلة اللازمة للمهمة
- للملفات الكبيرة، استخدم
grep_contentأولًا لتحديد أرقام الأسطر ذات الصلة
# Good: Read specific section
file_read("large-config.json", start_line=100, max_lines=50)
# Less efficient: Read entire large file
file_read("large-config.json") # May consume excessive contextدقة file_edit
أفضل الممارسات:
- تأكد من التطابق الدقيق للسلاسل النصية لتجنب فشل التعديلات
- للتغييرات المتشابهة المتعددة، استخدم علم
multiple=true - تحقق من مسارات الملفات قبل التعديل
أمان file_write
أفضل الممارسات:
- تحقق مرتين من المسارات لمنع الاستبدال العرضي
- استخدمها فقط للملفات الجديدة أو إعادة الكتابة الكاملة
- للتعديلات، يُفضّل استخدام
file_editلمزيد من الأمان
تحديد أنماط glob
أفضل الممارسات:
- استخدم أنماطًا محددة لتضييق النطاق:
src/**/*.tsبدلًا من**/* - استبعد المجلدات بأنماط استبعاد:
!**/node_modules/** - حدّد النتائج لتجنب إخراج مفرط
# Good: Specific scope
glob("src/components/**/*.tsx", max_results=50)
# Less efficient: Too broad
glob("**/*") # Returns thousands of resultsاستراتيجية grep
سير العمل الموصى به:
- استخدم
grep_fileلتحديد الملفات ذات الصلة - اقرأ الملفات المحددة باستخدام
file_read - استخدم
grep_contentعندما تحتاج إلى السياق المحيط
نصائح الأداء:
- قد تستغرق أنماط regex وقتًا أطول من السلاسل النصية الحرفية
- البحث بدون حساسية لحالة الأحرف أبطأ
- قيّد أسطر السياق (
-A،-B) بما هو ضروري فقط
أفضل ممارسات bash
تنفيذ الأوامر بأمان:
- قدّم ملخصات واضحة لوصف الأوامر
- عيّن مهلًا زمنية مناسبة للعمليات الطويلة
- سلسِل الأوامر المرتبطة باستخدام
&& - راجع الأوامر الهدّامة بعناية (rm، drop، truncate)
# Good: Clear summary, reasonable timeout
bash("npm run build", timeout=120000, summary="Build production bundle")
# Good: Chained dependencies
bash("npm install && npm run test", timeout=180000)اعتبارات الأمان
قواعد الأمان الحرجة:
- يتم تنفيذ الأوامر بصلاحيات المستخدم
- لا تشغّل أبدًا أوامر غير موثوقة
- استخدم Manual Accept Mode للمراجعة في قواعد الكود المشتركة
- تجنب الأوامر التي تعرّض بيانات الاعتماد أو المعلومات الحساسة
راجع دائمًا أوامر bash في Manual Accept Mode عند العمل في قواعد كود مشتركة أو بيئات إنتاجية.
كفاءة تفويض الوكلاء الفرعيين
متى تستخدم الوكلاء الفرعيين:
- الوكيل الفرعي الاستكشافي: عمليات البحث في قاعدة الكود، أسئلة الهيكلية (يحافظ على السياق الرئيسي)
- وكيل التحقق الفرعي: فحوصات التحقق السريعة (تحقق معزول)
- وكيل مراجعة الكود الفرعي: مراجعات الأمان والجودة (تحليل تفصيلي)
- الوكيل الفرعي العام: المهام المتعددة الخطوات المعقدة (تنفيذ متوازٍ)
أفضل ممارسة: فوّض مهام البحث والاستكشاف إلى الوكلاء الفرعيين للحفاظ على سياق المحادثة الرئيسية لأعمال التطوير النشطة.
إدارة السياق
الاستخدام الاستراتيجي للأدوات:
- اقرأ الملفات بشكل استراتيجي - فقط ما هو ضروري
- استخدم الوكلاء الفرعيين للبحث في الخلفية
- راقب استهلاك السياق خلال الجلسات الطويلة
- قسّم العمليات المعقدة إلى خطوات باستخدام todo_update
سير العمل الفعّال:
- التخطيط: استخدم glob/grep لتحديد النطاق
- القراءة: اقرأ فقط الملفات/الأقسام ذات الصلة
- التنفيذ: فوّض إلى الوكلاء الفرعيين عند الحاجة
- التحقق: فحوصات سريعة باستخدام وكيل التحقق الفرعي
حدود حجم الملف
التعامل مع الملفات الكبيرة: يجب قراءة الملفات الكبيرة جدًا (أكثر من 10,000 سطر) على أقسام لتجنب:
- استنفاد نافذة السياق
- أوقات استجابة بطيئة
- مشكلات الذاكرة
للملفات التي تزيد عن 500 سطر، استخدم دائمًا نطاقات الأسطر باستخدام file_read للحفاظ على أداء مثالي.
الإعدادات الافتراضية لمهلة الأدوات
حدود الأدوات:
- مهلة bash: 120 ثانية (دقيقتان) كحد أقصى
- عمليات الملفات: لا توجد حدود للحجم (تُقرأ الملفات الكبيرة تلقائيًا على دفعات)
- التعامل مع الملفات الكبيرة: الملفات التي تزيد عن 256 كيلوبايت تُعيد أول 256 كيلوبايت من المحتوى فقط
- نتائج البحث: لا توجد حدود لنتائج
globأوgrep_content - الوكلاء الفرعيون المتزامنون: لا توجد حدود للتنفيذ المتوازي
تهيئة المهلة الزمنية:
- عيّن مهلًا زمنية واضحة للعمليات الطويلة
- راقب العمليات المعلّقة
- سيتم إنهاء الأوامر التي تتجاوز مهلة الدقيقتين
العمليات المتزامنة
التنفيذ المتوازي: يمكن تشغيل وكلاء فرعيين متعددين بالتوازي لتسريع العمليات المعقدة متعددة الخطوات. يتعامل الوكيل الرئيسي تلقائيًا مع التنسيق.
فوائد الأداء:
- تقليل وقت التنفيذ الإجمالي للمهام متعددة الخطوات
- استخدام فعّال للموارد
- تنظيم آلي للمهام
- لا توجد حدود لعدد الوكلاء الفرعيين المتزامنين