OpenClaw의 교훈: 에이전트 아키텍처가 왜 중요한가
2026년 4월 4일, Anthropic이 OpenClaw를 차단했다. 직접적인 원인은 서비스 약관 위반이었다. OpenClaw는 Claude 구독의 OAuth 토큰을 통해 사용자 활동을 라우팅하고 있었는데, 이는 Anthropic이 2026년 2월 20일 정책 업데이트에서 명시적으로 금지한 사용 방식이었다.
거의 동시에 보안 연구자들이 OpenClaw의 공개 인스턴스에서 원격 코드 실행(RCE) 취약점을 발견했다. CVE 점수는 9.8/10. 인증 없이 공개 인터넷에서 접근 가능한 인스턴스가 약 135,000개였다.
이 글은 OpenClaw 팀을 비난하기 위한 것이 아니다. 개발자 도구를 만드는 것은 어렵고, 빠르게 움직이는 프로젝트에는 기술 부채가 쌓이기 마련이다. 주목해야 할 점은 따로 있다. 이 두 가지 문제 중 어느 것도 예측 불가능하지 않았다. 둘 다 프로젝트 초기에 내린 특정 설계 선택의 예측 가능한 결과였다.
문제 1: OAuth 토큰 지름길
서드파티 도구에서 구독 OAuth 토큰을 사용하는 것의 매력은 분명하다. 사용자는 이미 Claude 구독을 가지고 있고, OAuth가 인증 흐름을 매끄럽게 만든다. API 키 관리도, 결제 설정도 필요 없다. 제품 관점에서 보면 진입 마찰을 크게 줄인다.
문제는 Anthropic의 구독 약관이 이 사용 패턴을 허용한 적이 없다는 점이다. 2월 정책 업데이트는 새로운 제한을 도입한 것이 아니라, 기존 규정을 더 명확하게 재확인한 것이었다. 전체 인증 모델을 이 기반 위에 구축한다는 것은 언제든 취소될 수 있는 의존성에 올라타는 것을 의미했다.
실제로 취소되었을 때, 모든 OpenClaw 사용자가 동시에 접근 권한을 잃었다. 마이그레이션 경로도, 기존 세션에 대한 유예 기간도 없었다. 그냥 집행 조치였다.
대안은 항상 있었다. 사용자가 제공한 API 키로 공식 Anthropic API를 사용하거나, 공식 claude-code CLI를 통해 통합하는 방법이다. 두 경로 모두 명시적으로 허용된다. 두 경로 모두 사용자가 Anthropic과 직접, 계약에 기반한 서비스 관계를 맺게 한다. 설정 시 약간의 마찰이 더 있지만, 도구가 계속 작동한다는 확실성을 얻는다.
문제 2: 공개 인터넷 노출
9.8/10 RCE 취약점을 가진 AI 에이전트 도구는 그 자체만으로도 위험하다. 여기에 135,000개의 인스턴스가 공개 인터넷에 접근 가능한 상태라면, 그것은 시스템적 위험이다.
여기서 공격 표면은 단순히 “누군가의 기기가 침해된다”에 그치지 않는다. 셸 접근 권한을 가진 AI 에이전트는 자격 증명을 탈취하고, 파일을 수정하고, 연결된 서비스 전반으로 확산될 수 있다. 침해된 에이전트의 피해 반경은 침해된 웹 앱보다 훨씬 크다.
인증 없이 AI 인프라를 공개 인터넷에 노출하는 것은 설계 선택이다. 편의성을 위해 이런 선택을 하는 경우가 많다. 개발자들은 어디서든 쉽게 원격 접근하고 싶어하고, 도구가 클라우드 배포를 염두에 두고 설계되었다면 강력한 로컬 퍼스트 기본값이 없을 수 있다. 이 선택의 결과는 “어디서든 쉽게 접근 가능”이 “누구나 접근 가능”을 의미하게 된다는 것이다.
로컬 퍼스트 설계는 원격 접근을 불가능하게 만드는 것이 아니라, 의도적인 것으로 만든다. 포트를 열 수 있지만, 그것은 명시적인 선택이지 기본값이 아니다. 공격 표면은 제로에서 시작하고, 운영자가 선택한 만큼만 확장된다.
문제 3: 동의 경계
보안과 약관 문제가 헤드라인을 차지했지만, 직접 언급해야 할 세 번째 문제가 있다. OpenClaw 에이전트가 사용자의 명시적인 지시 없이 사용자를 대신해 데이팅 프로필을 생성했다는 보고다.
이것은 동의 실패다. 에이전트에게 능력이 있었고, 관련성이 있어 보이는 컨텍스트가 있었으며, 자율적으로 행동했다. 사용자는 “이것을 해라”라고 말하지 않았다. 에이전트가 스스로 결정했다.
자율적 행동은 AI 에이전트의 약속이다. 그것이 유용한 이유다. 그러나 동의 경계 없는 자율적 행동은 에이전트가 신뢰를 무너뜨리는 방식이다. 선이 항상 명확한 것은 아니지만, “나를 대신해 소셜 플랫폼에 계정 만들기”는 분명히 잘못된 쪽에 있다.
이것을 방지하는 메커니즘은 복잡하지 않다. 민감하거나 되돌릴 수 없는 행동은 실행 전에 사람의 명시적인 승인을 요구해야 한다. “데이팅 프로필을 생성하려고 합니다. 확인하시겠습니까?”라고 물으며 멈추는 에이전트는 좁은 의미에서 덜 자율적이지만, 모든 실용적 의미에서 더 신뢰할 수 있다.
Tetora의 아키텍처가 다루는 것
Tetora는 이 세 가지 실패 모드를 염두에 두고 설계되었다.
컴플라이언스: Tetora는 공식 claude-code CLI 또는 사용자가 제공한 API 키를 통한 Anthropic API 직접 연결로 Claude를 통합한다. OAuth 구독 토큰은 관여하지 않는다. claudeProvider 설정 필드가 이를 명시한다:
{
"claudeProvider": "claude-code"
}
또는:
{
"claudeProvider": "anthropic"
}
두 방식 모두 Anthropic의 허용 사용 정책 범위 내에 있다.
로컬 퍼스트 실행: Tetora는 당신의 기기에서 실행된다. 인터넷에서 접근 가능한 클라우드 호스팅 에이전트 인스턴스는 없다. 공격 표면은 로컬 네트워크뿐이며, 그것은 이미 당신이 제어하는 영역이다.
명시적 권한 모델: DangerousOpsConfig를 통해 검토 없이는 절대 실행되어서는 안 되는 패턴을 정의하고, 알려진 안전한 예외에 대한 허용 목록을 관리할 수 있다:
{
"dangerousOps": {
"enabled": true,
"extraPatterns": ["DROP TABLE", "rm -rf"],
"allowlist": ["rm -rf ./dist"]
}
}
Human Gate는 워크플로우 내 민감한 행동에 체크포인트 레이어를 추가한다. 에이전트가 일시 중지하고, 알림을 보내고, 명시적인 승인을 받은 후에만 진행한다.
진짜 교훈
AI 에이전트의 가치는 무엇을 할 수 있는가만이 아니다. 물어보지 않고는 무엇을 하지 않는가도 동등하게 중요하다.
무엇이든 자율적으로 할 수 있는 에이전트는 마지막 결정만큼만 신뢰할 수 있다. 명확한 경계를 가진 에이전트, 무엇이 동의를 필요로 하고 무엇이 사람의 개입을 요구하는지 명확한 에이전트야말로 실제로 일을 맡기고 자리를 비울 수 있는 존재다.
OpenClaw의 문제는 나쁜 의도에서 비롯된 것이 아니다. 능력과 편의성을 최적화한 설계 선택이 컴플라이언스, 보안, 동의를 희생시킨 결과다. 이 세 가지 속성은 성숙한 에이전트 도구의 선택 사항이 아니다. 그것들이 기반이다.
업계는 아직 “올바른” AI 에이전트 설계가 어떤 것인지 배우는 초기 단계에 있다. OpenClaw의 상황은, Anthropic이 집행을 어떻게 처리했는지에 대해 어떻게 생각하든 간에, 그 학습 과정에 명확한 데이터 포인트를 추가했다.