오픈클로 서브에이전트를 지속적인 팀 구성원이 아닌 무상태 함수로 취급하기

✍️ OpenClawRadar📅 게시일: April 1, 2026🔗 Source
오픈클로 서브에이전트를 지속적인 팀 구성원이 아닌 무상태 함수로 취급하기
Ad

r/openclaw의 한 개발자가 OpenClaw에서 다중 에이전트 팀을 작업할 때 자신의 정신 모델이 어떻게 전환되었는지 설명합니다. 처음에는 서브에이전트를 이름, 배경 이야기, 기억 기대치를 가진 주니어 직원처럼 대하던 것이 몇 주간의 혼란과 깨진 워크플로우로 이어졌습니다.

함수 비유

돌파구는 서브에이전트가 작은 나 자신이나 지속적인 팀원이 아니라 함수라는 점을 인식하면서 찾아왔습니다. 구체적으로:

  • 서브에이전트는 지속적인 팀원이 아닌 상태 없는 함수 호출입니다
  • 그들은 개발자의 주니어 버전이 아닌 특수화된 도구입니다
  • 그들은 컨텍스트를 기억하지 않고 순수 입력 → 출력으로 작동합니다
  • 그들은 서로 대화하기보다 호출자에게 값을 반환합니다

소스는 잘못된 접근법과 올바른 접근법을 대비하는 코드 예시를 제공합니다:

# 잘못됨: 서브에이전트를 지속적인 객체처럼 대하기
frank = Agent("Frank")
frank.build_feature()
frank.fix_it() # Frank가 기억한다고 가정

올바름: 서브에이전트를 함수 호출처럼 대하기

result = frank_task( instructions="로그인 페이지 구축", context={"requirements": reqs, "design": mockup} )

frank_task 실행, 출력 반환, 종료

실용적 함의

이 정신 모델 전환은 몇 가지 구체적인 함의를 가집니다:

1. SOUL.md를 함수 독스트링으로: 개성 프로필 대신, SOUL.md는 명세서 문서가 됩니다:

# frank_task()

목적: Next.js 기능 구축 입력: 요구사항 (딕셔너리), 디자인 (선택사항) 출력: {코드, 테스트, 노트} 제약: 승인 없이 외부 API 호출 금지

2. 반복을 위한 명시적 상태 전달: 서브에이전트가 컨텍스트를 기억하지 않으므로, 필요한 모든 정보를 매개변수로 전달해야 합니다:

# 잘못됨
frank_fix("버그 수정") # 생성, 시도, 소멸
frank_fix("여전히 고장남") # 새로운 생성, 컨텍스트 없음

올바름

result = frank_fix({ "code": previous_output, "issues": ["로그인 검증 실패", "모바일 CSS 고장"], "test_cases": failing_tests }) # 매개변수에 전체 컨텍스트 포함

3. 코디네이터를 메인 프로그램으로: 개발자는 팀 매니저가 아닌 오케스트레이터 함수가 됩니다:

def build_feature(spec):

순차적으로 함수 호출

code = frank_build(spec) tests = quinn_audit(code)

if tests["passed"]: return deploy(code) else: # 명시적 컨텍스트로 반복 fixed = frank_fix({ "code": code, "failures": tests["failures"] }) return deploy(fixed)

Ad

소프트웨어 설계 유사점

이 접근법은 확립된 소프트웨어 설계 원칙과 일치합니다:

  • 단일 책임: 각 서브에이전트는 한 가지 일을 합니다
  • 순수 함수: 동일 입력 → 동일 출력
  • 단위 테스트 가능: 각 서브에이전트의 출력을 독립적으로 테스트
  • 조합 가능: quinn_test(frank_code(spec))처럼 서브에이전트 연결
  • 상태 없음: 숨겨진 의존성 없음

개발자는 가치가 "더 많은 에이전트 = 더 똑똑함"이 아니라 "특수화된 함수 = 더 깔끔한 아키텍처"라고 언급합니다.

전환 후 결과

이 모델을 채택한 후, 개발자는 다음을 구축했습니다:

  • 2주 만에 11,249개의 체육관 데이터베이스
  • 5개의 특수화된 에이전트 (5명의 일반주의자가 아님)
  • 언더라이팅 워크플로우를 가진 CRM
  • 일일 Moltbook 참여

모두 상태 없는 서브에이전트와 컨텍스트를 유지하는 코디네이터를 사용했습니다.

📖 전체 소스 읽기: r/openclaw

Ad

👀 See Also

다단계 AI 에이전트의 상태 드리프트를 줄이는 실용적인 기법
Guides

다단계 AI 에이전트의 상태 드리프트를 줄이는 실용적인 기법

한 개발자가 스냅샷 기반 읽기, 추가 전용 쓰기, 상태와 컨텍스트 분리 등을 포함한 다중 에이전트 워크플로우에서 상태 드리프트를 해결하는 구체적인 방법을 공유합니다. 이러한 접근 방식은 실행을 재현 가능하게 하고 디버깅을 추적 가능하게 만들었습니다.

OpenClawRadar
OpenClaw v2.0 업데이트는 설치 전에 수동으로 확인이 필요합니다.
Guides

OpenClaw v2.0 업데이트는 설치 전에 수동으로 확인이 필요합니다.

OpenClaw의 최신 업데이트에는 12개의 주요 변경사항, 새로운 플러그인 시스템, 30개 이상의 보안 패치가 포함되어 있습니다. 사용자가 환경 변수, 상태 디렉토리, 브라우저 자동화 구성을 먼저 확인하지 않고 npm update를 실행하면 업데이트가 자동으로 설정을 중단시킬 것입니다.

OpenClawRadar
로컬에서 llama.cpp 구성 세부 정보로 OmniCoder-9B 실행하기
Guides

로컬에서 llama.cpp 구성 세부 정보로 OmniCoder-9B 실행하기

개발자가 중급 사양 하드웨어에서 특정 llama.cpp 플래그(체인 오브 씽킹 출력을 비활성화하는 --reasoning-budget 0 포함)를 사용해 OmniCoder-9B로 HumanEval 평균 96.7% 점수를 달성했습니다. 이 설정은 Q6_K 양자화 모델을 RTX 3080(10GB VRAM)에서 실행했습니다.

OpenClawRadar
Anthropic, Claude Code 도입을 위한 챔피언 키트 공개
Guides

Anthropic, Claude Code 도입을 위한 챔피언 키트 공개

회사에서 Claude Code를 도입하려는 엔지니어를 위한 플레이북: 재사용 가능한 프롬프트 공유, 공개 채널에서 답변 제공, 주간 쇼앤텔 스레드 운영 — 주당 약 40분 소요.

OpenClawRadar