OpenClaw 구축·운영 (18/26) — 워크스페이스 통합과 Google 서비스 연동

에이전트 간 데이터 파편화를 해결하고 Gmail/Calendar를 자동화한 과정


핵심 요약

  • OpenClaw 서브 에이전트들의 독립 워크스페이스를 하나로 통합해 데이터 연속성을 확보했다
  • 에이전트 활성 상태 모니터링을 위해 상태 파일 기반 Liveness 체크를 도입했다
  • Google Cloud Console에서 OAuth User Type을 External로 변경해야 개인 계정 API 접근이 가능하다

배경

OpenClaw 프레임워크는 서브 에이전트(Worker, Researcher 등)마다 독립적인 샌드박스 워크스페이스를 생성한다. 보안에는 유리하지만, 에이전트 간 결과물 공유가 필요한 상황에서는 데이터 파편화가 문제가 됐다. 이걸 해결하면서 동시에 Gmail/Calendar 연동까지 구축한 과정을 정리한다.

본문

워크스페이스 격리 해제와 공용 디렉토리 매핑

기본적으로 OpenClaw의 sessions_spawn은 에이전트별로 workspace-cheap-worker 같은 가변 디렉토리를 생성한다. 이를 하나의 공용 경로로 고정했다.

heartbeat-worker, monitor, researcher 등 7개 에이전트 설정 파일(~/.openclaw/agents/*.json)에 동일한 워크스페이스 경로를 명시한다.

{
  "name": "researcher",
  "workspace": "C:\\Users\\[사용자]\\.openclaw\\workspace"
}

워크스페이스 통합 후에는 물리적 디렉토리 생성 여부로 에이전트 활성 상태를 판단할 수 없게 된다. 이를 보완하기 위해 에이전트 구동 시 agent_status.md 파일의 수정 시간을 갱신하는 로직을 추가하여 Liveness를 확인하도록 했다.

Google 서비스 연동 (OAuth 2.0)

에이전트가 이메일과 일정을 관리하기 위해 gogcli를 활용했다.

Google Cloud Console 설정 시 핵심 포인트: 1. Gmail API, Google Calendar API 활성화 2. OAuth 동의 화면에서 User Type을 Internal에서 External로 변경 (개인 계정 접근 시 필수) 3. 테스트 사용자에 본인 Gmail 계정 추가

clawhub install gog
gog auth credentials C:\Users\[사용자]\.openclaw\credentials\google-client-secret.json
gog auth add [ID]@gmail.com --services gmail,calendar

에이전트가 30분 단위로 실행하는 명령 예시:

기능 명령
메일 확인 gog gmail search 'newer_than:30m in:inbox' --max 20 --json
일정 확인 gog calendar events primary --from [시작] --to [종료]

시행착오 / 주의사항

  • Node.js PATH 미등록 상태에서 연동 도구들이 정상 작동하지 않았다. 환경 변수 등록이 선행 조건이다.
  • Google API에서 User Type이 Internal인 채로 두면 개인 계정 접근이 차단된다. External 전환을 놓치기 쉽다.

마무리

파편화된 에이전트 작업 공간을 통합해 데이터 연속성을 확보하고, Google API 연동으로 에이전트가 실질적인 업무 데이터를 처리할 수 있는 기반을 마련했다. 워크스페이스 격리가 필요한 상황과 공유가 필요한 상황을 구분해서 설계하는 것이 핵심이다.

시리즈 전체 안내: 시리즈 목차

댓글

이 블로그의 인기 게시물

"LLM 핵심 학습 (1/6) — 기본: 토큰화·임베딩·어텐션·위치 인코딩"

"LLM 핵심 학습 (2/6) — 파인튜닝: LoRA·QLoRA·증류·Adapter"

"ML 기초 학습 (1/9) — 머신러닝과 sklearn: 학습의 좌표계"