Tools
ابزار apply_patch
تغییرات فایل را با استفاده از قالب patch ساختاریافته اعمال کنید. این روش برای ویرایشهای چندفایلی
یا چندبخشی مناسب است، جایی که یک فراخوانی edit شکننده خواهد بود.
این ابزار یک رشتهی input میپذیرد که یک یا چند عملیات فایل را در بر میگیرد:
*** Begin Patch
*** Add File: path/to/file.txt
+line 1
+line 2
*** Update File: src/app.ts
@@
-old line
+new line
*** Delete File: obsolete.txt
*** End Patch
پارامترها
input(الزامی): محتوای کامل patch شامل*** Begin Patchو*** End Patch.
نکتهها
- مسیرهای patch از مسیرهای نسبی (از دایرکتوری workspace) و مسیرهای مطلق پشتیبانی میکنند.
- مقدار پیشفرض
tools.exec.applyPatch.workspaceOnlyبرابرtrueاست (محدود به workspace). فقط زمانی آن را رویfalseتنظیم کنید که عمداً میخواهیدapply_patchبیرون از دایرکتوری workspace بنویسد/حذف کند. - برای تغییر نام فایلها، از
*** Move to:داخل یک بخش*** Update File:استفاده کنید. *** End of Fileدر صورت نیاز درج فقط-EOF را مشخص میکند.- بهطور پیشفرض برای مدلهای OpenAI و OpenAI Codex در دسترس است. برای غیرفعالکردن آن،
tools.exec.applyPatch.enabled: falseرا تنظیم کنید. - در صورت نیاز، از طریق
tools.exec.applyPatch.allowModelsبر اساس مدل محدودسازی کنید. - پیکربندی فقط زیر
tools.execقرار دارد.
مثال
{
"tool": "apply_patch",
"input": "*** Begin Patch\n*** Update File: src/index.ts\n@@\n-const foo = 1\n+const foo = 2\n*** End Patch"
}