Initial commit: OpenMemory에서 마이그레이션한 장기기억 볼트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
kappa
2026-03-12 16:34:42 +09:00
commit ea090d1c18
20 changed files with 592 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
---
title: OpenClaw 에이전트 시스템
updated: 2026-03-12
source: openmemory
---
## DarkRouter
DarkRouter는 kaffa의 Discord 페르소나
기본 Discord 수신자는 kaffa(481043020960235521)
## BlackSmith
BlackSmith는 DarkRouter의 대리인으로 하위 에이전트들과 소통하고 결과를 전달하는 오케스트레이터
## RabbitMQ 구조
OpenClaw RabbitMQ 구조: 에이전트 간 통신은 RabbitMQ 큐 기반. 관리UI localhost:15672. Gateway는 큐를 직접 안 읽으므로 브릿지 없으면 메시지 누적됨. 브릿지가 3개 큐를 스레드로 동시 consume하여 Discord DM / Telegram API로 실시간 전달.
## 공용 스크립트
공용 mq.py는 ~/.openclaw/scripts/mq.py에 위치
## MCP API
MCP API는 localhost:8766에서 운영되며 기존 8765와 분리됨
## OpenMemory 최적화
OpenMemory 최적화 (2026-03-05): workers 4→1 변경 (동시 요청 충돌로 빈 results 반환 방지), infer=False 설정 (gpt-4o-mini 팩트추출/중복판단 제거, Claude가 직접 수행). 저장 속도 13~59초→약 1초로 개선.
## Stamp 에이전트
OpenClaw Stamp 에이전트 상세: workspace ~/.openclaw/workspace-stamp/, Jinja2 템플릿(templates/dashboard.html, templates/public.html), Stitch(Google AI)로 디자인 생성 → Jinja2로 데이터 주입 → Flux 배포
Stamp 에이전트 통신 정리 (2026-03-08):
- incus-jp1 호스트: Tailscale 100.109.123.1 (agents 프로젝트)
- stamp 컨테이너 명령 실행: ssh kaffa@100.109.123.1 "incus exec stamp --project agents -- ..."
- stamp venv Python: /opt/stamp/venv/bin/python3 (pika 포함, 시스템 python3에는 pika 없음)
- 템플릿 경로: /opt/stamp/data/templates/public.html
- 번역 데이터: /opt/stamp/data/translations.json
- 생성물 경로: /shared/sites/ (btrfs-pool/shared-sites 볼륨, web 컨테이너와 공유)
- REBUILD 명령: RabbitMQ stamp 큐에 {"type":"REBUILD"} 메시지 발행
- RabbitMQ 접속: 100.115.154.78:5672, credentials ironclad/ironclad2026
- 파일 푸시 예시: cat /tmp/file.html | ssh kaffa@100.109.123.1 "incus exec stamp --project agents -- tee /opt/stamp/data/templates/public.html > /dev/null"
- web 컨테이너: 10.253.100.159:80 (Caddy), ironclad.it.com 서빙
## Flux 에이전트
OpenClaw Flux 에이전트 상세: workspace ~/.openclaw/workspace-flux/, API 키 없음 — cloudflare-api(8819), apisix-api(8820) 래퍼 경유
apisix-api 래퍼가 flux 컨테이너(10.253.101.106:8081)로 이전됨 (2026-03-08). Mac Docker apisix-api(localhost:8820) 제거 완료. flux consumer의 APISIX_API_URL=http://127.0.0.1:8081 (.env). apisix-api.service systemd로 gunicorn 실행.
## Stamp-Flux 배포 파이프라인
Stamp-Flux 배포 파이프라인 업데이트 (2026-03-08): volume_shared 모드 추가. stamp DEPLOY_CONFIG에 volume_shared=True, web_upstream=10.253.100.159:80 설정. Flux handle_site_deploy에서 volume_shared=True이면 SCP/nginx 스킵하고 web_upstream으로 APISIX 라우트 생성. 도메인: ironclad.it.com (public), dashboard.ironclad.it.com (internal).

View File

@@ -0,0 +1,61 @@
---
title: OpenClaw 매뉴얼
updated: 2026-03-12
source: openmemory
---
## 도구/스킬/플러그인 시스템 (4/8)
[OpenClaw 매뉴얼 4/8 - 도구/스킬/플러그인 시스템]
도구 시스템:
- 프로필: minimal|coding|messaging|full (agents.defaults.tools 또는 per-agent)
- exec 보안: deny(기본)|allowlist|full
- exec 설정: backgroundMs:10000, timeoutSec:1800
- 루프 감지: historySize:30, warningThreshold:10, criticalThreshold:20
- 웹 도구: tools.web.search(Brave API)/tools.web.fetch
- 미디어 도구: tools.media.audio/video (whisper, gemini 등)
- 에이전트 간 통신: tools.agentToAgent.enabled
- 서브에이전트: tools.subagents.model/maxConcurrent/runTimeoutSeconds
스킬 시스템:
- 위치: workspace/skills/ > ~/.openclaw/skills/ > bundled (우선순위)
- 매니페스트: skills/{name}/SKILL.md (YAML frontmatter)
- 필드: name, description, user-invocable, metadata(requires.bins/env/config/os)
- ClawHub: npx clawhub install/update/sync
- 현재 IronDesk: 3/51 ready (healthcheck, skill-creator, weather)
플러그인 시스템:
- 명령: openclaw plugins list|info|install|enable|disable|doctor
- 매니페스트: openclaw.plugin.json (id, configSchema 필수)
- 슬롯: plugins.slots.memory/contextEngine
- 현재 loaded: device-pair, memory-core, phone-control, talk-voice, telegram (5개)
- memory-lancedb: disabled (벡터 검색용, 임베딩 API 키 필요)
## 세션/채널/게이트웨이 관리 (6/8)
[OpenClaw 매뉴얼 6/8 - 세션/채널/게이트웨이 관리]
세션 관리:
- dmScope: main(기본, 전체공유)|per-peer|per-channel-peer(IronDesk 현재 설정)|per-account-channel-peer
- 세션 키: agent:{agentId}:{mainKey} 또는 agent:{agentId}:dm:{peerId}
- 그룹: agent:{agentId}:{channel}:group:{id}, 텔레그램 토픽: ...group:{id}:topic:{threadId}
- 리셋: session.reset.mode=daily(atHour:4)|idle(idleMinutes:60), resetTriggers:["/new","/reset"]
- 저장소: ~/.openclaw/agents/{agentId}/sessions/sessions.json
- 유지보수: pruneAfter:30d, maxEntries:500, maxDiskBytes:500mb
- 채팅 명령: /new, /reset, /status, /context list|detail, /compact
채널:
- Telegram: botToken, dmPolicy(pairing|allowlist|open|disabled), streaming(off|partial|block|progress), groups, topics
- Discord: token, guilds, channels, voice, thread bindings, reactions
- WhatsApp: dmPolicy, allowFrom, textChunkLimit, sendReadReceipts
- Slack: socketMode 또는 HTTP, slash commands
- Signal, iMessage, IRC, Matrix, Mattermost, MS Teams, LINE, Google Chat 등
게이트웨이:
- mode: local|remote, port:18789(기본)
- bind: loopback|lan|tailnet|custom|auto
- auth: none|token|password|trusted-proxy
- Tailscale: mode=off|serve|funnel
- 서비스: openclaw gateway install|start|stop|restart|status|uninstall
- RPC: openclaw gateway call {method} --params {json}
- 헬스: openclaw gateway health|probe|discover
- HTTP 엔드포인트: chatCompletions, responses (OpenAI 호환)