에이전트 런타임 아키텍처 (Agent Runtime Architecture)

LLM API 위에 얹히는 에이전트 운영 레이어의 설계. 시스템 프롬프트 자동 조립 + 세션 관리 + 확장 도구 + 스케줄러 + 채널 라우팅의 5개 레이어가 “도구”와 “자율 에이전트”를 가르는 핵심이다. 같은 LLM API를 사용해도 런타임 레이어에 따라 완전히 다른 에이전트가 된다.

핵심 명제: 같은 엔진, 다른 차체

Claude API (Anthropic) ← 같은 엔진
   ↓
터미널 Claude Code    OR    OpenClaw (에이전트 런타임)
   (F1 레이싱카)              (자율주행 택시)

같은 LLM API를 사용하지만, 런타임 레이어가 다르면 에이전트의 능력과 행동 방식이 완전히 달라진다. (출처: bbojjak-openclaw-runtime-architecture-lesson07)

런타임 레이어 5가지

1. 시스템 프롬프트 자동 조립

에이전트의 정체성·규칙·도구 정보를 매 대화 시 자동으로 컨텍스트에 주입한다.

구분방식효과
터미널 Claude CodeCLAUDE.md 1개 자동 로드나머지 파일 수동 요청 필요
OpenClaw6개 파일 자동 주입규칙·정체성 영구 적용, 절대 안 까먹음

OpenClaw 자동 주입 6개 파일:

  • SOUL.md (성격·말투), AGENTS.md (업무 규칙·절대 규칙), TOOLS.md (도구), USER.md (팀원), IDENTITY.md (메타데이터), HEARTBEAT.md (루틴)

왜 중요한가: 절대 규칙(agent-error-learning-loop)이 20개+가 되어도 모든 대화에 자동 적용된다. 터미널은 세션 닫으면 규칙이 증발하지만, 런타임이 자동 주입하면 영구 보장된다.

2. 세션 관리 및 컴팩션

agent-session-architecture에서 상세히 다룸.

  • 채팅 컨텍스트별 세션 분리
  • 컨텍스트 윈도우 초과 시 자동 컴팩션
  • 세션 장기 유지 (채널에 바인딩)

터미널과 달리 런타임이 세션 생명주기를 관리하므로 서버 재시작·터미널 닫기 후에도 세션이 유지된다.

3. 확장 도구 (Extended Tools)

런타임이 LLM에게 외부 세상과 연결하는 도구를 제공한다.

구분도구 범위
터미널 Claude Code파일 읽기/쓰기, 터미널 명령, 웹 브라우저 (로컬 중심)
OpenClaw+ message(Slack/카톡/이메일), web_search, sessions_spawn, sessions_send, nodes, tts, image…

도구 vs 자동화 에이전트 차이:

터미널: 사람 → "지금 이 사람한테 이 내용 보내줘" → 스크립트 실행 (도구)
OpenClaw: 조건 발생 → 에이전트 판단 → 도구 실행 → 자동 발송 (자동화)

같은 스크립트(send_message.sh)라도 누가 언제 왜 호출하느냐에 따라 “도구”와 “자동화 에이전트”가 나뉜다.

4. 스케줄러 (하트비트 + 크론잡)

“시키면 함” vs “알아서 함”의 결정적 차이.

구분동작
터미널사람이 명령할 때만 실행. 터미널 닫으면 끝.
OpenClaw하트비트: 매시간 자동 깨어나 HEARTBEAT.md 체크리스트 실행
크론잡: 정해진 시각에 특정 작업 자동 실행

하트비트와 크론잡의 상세는 heartbeat-mechanism 참조.

핵심: 스케줄러가 없으면 에이전트는 반응적(reactive)이다. 스케줄러가 있으면 능동적(proactive)이 된다.

Hermes 사례에서 이 능동성은 crongateway의 결합으로 설명된다. 사용자는 Telegram 같은 채널로 지시하지만, 실제 런타임은 VPS/Docker 환경에서 계속 살아 있으며 정해진 시간·조건에 맞춰 스킬을 실행한다. 따라서 설치보다 중요한 설계 질문은 “어떤 반복 작업을 어떤 트리거로 맡길 것인가”다. (출처: yt-GsMB3SHHlzI-Hermes-Agent-완벽-구축-가이드)

5. 채널 라우팅

agent-session-architecture에서 상세히 다룸.

  • 다중 채널(Slack, 텔레그램 등)에서 동시 접속 처리
  • 채널별 세션 분리 → 멀티유저 지원
  • 팀 전원이 동시에 사용 가능 (컨텍스트 충돌 없음)

터미널은 한 명이 독점하지만, 런타임의 채널 라우팅이 팀 공유 에이전트를 가능하게 한다.

이 채널 라우팅의 실제 구현체가 gateway-architecture — 단일 장수명 프로세스가 포트 하나에서 모든 채널을 멀티플렉싱으로 처리하고, 채널별 세션을 생성·분배한다. (출처: bbojjak-openclaw-gateway-architecture-lesson14)

6. 학습 루프와 스킬 축적

Hermes 사례에서는 런타임 레이어의 차별점이 단순 채널 연결을 넘어 작업 수행 → 배운 점 저장 → 스킬화 → 재사용 사이클로 확장된다. 이 관점에서 크론·브라우저·LLM Wiki·메모리 기능은 각각 독립 기능이 아니라, 사용자의 반복 작업을 장기적으로 개선하는 학습 루프의 입력 채널이다. (출처: yt-WXka6bp1aYw-헤르메스-에이전트-20분-총정리)

런타임 비교 요약

항목터미널 Claude Code에이전트 런타임(OpenClaw)
엔진Claude APIClaude API (동일)
시스템 프롬프트CLAUDE.md 1개 자동6개 파일 자동 조립
세션 수명터미널 닫으면 종료채널 바인딩으로 장기 유지
도구로컬 중심+ 외부 채널/서비스 연결
자율성사람이 시킬 때만하트비트/크론잡으로 자율 실행
사용자1명 독점팀 전원 동시 (세션 분리)
비유F1 레이싱카자율주행 택시

CLAUDE.md 하네스와의 대응

harness-engineering의 4단계 구축 패턴은 사실 런타임 레이어를 점진적으로 구축하는 과정이다:

하네스 Phase런타임 레이어 대응
Phase 1: CLAUDE.md시스템 프롬프트 (수동 1개)
Phase 2: Skills확장 도구 (절차화)
Phase 3: Hooks스케줄러 (자동화)
Phase 4: Orchestration채널 라우팅 + 멀티에이전트

즉, Claude Code 하네스를 완전히 구축하면 OpenClaw와 같은 레이어 수준에 도달한다.

상황별 선택 가이드

Tip

런타임 선택의 기준은 “목적”이다. 도구가 필요하면 터미널, 자율 에이전트가 필요하면 런타임 레이어가 있는 프레임워크를 사용한다.

상황권장
일회성 작업 (PR 리뷰, 코드 리팩토링)터미널 Claude Code
빠른 실험/탐색터미널 Claude Code
개인 작업터미널 Claude Code
반복 작업 자동화에이전트 런타임
팀 운영 비서에이전트 런타임
24시간 감시/알림에이전트 런타임
외부 채널 연결에이전트 런타임

실전 선택: 단일 전환보다 이중 런타임 분업

ZeroCho 실사용 사례에서는 “한 런타임으로 완전 갈아타기”보다 런타임별 강점 분업이 더 효과적이라는 결론이 제시된다. (출처: yt-zerocho-hermes-openclaw-comparison-2026)

  • OpenClaw 런타임: 텔레그램 토픽/그룹 기반 일상 자동화, 기존 누적 맥락 자산 활용
  • Hermes 런타임: 스킬 축적, 세션 검색, 작업 중 인터럽트 반영 등 학습 루프형 업무

이는 런타임 아키텍처 선택이 “우열” 문제가 아니라, 업무·채널·기억 전략에 맞춘 배치 문제임을 보여준다.

관련 개념

소스