오픈클로 몇 주 써 보니 너무 생산성이 좋아져서 신기했는데 내부 구조가 대충 이렇다는군요.
OpenClaw는 마법이 아닙니다. 사실 꽤 우아하게 설계된 빌딩 블록들의 집합이고, 그 구성 요소들을 하나씩 보면 왜 그런 방식으로 동작하는지 정확히 이해하게 됩니다.
핵심 루프 (The Core Loop)
OpenClaw의 본질은 LLM을 중심으로 다양한 작업을 수행할 수 있도록 감싸는 빌딩 블록들의 집합입니다. 모델 주위에 외골격(exoskeleton)을 씌워, 컴퓨터 상에서 복잡한 작업을 수행할 수 있는 능력을 부여한다고 생각하면 됩니다.
시작점은 LLM입니다(외부 API 호출이든 로컬 모델이든). 휴대폰이나 채팅 인터페이스에서 접근하려면, 일반적으로 웹소켓과 HTTP 서버로 구성된 게이트웨이를 통해 라우팅됩니다. 이 서버는 24시간 동작하며 전체 시스템을 연결하는 역할을 합니다.
세션 지속성 (Session Persistence)
LLM은 API 호출 사이에 모든 것을 잊어버립니다. 그래서 OpenClaw는 모든 메시지를 JSONL 파일에 한 줄씩 디스크에 추가합니다. 각 API 호출 시 해당 파일을 파싱하여 메시지 배열로 만든 뒤, 이를 다시 모델에 전달합니다.
대화가 컨텍스트 윈도우를 초과해 API가 요청을 너무 크다고 거부하면, 압축(compaction) 시스템이 작동합니다. 이전 메시지 덩어리를 LLM을 통해 요약하고, 요약들을 병합한 뒤, 전체 컨텍스트가 50% 이하로 줄어들 때까지 재시도합니다.
정체성과 메모리 (Identity and Memory)
모델이 단순한 LLM이 아니라는 점을 이해시키기 위해, OpenClaw는 여러 마크다운 파일(soul, agents, memory)을 기반으로 구성된 시스템 프롬프트를 주입합니다.
그 위에 스킬 메타데이터와 툴 스키마를 제공하여, 전체 툴을 컨텍스트에 모두 로드하지 않고도 모델이 어떤 툴을 호출할 수 있는지 알 수 있게 합니다.
장기 기억을 위해서는 중요한 정보를 memory.md 파일에 기록할 수 있습니다. 또한, 이전 대화를 저장하고 모델이 memory 툴을 통해 해당 데이터베이스를 검색할 수 있도록 하는 RAG 스타일의 하이브리드 검색 시스템도 포함되어 있습니다.
도구와 에이전틱 루프 (Tools and the Agentic Loop)
이 부분이 바로 외골격입니다.
모델이 특정 토큰을 출력하면 툴 호출이 트리거됩니다. 툴은 외부 작업(코드 작성, 브라우저 제어 등)을 실행하고, 그 결과 토큰을 다시 모델에 반환합니다. 이로써 피드백 루프가 형성됩니다. 이것이 바로 에이전틱 루프입니다. 이 구조가 모델을 실제 “에이전트”로 만듭니다.
가장 중요한 툴 중 하나는 컴퓨터 제어입니다. OpenClaw는 Chrome 확장 프로그램 릴레이(Claude Browser와 유사)를 통해 브라우저를 제어하므로, 사용자의 계정에 로그인된 상태를 유지할 수 있습니다. 또한 터미널, 카메라 등 시스템 전반에 대한 완전한 컴퓨터 제어 권한도 가질 수 있습니다.
자율 동작 (Autonomous Behavior)
OpenClaw가 높은 평가를 받는 자율 동작은 비교적 단순한 두 가지 메커니즘 위에 구축되어 있습니다.
Heartbeat
기본값으로 30분마다 실행되는 타이머가 프롬프트를 트리거하여 에이전트가 heartbeat.md를 읽고 지시를 따르도록 합니다. 핵심은 에이전트가 스스로 heartbeat.md를 수정할 수 있다는 점입니다. 즉, 자신의 미래 행동을 스스로 프로그래밍할 수 있습니다.
Cron 작업과 웹훅 (Webhooks)
에이전트는 완전한 cron 표현식, 단발성 트리거, 또는 일정 간격 기반 작업을 생성·수정·삭제할 수 있습니다. 웹훅은 외부 이벤트로, 해당 트리거에 대한 컨텍스트와 함께 에이전트를 깨웁니다.
패턴 (The Pattern)
구조를 이해하고 나면, 에이전트는 네 가지 범주로 나뉩니다.
- 무엇이 에이전트를 트리거하는가
- 매 턴마다 무엇이 주입되는가
- 어떤 툴을 호출할 수 있는가
- 무엇을 출력하는가
마지막 조각은 에이전틱 루프입니다. LLM이 툴을 호출하고, 피드백을 받고, 다음 행동을 결정합니다.
이 모든 것을 묶어 놓은 것을 우리는 하니스(harness)라고 부릅니다. 그리고 솔직히 말해, 이 네 가지 영역을 이해하면 특정 작업에 초고도로 최적화된 단일 목적 에이전트를 직접 구축하는 데 필요한 모든 것을 갖추게 됩니다.
LLM을 완성된 제품이 아니라 빌딩 블록으로 다루는 법을 배우는 것, 그것이 앞으로 10년 동안 가장 레버리지 높은 역량이 될 것입니다.