ایجنت
چهار حالت برای کار متفاوت — سپردن کار، برنامهریزی، پرسش، یا عیبیابی.
نتیجه را با زبان بگویید، بعد رد خواندن و ویرایش را ببینید. قوانین و مهارتها رفتار را هدایت میکنند؛ سابایجنت کار متمرکز میگیرد؛ MCP روی stdio ابزار خارجی وصل میکند؛ هوکها دور رویدادهای ایجنت اجرا میشوند. بازبینی با شماست.
استفاده از ابزار تابع سطح دسترسی شماست. اجرای فرمان بیصدا نیست.
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)