Skip to main content

FileWriterTool

الوصف

تكتب FileWriterTool محتوى نصيًا إلى ملف. تُنشأ المجلدات المفقودة تلقائيًا. ترميز النص الافتراضي هو UTF-8. تقتصر عمليات الكتابة على مجلد sandbox. بشكل افتراضي يكون هذا المجلد هو مجلد العمل الحالي. مرّر base_dir لتغييره.

التثبيت

مثال

Code

المعاملات

يوفّرها الوكيل في وقت التشغيل:
  • filename: اسم الملف المراد كتابته، نسبةً إلى directory. يمكن أن يتضمن مجلدات فرعية. تُنشأ تلك المجلدات الفرعية إذا لم تكن موجودة.
  • content: المحتوى النصي المراد كتابته.
  • directory (اختياري): المجلد الذي تتم الكتابة إليه. يُحل المسار النسبي داخل المجلد المسموح للأداة (base_dir عند تعيينه، وإلا مجلد العمل الحالي) ويُعيَّن افتراضيًا إلى جذر ذلك المجلد (./). يُنشأ إذا لم يكن موجودًا.
  • overwrite (اختياري): ما إذا كان يجب استبدال ملف موجود. يقبل قيمة منطقية أو السلاسل y/yes/t/true/on/1 و n/no/f/false/off/0. الافتراضي هو false. عندما يكون false والملف موجودًا مسبقًا، تُرجع الأداة خطأً ولا تعدّل الملف.
تُعيَّن هذه عند إنشاء الأداة:
  • base_dir (اختياري): المجلد الذي يجب أن تبقى عمليات الكتابة داخله. الافتراضي هو مجلد العمل الحالي. يُحل المسار النسبي عند إنشاء الأداة، لذا لا ينقل تغيير لاحق لمجلد العمل حدود الـ sandbox.
  • encoding (اختياري): ترميز النص المستخدم لكتابة الملف. الافتراضي هو utf-8.

المسارات المسموح بها

عادةً ما يختار نموذج لغوي قيم directory وfilename في وقت التشغيل. ترفض الأداة المسارات التي تخرج من الـ sandbox:
  • يجب أن يكون directory المحلول داخل base_dir (مجلد العمل الحالي افتراضيًا).
  • يجب أن يكون مسار الملف المحلول داخل ذلك directory.
  • تُحل مقاطع .. والمسارات المطلقة والروابط الرمزية قبل كلا الفحصين.
للسماح بالكتابة تحت شجرة مختلفة، عيّن base_dir:
Code
سابقًا، كان بإمكان directory المطلق الكتابة في أي مكان يملك فيه العملية صلاحية. إذا اعتمدت على ذلك، عيّن base_dir إلى الشجرة التي تريد السماح بها. تعيين CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=true يعيد السلوك القديم، لكنه يعطّل فحوصات المسار وURL على مستوى العملية لكل أدوات crewai-tools. فضّل base_dir.