ابزارهای ایجنت
ایجنت فقط حرف نمیزند. میخواند، میجوید، پچ میدهد و — اگر اجازه بدهید — شل و git اجرا میکند.
ایبان سطح کامل ابزار را داخل فضای کار بومی دارد. ایجنت ابری ابزار را صدا میزند؛ شما رد کار و پچ را میبینید.
چه میکند
- خواندن، نوشتن و پچ فایل با دیف قابلبازبینی
- Grep، glob، فهرست و جستجوی معنایی روی فضای کار
- شل با نشست PTY واقعی، بهعلاوه Await برای فرمان طولانی
- وضعیت، دیف، stage، commit و push گیت با اجازه
- تشخیصهای LSP و lint
- جستجو و واکشی وب برای مستندات و صفحات عمومی
- ابزار MCP که وصل میکنید، بهعلاوه Computer Use روی ویندوز
حفاظ
Ask، Allow safe و Allow all تعیین میکنند چه اجرا شود. حالت Plan و Ask ابزار تغییردهنده را میبندند. هیچ چیز بیصدا نیست.
چه نیست
ایجنت روی VM ابری، فروشگاه افزونه، یا «کل سیستمعامل بدون نظارت» وجود ندارد. ابزارها روی ماشین شما و با مجوز شما اجرا میشوند.
صفحهٔ مستندات Tools همان سطحی را فهرست میکند که ایجنت واقعاً دارد.
41 def charge(order, wallet): 42 tax = order.subtotal * 0.09 43 total = order.subtotal + tax 44 if wallet.balance < total: 45 raise InsufficientFunds(total) 46 wallet.debit(total) 47 return Receipt(order.id, total)
مالیات منطقهای را از نرخ ثابت جدا کن و قبل از debit موجودی را درست چک کن.
۶ فایل خوانده شد · ۲ جستجو · ۱ تست
charge هنوز ۰٫۰۹ را سخت گذاشته. tax_for(region) هست. can_cover را به کیف وصل میکنم.
پچ ۱۲ خطی روی دو فایل. دیف را ببینید.
قبل از دستزدن به checkout، رویکرد مالیات چندمنطقهای را بنویس.
Plan · شل و ویرایش محصول محدود است
اول قرارداد tax_for را ثابت میکنم، بعد charge را عوض میکنم، بعد test_charge.
برنامه آماده است. وقتی تأیید کردید به Agent برمیگردم.
charge از کجا مالیات میگیرد و کدام تست آن را قفل کرده؟
Ask · فقط خواندن
نرخ در checkout.py:42 است. test_charge همان ۰٫۰۹ را assert میکند.
چیزی نوشته نشد.
InsufficientFunds برای سفارش معاف از مالیات هم بالا میآید. اول شواهد.
Debug · بازتولید قبل از فیکس
شکست وقتی region معاف است و wallet.can_cover هنوز نرخ ثابت را میبیند.
رد شکست آماده است. اصلاح را بعد از تأیید مینویسم.
- tax = order.subtotal * 0.09 + tax = order.tax_for(region) - if wallet.balance < total: + if not wallet.can_cover(total, region): wallet.debit(total)