4. Phase 2: 제어 및 모니터링 인터페이스 (Master → Client HTTP)
마스터 서버가 클라이언트를 호출할 때는 반드시 발급받은 access_token을 사용하며, 클라이언트는 서명을 검증해야 한다 (MUST).
4.1. 클라이언트 설정 동기화 (Client Configuration)
클라이언트는 구동 직후 시스템 한계치와 지원 능력을 서버에 동기화한다. 마스터는 이 값으로 요청을 스로틀링하며, capabilities에 없는 기능을 요구해서는 안 된다 (MUST).
Endpoint: POST /v1/nodes/config (Master Server 제공)
Request (Client → Master):
{
"rate_limit": "Number (필수, 초당 처리 가능한 최대 HTTP 요청 수)",
"max_frame_size": "Number (필수, WSS 단일 프레임 최대 바이트)",
"reattach_window": "Number (필수, WSS 단절 시 대기 시간 초)",
"max_buffer_size": "Number (필수, 최대 메모리 버퍼 바이트)",
"buffer_overflow_policy": "String (필수, 'RING' 또는 'DROP')",
"capabilities": ["String (선택, e.g., 'vision_v1', 'tool_call_v2')"]
}
4.2. 헬스 체크 (Health Check)
Endpoint: GET /v1/health (Local Client 제공)
Response:
{
"status": "String (필수, 'online', 'busy', 'error')",
"uptime": "Number (필수, 클라이언트 가동 초)",
"active_sessions": "Number (선택, 현재 유지 중인 세션 수)"
}
상태 전이 규칙: 활성 세션이 0개면 즉시 online. 1개 이상 존재 시 busy. 세션이 0이 되면 즉시 online으로 복귀해야 한다 (MUST).
4.3. 에이전트 탐색 (Agent Discovery)
클라이언트 내 실행 가능한 에이전트 목록을 조회한다.
Endpoint: GET /v1/agents (Local Client 제공)
Response:
{
"agents": [
{
"id": "String (고유 식별자)",
"name": "String (세션 식별자로 사용될 이름)",
"is_active": "Boolean (에이전트 활성화 상태)"
}
]
}
4.4. 파일 탐색 (Directory Browsing)
인가된 작업 경로 내의 디렉토리를 조회한다.
Endpoint: POST /v1/fs/list (Local Client 제공)
Request: {"target_path": "String (필수, 조회할 절대 경로)"}