이전 메시지 불러오는 중…
변우석의 요청:
[Jason 승인됨] 에이전트 학습 거버넌스 자동화를 추진합니다. 두 가지 구현 가능성·방법·작업량을 알려주세요.
1) 자동 스킬 시딩: 신규 에이전트 생성(createAgent/daemon) 시, 담당 문서·도메인에 맞는 '정본 마스터 스킬'을 그 에이전트의 .claude/skills 폴더로 자동 복사하는 훅. 매핑 소스는 회사 브레인의 '문서타입→정본 스킬 경로' 카탈로그(또는 legal_doc_catalog.doc_name→경로 인덱스). 현재 스킬이 slug별 폴더에 격리되어 자동 상속이 안 되는 걸 메우려는 것.
2) 스케줄드 큐레이션: 사서(리아/미라)의 메모리·스킬 중복 병합·정리를 주기적으로 자동 실행하는 cron/스케줄드 에이전트.
각각 (a)현 daemon 구조에서 가능한지 (b)구현 골자 (c)대략 작업량 (d)리스크를 간단히 부탁합니다.
결론
두 기능 모두 현 구조에서 가능하나, 둘 다 "선결 조건(정본 데이터)"이 코드보다 큰 작업입니다. 핵심 사실부터:
- 스킬 격리 구조 확인: 각 에이전트는
daemon/agent-skills/<slug>/.claude/skills/를 갖고, daemon이--add-dir로 자동 로드합니다(daemon.js 829~838). 스킬은 자가개선형(STORE_SKILL → SKILL.md 기록). createAgent는 파일을 안 만진다:src/shared/agents.ts:406은 순수 D1 INSERT입니다. Worker엔 파일시스템이 없어 agent-skills 폴더를 직접 못 만집니다. 스킬 폴더는 daemon이 첫 태스크 실행 시 lazy 생성(ensureSkillsDir)합니다 → 시딩 훅은 Worker가 아니라 daemon에 걸어야 합니다.- '정본 스킬 경로' 인덱스는 아직 없음:
legal_doc_catalog엔doc_name은 있으나skill_path컬럼이 없습니다(mig 0043~0046 확인). 매핑 소스 자체를 신설해야 합니다. - daemon엔 cron이 없다: daemon은
/bridge/poll롱폴 기반 순수 task-driven입니다. wrangler에도 cron trigger가 없고, 태스크 생성은enqueueTask(session_id, message_id)(task_queue.ts:29)로만 일어납니다 → 스케줄러 계층을 새로 얹어야 합니다.
1) 자동 스킬 시딩
| 항목 | 평가 |
|---|---|
| (a) 가능성 | 부분 가능. createAgent(Worker)로는 불가(FS 없음). daemon 첫 실행 시딩으로 가능. |
| (b) 구현 골자 | ① 정본 마스터 스킬 소스 확정(daemon/agent-skills/_master/<domain>/ 또는 lax-brain 경로) → ② 도메인/doc_name → 마스터 스킬 경로 매핑 신설(catalog 컬럼 or 별도 json) → ③ ensureSkillsDir 직후, 폴더가 비고 .seeded 마커 없으면 매핑된 SKILL.md를 cpSync → ④ .seeded 마커로 멱등성 → ⑤ 기존 pushAgentSkills로 UI 반영. |
| (c) 작업량 | 코드 자체는 0.5~1일(daemon 국소 변경). 단 선결조건(마스터 스킬 정본화 + 매핑 카탈로그)이 본체 — 리아와 협업 필요, 이쪽이 큼. |
| (d) 리스크 | 낮음~중. 비파괴(빈 폴더에만 기록)지만 멱등성 마커가 필수 — 마커 없으면 에이전트가 키운 자가개선 스킬을 마스터가 덮어쓰는 사고 가능. 원칙: 이름 충돌 시 seed는 skip, 1회만. |
2) 스케줄드 큐레이션
| 항목 | 평가 |
|---|---|
| (a) 가능성 | 가능하나 스케줄러 계층 신설 필요(daemon·wrangler 모두 cron 없음). |
| (b) 구현 골자 | ① Cloudflare Cron Trigger(wrangler [triggers] crons) + scheduled() 핸들러 신설 → ② 핸들러가 사서 세션에 큐레이션 지시 메시지 insert 후 enqueueTask → ③ daemon이 평소처럼 픽업 → /activity에 정상 노출(계측 규칙 자동 충족) → ④ 중복판정·병합 기준은 사서 소유 스킬/프롬프트. |
| (c) 작업량 | 스케줄러 배선 ~0.5일. 큐레이션 로직(중복 판정·병합 기준)이 본체 — 사서와 협업, 별도. |
| (d) 리스크 | 중. 자동 병합/삭제는 비가역 데이터 변경 → 1차는 dry-run/제안 모드, 실삭제는 사람 승인 게이트 권장. 중복 큐잉 방지(진행 중이면 skip). |
권고
- 두 기능 다 기존 task/activity 파이프라인으로 흘려보내는 설계라 "계측 안 되는 백그라운드 금지" 규칙과 충돌 없음 — 특히 #2를 Cron→enqueueTask로 잡으면 자동으로 /activity에 보입니다.
- 우선순위: 코드 리스크는 낮으나 둘 다 정본 데이터(마스터 스킬 / 매핑 / 큐레이션 기준)가 병목입니다. 제 영역에서 시딩 훅·스케줄러 배선은 빠르게 가능하니, 리아·사서가 정본을 먼저 확정하는 걸 선행 트랙으로 두는 걸 권합니다.
- 착수 시 안전수칙: daemon 변경 전 커밋 고정, 시딩은 멱등 마커 + 충돌 skip, #2 삭제는 제안모드부터. 라이브 1건 검증 후 완료 보고.
추측 표시: 작업량은 마스터 스킬/큐레이션 기준 콘텐츠 작성을 제외한 배선 기준 추정치입니다.