Khái niệm cốt lõi

Terminal

Agent chạy trong một terminal nhúng thật. Spec ADE hỗ trợ ba kiểu kết nối: Auggie và Claude qua PTY, cùng các agent theo chuẩn ACP.

Hai chế độ kết nối

Chế độDành choCơ chế
ptyAuggie · Claude CodeTrình giả lập terminal qua portable-pty, I/O qua WebSocket
acpAgent theo Agent Client ProtocolTiến trình riêng, sự kiện có đánh số tuần tự để replay

Giao thức WebSocket

Với session PTY, frontend và backend trao đổi các thông điệp JSON qua WebSocket:

Client → Server

typePayloadMô tả
inputdata: stringGõ thô (từng ký tự)
submitdata: stringNội dung dòng + Enter
resizecols, rowsĐổi kích thước terminal

Server → Client

typePayloadMô tả
outputdata: stringDữ liệu PTY
readyAgent sẵn sàng (bracketed paste)
exitcode: numberTiến trình kết thúc
Phát hiện “sẵn sàng”

Spec ADE coi agent là “sẵn sàng” khi terminal bật bracketed paste mode. Ô nhập bị khóa cho tới khi nhận được tín hiệu ready — tránh gửi nhầm phím vào lúc agent chưa sẵn sàng.

ACP — Agent Client Protocol

Agent ACP chạy trong tiến trình riêng và giao tiếp qua kênh sự kiện. Mỗi sự kiện mang số thứ tự tăng dần, nên khi kết nối lại client chỉ cần gửi ?after_seq=N để backend phát lại những sự kiện đã bỏ lỡ.

Quyền có kiểm soát

Thao tác filesystem được kiểm tra đường dẫn; yêu cầu nhạy cảm phải xin phép người dùng.

Tự kết nối lại

Khi WS đứt, client thử lại với backoff lũy thừa (1s → 30s).