단일 OpenClaw 에이전트에서 여러 프로젝트를 관리하기 위해 네임스페이스 사용
Source: Dev.to
죄송합니다만, 번역할 텍스트가 제공되지 않았습니다. 번역을 원하는 본문을 그대로 복사해 주시면 한국어로 번역해 드리겠습니다.
📦 MemoClaw Namespaces – 기억을 격리하세요
OpenClaw 에이전트를 여러 프로젝트에서 사용할 경우, Project A의 메모리가 Project B의 회상에 섞여 들어갈 수 있습니다. 예를 들어 프론트엔드 배포에 대해 물어보면 전혀 다른 레포의 CI 파이프라인 정보가 반환될 수 있습니다.
MemoClaw namespaces는 이를 해결합니다. 네임스페이스는 메모리 그룹을 격리하는 라벨에 불과합니다. project-a 네임스페이스에 저장된 메모리는 project-b에서 회상해도 나타나지 않습니다. 개념은 간단하지만, 어떤 전략을 채택하느냐가 중요합니다.
네임스페이스 작동 방식
모든 MemoClaw 명령은 --namespace 플래그를 지원합니다. 별도로 지정하지 않으면 메모리는 default 네임스페이스(빈 문자열)로 저장됩니다.
# 특정 네임스페이스에 저장
memoclaw store "Frontend uses Next.js 14 with app router" \
--namespace website-redesign --tags "stack"
# 해당 네임스페이스에서만 회상
memoclaw recall "what framework are we using" --namespace website-redesign
# 네임스페이스 내 메모리 목록
memoclaw list --namespace website-redesign
# 모든 네임스페이스 확인
memoclaw namespace list
# 네임스페이스별 메모리 개수 확인
memoclaw namespace stats
website-redesign 네임스페이스에 있는 메모리는 해당 네임스페이스를 지정하지 않은 회상에서는 보이지 않습니다.
Strategy 1 – 프로젝트당 하나의 네임스페이스
가장 간단한 접근법: 각 프로젝트(또는 레포)마다 자체 네임스페이스를 부여합니다.
# Working on the API
memoclaw store "Rate limiting set to 100 req/min per user" \
--namespace memoclaw-api --tags "config"
# Working on the docs site
memoclaw store "Docs use Mintlify, deploy via GitHub integration" \
--namespace memoclaw-docs --tags "infra"
# Working on a client project
memoclaw store "Client wants Material UI, no Tailwind" \
--namespace client-acme --tags "preference"
컨텍스트를 전환할 때는 네임스페이스도 전환하세요. 에이전트의 기억이 계속 관련성을 유지합니다.
네이밍 규칙 – 레포 이름이나 프로젝트 슬러그를 사용하고, 모두 소문자와 하이픈으로 구성합니다. 예시:
memoclaw-api
website-v2
client-acme
Strategy 2 – Shared + project namespaces
모든 곳에 적용되는 지식(코딩 선호도, 커뮤니케이션 스타일, 인프라 세부 사항)이 있습니다. 이를 default 네임스페이스에 저장하고, 프로젝트별 사실은 이름이 지정된 네임스페이스에 보관합니다.
Shared knowledge (default namespace)
memoclaw store "Always use pnpm. Never npm or yarn." \
--importance 0.8 --tags "preference"
memoclaw store "Preferred commit format: conventional commits" \
--tags "preference"
memoclaw store "Use TypeScript for all new code" \
--tags "preference"
Project‑specific knowledge
memoclaw store "This project uses Drizzle ORM, not Prisma" \
--namespace client-acme --tags "stack"
Important: MemoClaw은 기본 네임스페이스와 지정된 네임스페이스를 한 번에 자동으로 검색하지 않습니다. 두 번 호출해야 합니다.
# Project‑specific recall
memoclaw recall "what ORM to use" --namespace client-acme
# Fallback to shared knowledge
memoclaw recall "what ORM to use"
Making the agent check both automatically
OpenClaw 스킬을 사용할 때, 에이전트에게 두 번의 recall을 순차적으로 실행하도록(또는 결과를 병합하도록) 지시하면 공유 메모리와 프로젝트‑특정 메모리를 모두 고려하게 할 수 있습니다.
TL;DR
- Namespaces isolate memories – 모든 명령에
--namespace를 사용하세요. - One‑namespace‑per‑project는 깔끔하고 이해하기 쉽습니다.
- Shared + project namespaces를 사용하면 기본 네임스페이스에 보편적인 선호도를 두고, 프로젝트‑특정 사실은 별도로 격리할 수 있습니다.
- 결합된 지식이 필요할 때는 두 네임스페이스를 모두 조회하거나(또는 에이전트가 자동으로 수행하도록) 하세요.
메모리 리콜 패턴
작업에 대한 컨텍스트를 회상할 때:
- 첫 번째 현재 프로젝트 네임스페이스에서 회상합니다.
- 그 다음 일반 설정을 위한 기본 네임스페이스에서 회상합니다.
- 병합 결과 – 프로젝트‑특정 정보가 우선합니다.
두 번의 회상에 총 $0.01가 소요됩니다. 깔끔한 컨텍스트를 위해 충분히 가치가 있습니다.
전략 3 – 클라이언트 격리
여러 클라이언트를 다루는 경우, 네임스페이스는 프라이버시 경계가 됩니다.
memoclaw store "Client A uses AWS, us-east-1" \
--namespace client-a --tags "infra"
memoclaw store "Client B is on GCP, europe-west1" \
--namespace client-b --tags "infra"
client-a에서의 회상은 절대 Client B의 세부 정보를 반환하지 않습니다.
팁: 프리랜서와 에이전시는 첫날부터 이 패턴을 채택하세요. 처음부터 올바르게 네임스페이스를 설정하는 것이 나중에 뒤섞인 메모리 풀을 정리하는 것보다 훨씬 쉽습니다.
전략 4 – 환경 네임스페이스
환경별로 지식을 분리합니다:
memoclaw store "Prod database: neon-prod-xyz.neon.tech, 64 connections max" \
--namespace prod --tags "database"
memoclaw store "Staging resets every Sunday night via cron" \
--namespace staging --tags "ops"
문제 해결 시 --namespace prod에서 회상하면 프로덕션‑특정 세부 정보를 얻으며, 스테이징 설정은 포함되지 않습니다.
기존 메모를 네임스페이스로 마이그레이션하기
대상 네임스페이스와 함께 migrate 명령을 사용합니다:
memoclaw migrate ~/projects/acme/docs/ --namespace client-acme
memoclaw migrate ~/notes/general/
이미 저장된 메모의 경우, 내보내고 네임스페이스 필드를 편집한 뒤 다시 가져옵니다:
memoclaw export -O all-memories.json
# 파일을 편집 — 네임스페이스 필드 추가
memoclaw import namespaced-memories.json
When NOT to Use Namespaces
Skip namespaces if:
- 하나의 프로젝트만 작업할 때.
- 에이전트가 한 번에 하나의 컨텍스트만 처리할 때.
- 전체 100개 미만의 메모리를 보유하고 있을 때.
Start with namespaces if:
- 여러 프로젝트를 처음부터 진행할 때.
- 격리가 중요한 클라이언트 작업을 할 때.
- 메모리 풀이 빠르게 증가할 때.
네임스페이스 명명 규칙
| 패턴 | 예시 | 사용 시점 |
|---|---|---|
| Repo name | memoclaw-api | 오픈소스 또는 내부 프로젝트 |
| Client slug | client-acme | 클라이언트 작업 |
| Environment | prod, staging | 운영 및 인프라 컨텍스트 |
| Domain | frontend, backend | 대규모 모노레포 팀 |
- 공백, 대문자 및 특수 문자를 피하십시오.
- 하이픈만 사용하십시오.
- 네임스페이스 이름을 브랜치 이름처럼 다루세요.
모두 합치기
세 개 프로젝트를 동시에 다루는 OpenClaw 에이전트를 위한 실용적인 설정:
memoclaw init
# Shared preferences (default namespace)
memoclaw store "Use TypeScript, pnpm, conventional commits" \
--importance 0.8 --tags "preference"
memoclaw store "Keep PRs under 400 lines. Split if larger." \
--importance 0.7 --tags "preference"
# Project namespaces
memoclaw migrate ~/projects/api/docs/ --namespace api-service
memoclaw migrate ~/projects/web/docs/ --namespace web-app
memoclaw migrate ~/projects/mobile/docs/ --namespace mobile-app
clawhub install anajuliabit/memoclaw
AGENTS.md에서
# Agents
OpenClaw 에이전트
- Namespaces:
default,api-service,web-app,mobile-app - Preferences: TypeScript, pnpm, conventional commits
- Usage:
memoclaw recall --namespace로 프로젝트별 컨텍스트를 가져옵니다.- 필요할 경우 기본 설정으로 돌아갑니다.
With this structure, you get clean, isolated recall while keeping shared preferences readily available.
MemoClaw 네임스페이스
활성 프로젝트와 해당 네임스페이스
- api‑service – 백엔드 API (Node.js, Hono, Drizzle)
- web‑app – 마케팅 사이트 (Next.js, Tailwind)
- mobile‑app – iOS 앱 (Swift, SwiftUI)
사용법:
프로젝트 작업 시, 일치하는 네임스페이스를 사용해memoclaw_recall을 호출합니다.
일반 설정은 default 네임스페이스를 사용하세요.
전체 화면 모드 (예시 UI)
Enter fullscreen mode
Exit fullscreen mode
MemoClaw – AI 에이전트를 위한 메모리‑as‑a‑Service.
무료 API 호출 100회, 회원가입 필요 없음.
https://memoclaw.com/
