پیشنویس نسخهٔ ۲ پروتکل ACP منتشر شد
خلاصهٔ کاملتر
تیم Agent Client Protocol تو یه اعلان رسمی گفته اولین پیشنویس نسخهٔ ۲ این پروتکل آمادهست. ACP یه زبان مشترک بین «عامل» (agent) و «کلاینت»ه — همون قراردادی که ابزارهای هوش مصنوعی کدنویس و ادیتورها باهاش با هم حرف میزنن. به گفتهٔ تیم، از زمان انتشار v1 بیشتر از ۱۵ تا RFD روی همون نسخه سوار شده، ولی کمکم معلوم شده چند تا تغییر شکننده لازمه تا کارهایی که تو ساختار فعلی بهسختی میشه بیانشون کرد، ممکن بشن.
بزرگترین تغییر، عبور از مفهوم «نوبت» (turn) هست. تو v1 خیلیها اینطور برداشت میکردن که عامل فقط بعد از پیام کاربر رویداد میفرسته و با تمومشدن تولید، کارش هم تمومه. حالا که عاملها کارهای طولانی و پسزمینهای انجام میدن، همین برداشت جلوی رفتارهای مفید رو میگیره. تو v2 نوتیفیکیشنهای session/update هر لحظه از جلسه میتونن بیان و پاسخ prompt فقط یعنی «پیامت رو گرفتم»، نه «نوبت تموم شد».
عامل خودش پیام کاربر رو همونجایی که واردش کرده بازپخش میکنه؛ این هم replay رو سادهتر میکنه و هم راه رو برای چند کلاینت که یه جلسه رو با هم تماشا میکنن باز میذاره. عامل میتونه اعلام کنه که «idle» هست و آمادهٔ ورودی جدیده، در حالی که هنوز داره وضعیت جلسه رو آپدیت میکنه. نتیجهش اینه که صفکردن پیام، هدایت وسط کار و گزارش کارهایی که کاربر شروعشون نکرده، همه شدنی میشن.
پیامهای کاربر و عامل، فراخوانی ابزارها و خروجی ترمینال هم همگی با شناسههای پایدار پچ میشن و معنیها یکدست شدن: فیلدی که نیاد دستنخورده میمونه، null پاکش میکنه، مقدار جایگزین میشه و chunkها به هم میچسبن. شناسهٔ پیام هم اجباری شده تا پیامها علاوه بر استریمشدن، قابل آپدیت و جایگزینی باشن — مثلاً وقتی لازمه بخشی از متن حذف یا اصلاح بشه. همین الگو به محتوای tool call هم رسیده تا لازم نباشه کل محتوا هر بار دوباره فرستاده شه.
دیفها هم بازنویسی شدن: به جای جفت oldText/newText، حالا تغییرات فایل ساختارمنده و افزودن، حذف، ویرایش، جابهجایی، کپی و حتی حالتهای باینری و غیرمتنی رو میشه بیان کرد. عامل میتونه یه git_patch اختیاری هم بده که کلاینت مستقیم نشونش بده یا باهاش رندر تمیزتری بسازه. درخواستهای مجوز هم title اجباری و description اختیاری خودشون رو دارن و به جای گرهخوردن به یه tool call مشخص، یه subject توسعهپذیر گرفتن.
سازگاری رو به جلو هم پیشفرض شده: مقدارهای enumمانند تو کل اسکیما، واریانتهای ناشناخته با پیشوند _ رو قبول میکنن تا کلاینت و عامل قدیمیتر سر دادهٔ ناآشنا گیر نکنن. نویسنده تأکید میکنه v2 هنوز Draft هست و تا پایدار شدن ممکنه تیکههایی ازش عوض شه؛ پس پیادهسازی رو پشت version negotiation و فیچر فلگ نگه دارین و پیشفرض روی production نفرستین. به گفتهٔ اون، اضافهکردن v2 نباید به معنی کنار گذاشتن v1 باشه، چون طرفهای v1-only مدتی دور و بر هستن.
نویسنده میگه بیشتر تایپها بین دو نسخه دستنخورده موندن و برای نگهدارندههای Agent و Client و SDK، راهنمای مهاجرت با مثالهای قبل و بعد، تغییرهای کلیدی رو مرور میکنه. اسکیماهای JSON نسخهٔ ۲ هم به شکل v2.0.0-alphaX کنار v1 منتشر شدن. تیم میگه همین حالا بهترین زمان برای بازخورده، چون هنوز چیزی قفل نشده.
نکات کلیدی:
- اولین Draft نسخهٔ ۲ پروتکل ACP منتشر شد؛ تمرکزش روی چند تغییر رفتاری اصلیه، نه انبوه فیچر جدید
- چرخهٔ کار از مفهوم «نوبت» جدا شد: session/update هر لحظه میتونه بیاد و پاسخ prompt فقط دریافت پیام رو تأیید میکنه
- پیامها، tool callها و خروجی ترمینال با شناسهٔ پایدار و معنی یکدست پچ میشن؛ شناسهٔ پیام اجباری شد
- دیف ساختارمند جای oldText/newText رو گرفت و git_patch اختیاری اضافه شد
- درخواست مجوز حالا title و description مستقل و subject توسعهپذیر داره
- واریانتهای ناشناختهٔ enum با پیشوند _ پذیرفته میشن تا نسخههای قدیمیتر نشکنن
- v2 هنوز Draft هست: پشت فیچر فلگ نگهش دارین و همزمان از v1 هم پشتیبانی کنین




