Терминалын 50 жилийн хязгаарлалтыг эвдэв: Митчелл Хашимото AI агентуудад зориулсан "OSC 7501" протоколыг зарлалаа
Сүүлийн үед программ хангамжийн салбарт хиймэл оюуны бие даасан агентууд (Claude Code, Copilot CLI, Aider гэх мэт) бидний өдөр тутмын хөгжүүлэлтийн салшгүй хэсэг болж байна. Гэвч тэдгээрийг терминал дээр ажиллуулах үед хагас зуун жилийн настай Unix терминалын архитектурын суурь хязгаарлалттай нүүр тулдаг: Терминал нь дотор нь ажиллаж буй программ яг юу хийж байгааг, гацсан эсэхийг, эсвэл хүний хариуг хүлээж байгаа эсэхийг баттай мэддэггүй.
Vagrant, Terraform, Vault зэрэг дэлхийн жишиг дэд бүтцийн хэрэгслүүдийг үүсгэн байгуулж, өдгөө хурдаараа гайхагдаж буй Ghostty терминалыг хөгжүүлж буй домогт инженер Митчелл Хашимото (Mitchell Hashimoto) энэхүү асуудлыг нэгмөсөн шийдэх шинэ стандарт болох OSC 7501 (Program Status Protocol) техникийн тодорхойлолтыг (specification) танилцууллаа.
250 гаруй оркестраторын нийтлэг зовлон: Хэврэг таамаглал (Heuristics)
CLI орчинд урт хугацаанд ажилладаг командууд цөөнгүй байдаг — том кодын санг компиляци хийх, cloud дэд бүтэц deploy хийх, сангаа шинэчлэх гэх мэт. Харин одоо эдгээр дээр AI агент нэмэгдсэнээр нөхцөл байдал эрс хүндэрсэн. Хөгжүүлэгч олон агентыг зэрэг ард ажиллуулах эсвэл даалгавар өгөөд өөр зүйл хийх үед программ:
- Одоо ч бодож байна уу (Working)?
- Хэрэглэгчээс зөвшөөрөл юм уу хариулт нэхээд хүлээж байна уу (Blocked)?
- Ажил амжилттай дууссан уу (Finished)?
- Алдаа гарч унасан уу (Failed)?
Хашимотогийн судалгаагаар өнөөдөр зах зээл дээрх 250 гаруй агентын оркестратор (agent orchestrator) багажууд энэ төлөвийг тодорхойлохын тулд бүгд туйлын хэврэг "heuristic" аргуудыг ашиглаж байна. Тухайлбал, дэлгэцийн гаралтыг (stdout) regex-ээр шүүж "Proceed? [y/N]" гэсэн бичвэр хайх, эсвэл дэлгэц хэдэн секунд чимээгүй болсныг тоолох зэргээр "таадаг". Үүнээс болоод нэг л UI өөрчлөгдөхөд бүх скрипт эвдэрдэг бөгөөд жишээлбэл Herdr төсөл сүүлийн 3 сарын дотор зөвхөн Claude Code-ийн төлөвийг зөв барих гэж 10 удаа кодоо шинэчлэхэд хүрчээ.
Тусгай HTTP API эсвэл локал socket гаргаж болох ч энэ нь SSH, Docker контейнер, Kubernetes pod, tmux зэрэг алсын орчинд ажиллахад сүлжээний тохиргооны хувьд хар дарсан зүүд болж хувирдаг.
Шийдэл: Терминалын эх хэлээр ярих "OSC 7501"
Митчелл Хашимото тусгай протокол зохиохын оронд терминалын анхдагч escape sequence механизмаар шийдэх аргыг санал болгосон нь OSC 7501 юм. Терминал холбоос (OSC 8) эсвэл clipboard хуулахыг (OSC 52) хэрхэн ойлгодог билээ, яг түүнтэй ижил зарчим.
Программ нь өөрийн төлөв өөрчлөгдмөгц терминал руу дараах escape sequence-ийг илгээнэ:
ESC ] 7501 ; state=blocked:kind=permission:app=terraform:msg=QXBwbHkgMyB0byBhZGQsIDEgdG8gY2hhbmdlLCAwIHRvIGRlc3Ryb3k/ ESC \
Энд юу болж байна вэ?
state=blocked: Программ гацаж зогссон бус, хэрэглэгчээс ямар нэг зүйл хүлээж байна.kind=permission: Зөвшөөрөл хүлээж байгаа төрөл (question, auth зэрэг байж болно).app=terraform: Аль хэрэгсэл дуудаж буйг тодорхойлно.msg=...: Терминалын UI дээр харуулах мэдээллийг base64 кодчиллоор аюулгүй дамжуулна.
5 үндсэн төлөв ба давуу талууд
OSC 7501 нь хэт нүсэр биш, маш тодорхой таван төлөвийг (state) стандартад суулгасан:
idle: Ажил эхлээгүй, юу ч хийгээгүй хүлээж буй төлөв.working: Даалгаврыг гүйцэтгэж буй (прогресс хувь, тооцооллын явцыг дагалдуулж болно).blocked: Хүний оролцоо шаардлагатай байгаа төлөв. Үүнд зөвшөөрөл олгох (permission), асуултад хариулах (question), баталгаажуулах код оруулах (auth) зэрэг дэд төлөвүүд хамаарна.finished: Бүх үйл ажиллагаа амжилттай дууссан.failed: Алдаа гарч зогссон (алдааны шалтгаан бүхий тайлбартай).
Энэхүү стандарт нь хөгжүүлэгчдийн өдөр тутмын хэрэглээнд дараах онцгой боломжуудыг нээнэ:
- Интерактив систем мэдэгдлүүд: Таны ард ажиллаж буй Claude Code ямар нэг bash комманд ажиллуулах зөвшөөрөл нэхэх үед Ghostty эсвэл бусад терминал таны desktop дээр шууд "Зөвшөөрөх үү?" гэсэн товчтой push notification харуулах боломжтой болно.
- Хил хязгааргүй ажиллагаа: Escape sequence нь стандарт
stdout-ээр дамждаг тул та SSH-ээр алсын сервер лүү холбогдсон, Docker контейнер дотор орсон, эсвэлtmux-ээр сессээ тусгаарласан байсан ч ямар нэг портын тохиргоогүйгээр терминалдоо хүрнэ. - Агент удирдлагын дэд бүтэц: AI агент менежерүүд хэврэг regex бичих шаардлагагүй болж, 100% найдвартай төлөвийн мэдээллээр олон арван агентыг зэрэг удирдаж чадна.
Хөгжүүлэгчийн дүгнэлт
Энэхүү протокол нь зөвхөн AI агентуудад зориулагдаагүй. cargo build, npm install, brew update, terraform apply зэрэг ямар ч команд энэ дарааллыг хялбархан дэмжих боломжтой.
Митчелл Хашимото энэхүү стандартыг ямар нэгэн бүтээгдэхүүний хамааралгүй, бүх терминал болон CLI хөгжүүлэгчид чөлөөтэй нэвтрүүлж болох нээлттэй стандарт болгон нийтэлсэн байна. Ghostty, WezTerm, iTerm2 зэрэг орчин үеийн терминалууд болон CLI агентууд энэ стандартыг хэрэгжүүлж эхэлснээр хөгжүүлэгчийн терминал дахь туршлага цоо шинэ түвшинд гарах нь тодорхой боллоо.
Эх сурвалж: Mitchell Hashimoto: A Terminal Protocol for Program Status (OSC 7501)
Сэтгэгдэл
Ачаалж байна...