2026. 6. 22. 22:07ㆍ맥미니 OpenClaw 비서 봇 만들기
어제 만든 아침 브리핑 파이프라인이 사람 손 없이 새벽에 진짜로 돌았다.
2026년 6월 22일 06:00:10(한국시간), 슬랙에 아침 브리핑이 자동으로 떴다. 내가 아무것도 안 했는데 cron이 알아서 시세를 모으고, 뉴스를 모으고, 정보 담당(송태섭)이 브리핑을 쓰고, 비서실장(이한나)이 검증하고, 이한나 명의로 발송했다. 전날까지는 손으로 돌린 거였고, 무인으로 도는 건 이날이 처음이었다.
특히 의미 있던 건 — 검증 반려 루프가 실전에서 처음 작동했다는 것. 송태섭이 1차로 쓴 브리핑을 이한나가 한 번 반려했고, 송태섭이 다시 써서 통과했다. 어제 테스트들은 다 한 번에 통과했는데, 이날 처음으로 "작성 → 반려 → 재작성 → 통과"가 실제로 돌았다. 무한 루프에 안 빠지고(1회 반려 후 통과), LLM 4콜로 끝났다. 만들어둔 안전장치가 진짜로 작동하는 걸 확인한 셈이다.
브리핑 본문도 정직했다. 시세는 6/18 종가, 뉴스는 6/21 기사로 기준일이 달랐는데, 송태섭이 그 차이를 숨기지 않고 "시세는 6/18, 뉴스는 6/21 기준"이라고 명시했다. 확인 불가 종목은 없었다.
봇한테 말로 시켜도 시스템은 안 바뀐다
재밌는 실험도 했다. 슬랙에서 이한나한테 "내일 하루만 7시에 브리핑해줘"라고 시켰더니 — 이한나가 "확인했습니다" 하고, 심지어 크론을 확인하는 시늉까지 하고, 송태섭한테 "7시에 보고해"라고 멘션까지 날렸다. 그럴듯했다.
하지만 결론은 명확하다: 내일도 브리핑은 6시에 온다. 슬랙에서 대화하는 봇과, 새벽에 도는 cron 스크립트는 완전히 분리돼 있어서, 슬랙에서 무슨 말을 해도 cron 설정은 안 바뀐다. 봇은 "바꿨다"고 믿지만 실제론 빈손이다. (전날 "일요일은 주간 요약으로" 지시했을 때도 똑같았다.)
이걸 두 번 확인하면서 — 다음 버전(V2)의 숙제가 명확해졌다. "분리는 유지하되, 슬랙에서 한 말이 시스템에 반영되게 이어주기."
다음 일감 — 상권분석가 권준호
아침 브리핑 다음 일감도 정했다. WSL에서 만들어둔 강력한 상권분석(CDA) 엔진을 맥미니로 옮기고, 그 엔진을 호출·해석하는 부동산 전문가 페르소나 "권준호"를 9번째 팀원으로 띄우는 것. 엔진은 계산을 하고, 권준호는 그 결과를 소상공인이 알아듣는 인사이트로 번역하는 "통역사" 역할이다.
이건 별도 프로젝트("CDA 마이그레이션")로 분리했다. 이 프로젝트(북산 비서실)에서는 아침 브리핑에만 집중하기로.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2차 — 깃허브용 (전체 내용 + 결정 태그)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CP16. 무인 자동화 실전 검증 + 다음 일감(CDA·권준호) 설계 + V2 방향
직전 CP15(아침 브리핑 6단계 구현) 이후 ~ 무인 검증·다음 일감·V2 방향까지의 델타.
1. ★무인 자동화 실전 검증 [완료]
- 2026-06-22T06:00:10+09:00 첫 자동 발사 확인 (슬랙 스크린샷 실측).
- 사람 개입 0. cron(
0 6 * * *)이 헤드리스 맥미니에서 GUI 세션 없이 발사 → 4단계(시세→뉴스→작성→검증) 전부 통과 → 이한나(Buksan Secretary) 명의 발송. - ★반려 루프 A안 실전 작동: 송태섭 1차 작성 → 이한나 검증 반려 → 송태섭 재작성 → 통과. LLM 4콜(평시 2콜 + 반려 2콜). 무한 루프 안 빠짐(1회 반려 후 통과 = 설계대로).
- 본문 정직성 확인: 시세 6/18(trade_day) vs 뉴스 6/21(기사 기준) 기준일 상이를 송태섭이 명시 설명. 확인 불가 종목 0.
- LOOP 판정: "완료는 선언이 아니라 통과의 결과" — CP15는 선언, 이 자동 발사가 통과. 채점자 모드 최종 관문 통과. 2순위 아침 브리핑 진짜 완료.
2. 슬랙 봇은 시스템을 못 바꾼다 [실증 2회]
- 실증 A (일요일 주간요약): 이한나에게 "일요일 브리핑을 주간 요약으로" 지시 → (1)이한나→송태섭 직접 메시지가 권한 제한으로 막힘(OpenClaw 봇 간 통신 미설정 = CP4 토큰효율로 봇 위임 폐기) (2)슬랙 봇과 크론 스크립트(briefing_llm.py) 분리라 송태섭 "반영하겠다"가 빈 약속.
- 실증 B (7시 변경): 이한나에게 "내일 하루 7시로" 지시 → 이한나가 crontab 확인 시도했으나 "크론 잡 없다"고 오보(권한·컨텍스트 불일치로 빈 결과를 봄. 실제 cron은 존재). 송태섭에게 멘션 전달했으나 무의미.
- ★핵심 개념 확정: 브리핑 쓴 송태섭(briefing_llm.py 안 API 호출, 새벽 크론)과 슬랙 송태섭(OpenClaw 상시 봇)은 같은 SOUL 다른 실행 = 서로 모름·기억 공유 안 함. 아침 브리핑 슬랙 발송도 봇이 아니라 send_briefing.py가 이한나 토큰으로 직접 올림.
- 예측: 내일(6/23) 브리핑은 cron
0 6그대로라 6시에 옴(봇 말과 무관). 실측 대기.
3. 다음 일감 확정 — CDA 상권분석 + 권준호 9인째 [별도 프로젝트로 분리]
- 일감: WSL의 강력한 CDA(상권분석) 엔진을 ★jcw가 직접★ 맥미니로 마이그레이션(conda osx-arm64, 에이전트 불가=인프라 설치라 사람 일). localhost로 띄우면 권준호가 호출·해석. 대화형(온디맨드). 엔진=계산/데이터, 권준호=해석·번역가("강력한 엔진의 통역사").
- 권준호 페르소나 [확정]: 서랍의 Feynman 폐기 → 경제학자/현장형 상권 전문가로 교체. SOUL은 jcw가 작성(존재목적="권리금·보증금 날리지 않게 지키는 방패", 직설적, 금지어="대박날것같다/무난하다/잘될겁니다"). 도메인 지식=흐르는 입지 vs 머무는 입지·도깨비 상권 필터·3중 배후지(1차 500m 매출 60-70%·2차 1km·3차 광역)·손익분기 월세 공식(적정 임대료=목표 매출×10%, 12% 초과=노동 지옥). 출력=①한줄결론 ②입지 치명타 ③데이터 검증 ④액션 플랜.
- 빈틈 채운 결정: (1)AGENTS=권준호 내부 3관점(현장 발품·데이터 분석·손익 계산), 별도 봇 아닌 단일 페르소나의 세 렌즈. (2)보고 라인=이사장 직접 대화(이한나 경유 안 함). 직보 예외가 안 감독·권준호 둘로 늘어남 → 추후 경계. (3)안전장치=A(직설 유지 + 면책 한 줄: "판단은 데이터·현장 기반 의견, 최종 계약 책임은 사장님").
- 채널 구조 [확정]: daily-briefing(아침 브리핑, 이한나·송태섭만) + 신규 showdown(끝장토론, 소문자
showdown, 이사장↔팀원 직접 대화·권준호 상권 상담). 채널=용도별, v2에서 도메인별 재분리(measure-first). - 분리 조치: 새 프로젝트 "CDA 마이그레이션"으로 분리. 시드 문서·권준호 SOUL 6파일 통합본 생성. 이 프로젝트(북산 비서실)는 daily briefing 집중으로 확정.
- 권준호 슬램덩크 인물 유지, 서태웅은 구현 라이벌(B안)로 그대로(직무 변경 안 함).
4. V2 목표 — 대화 기반 시스템 개선 ("분리하되 이어주기") [방향 확립]
- jcw 핵심 표현 "서로 분리하지만 이어주기": 슬랙 대화 봇과 크론 스크립트는 분리(각자 효율) 유지하되, 슬랙 지시가 시스템에 반영되게 연결.
- 두 능력 필요: ▶능력1=봇 간 협업(이한나가 송태섭·강백호 등에 위임·수령, 멀티 에이전트). 단 토큰효율상 v2에서도 스크립트 오케스트레이션이 봇 간 직접 대화보다 효율적일 수 있음. ▶능력2(핵심)=봇이 시스템을 실제 변경.
- 구현 방향 비교: 방식 A=슬랙 봇이 코드(briefing_llm.py) 직접 수정=위험(잘못 고치면 새벽 브리핑 깨짐). 방식 B(★권장)=둘 사이에 "설정 파일 다리"(예 briefing_config.json) → 슬랙 봇은 코드 안 건드리고 설정(데이터)만 기록("일요일=주간요약"→config), 크론 스크립트는 돌 때마다 그 설정 읽어 실행. 분리 유지 + 이어주기 + 안전(봇이 로직 아닌 데이터만 바꿔 깨질 위험 적음).
- ★위험: 봇이 자기 것 고치면 시스템 깨질 수 있음 → 안전장치 필수(검수·승인·롤백, 정대만 검수자 활용, 위험 결정 정지 원칙).
- 진행 계획: V1(아침 브리핑) 안정화 후 바로 V2 착수.
- 즉시 TODO(V2 안 기다림): 일요일 주간 요약 변경 = 맥미니에서 briefing_llm.py 직접 수정.
5. 부가 결정
- 웹 검색 기능 후보: 슬랙 대화 봇(이한나·송태섭)에 실시간 웹서칭 추가 검토. 방향 A=Claude API 내장 web_search(★권장, ANTHROPIC_API_KEY 그대로·키 추가 없음) / B=별도 검색 API(Perplexity·Brave) / C=Gemini(부적합, 구독≠API). OpenClaw가 내장 web_search 지원하는지 확인 후 A/B 확정.
- 슬랙 표시 이름 변경 시도 → 보류: "Buksan Secretary"→한글 변경은 재설치 필요(토큰 리스크) 대비 이득 적음 → 이름 포기, 아이콘(이미지)으로 캐릭터 살리는 방향(재설치 불필요). 단 슬램덩크 원작 이미지는 깃허브·블로그 공개 시 저작권 이슈 → 오리지널 권장.
- User OAuth Token(xoxp-) revoke 가능 확인: 우리 시스템은 Bot Token(xoxb-)만 사용, xoxp-는 불필요 → 보안상 revoke 권장.
6. 현재 편성 (9인)
| # | 이름 | 엔진 | 역할 | 상태 |
|---|---|---|---|---|
| 1 | 이한나 | JARVIS | 비서실장·조율·검증·단일 창구 | v1 가동 |
| 2 | 송태섭 | The Wolf | 정보통·속공·브리핑 작성 | v1 가동 |
| 3 | 안 감독 | Carl Sagan | 리서치·직보 | v2 |
| 4 | 강백호 | Jack Sparrow | A안 구현 | v2 |
| 5 | 서태웅 | Spock | B안 라이벌 구현 | v2 |
| 6 | 정대만 | Bounty Hunter | 검수 | v2 |
| 7 | 채치수 | Master Chief | 보안 | v2 |
| 8 | 채소연 | 미정 | CSM | v3 휴면 |
| 9 | 권준호 | 경제학자/상권전문가 | CDA 상권분석 | 설계 완료(CDA 프로젝트) |
- 직보 예외: 안 감독(리서치) + 권준호(대화형 상담).
7. 남은 TODO
- 내일(6/23) 6시 브리핑 확인 — 봇 시스템 변경 불가 실증(7시 지시했으나 6시에 올 것).
- 일요일=주간 요약 변경(briefing_llm.py 직접 수정, 즉시 가능).
- 실패 알림(--notify-failure) 실제 작동 테스트 미실시.
- output 누적 정리 정책, 봇 키 $50 한도 재점검(브리핑 LLM도 같은 키·월 ~$2).
- 채소연 엔진, v2 6인 SOUL 파일화, 보안(VNC 암호·Tailscale 2FA·토큰 SecretRefs), 슬랙 owner·allowlist, 리포명.
'맥미니 OpenClaw 비서 봇 만들기' 카테고리의 다른 글
| 맥미니 OpenClaw 비서 봇 만들기 (18) — 봇에게 권한을 주기 전에, 벨트부터 맸다 (0) | 2026.06.23 |
|---|---|
| # CP17 — 아침 브리핑 주간 모드(일요일/월요일) 추가 (0) | 2026.06.22 |
| 북산 비서실 v1 — CP15 정리 (2026-06-21) (0) | 2026.06.21 |
| CP14 — v1 인격 배치 완료 + 멀티봇 + 속도·안정성·시간 결정 (0) | 2026.06.21 |
| 맥미니 OpenClaw 비서 봇 만들기 (13) — 모니터 없이, 노트북 한 대로 다 하기 (0) | 2026.06.20 |