ایجنت کدنویسی؛ فقط شیشتا ابزار زیر یه بارونی
خلاصهٔ کاملتر
نویسنده، Hadley Wickham، تو این پست میگه ایجنتهای کدنویسی مثل Claude Code، Cursor و Codex اونقدرها هم که به نظر میان پیچیده نیستن. به گفتهٔ اون، یه ایجنت در واقع یه harness (یعنی یه حلقهٔ نرمافزاری که ابزارها رو از طرف مدل زبانی اجرا میکنه و نتیجه رو بهش برمیگردونه) بهعلاوهٔ چندتا ابزار برای خوندن و نوشتنه. چیزی که یه ایجنت رو «کدنویس» میکنه همین ابزارهاست: خوندن فایل، نوشتن فایل، ادیت فایل، لیستکردن فایلها، سرچ تو کد، و اجرای دستور شل.
برای اثبات این حرف، نویسنده یه ایجنت کوچیک با R و کتابخونه ellmer میسازه؛ اول فقط با سه تا ابزار: خوندن فایل، نوشتن فایل و اجرای دستور شل. این سهتا کافیه چون دستور شل خودش میتونه هر کار دیگهای هم بکنه (مثلاً ls برای لیست فایلها یا grep برای سرچ):
read_file <- function(path) {
paste(readLines(path), collapse = "\n")
}
write_file <- function(path, content) {
writeLines(content, path)
}
run_command <- function(command) {
system(command, intern = TRUE)
}نویسنده بعدش توضیح میده که دادن یه شل عمومی به مدل خیلی خطرناکه، چون تشخیص امن یا خطرناک بودن یه دستور شل کار سختیه. برای همین یه تابع کمکی به اسم safe_path میسازه که مسیر ورودی رو resolve میکنه (یعنی ..ها رو حل میکنه و symlinkها رو دنبال میکنه) و مطمئن میشه مسیر همچنان داخل پوشهٔ پروژهست، نه بیرون از اون مثل /etc. این کار جلوی دسترسی مدل به فایلهای حساس مثل .Renviron (جایی که برنامهنویسهای R کلیدهای API رو نگه میدارن) رو میگیره.
آخرین بخش پست دربارهٔ کارآمدتر کردن ابزارهاست. مشکل write_file اینه که برای تغییر حتی یه خط از یه فایل ۵۰۰ خطی، مدل باید کل فایل رو از اول بازنویسی کنه؛ کار کند، گرون و پر از خطا. راهحل یه ابزار edit_file هست که فقط یه تیکه از متن رو با متن جدید عوض میکنه، به شرطی که اون متن دقیقاً یه بار تو فایل پیدا بشه. نویسنده میگه دقیقاً همین روش تو ابزارهای ادیت ایجنتهای واقعی هم استفاده میشه.
نکات کلیدی:
- سه ابزار پایه برای یه ایجنت کدنویسی مینیمال: خوندن فایل، نوشتن فایل، اجرای دستور شل
- نمونهسازی با زبان R و کتابخونه ellmer، با مدل claude-sonnet-4-5-20250929
- تابع safe_path مسیرها رو به پوشهٔ پروژه محدود میکنه و از خوندن فایلهای حساس مثل .Renviron جلوگیری میکنه
- ابزار edit_file با جایگزینی یه تیکه متن دقیق (به جای بازنویسی کل فایل) سریعتر و امنتره




