19.8 KB · 수정 2026-08-20 09:53
목차

furniture-expert — 가구 전문가 지식베이스 & 에이전트 하니스 (handoff)

목적 = 페페 질문 대부분에 답하는 가구 전문가 AI 에이전트. 전세계 가구 지식을 조사·정리해 지식베이스(KB) + 서브에이전트 하니스로 구축. 도메인 = MDF/PB 사각형 가구(신발장·붙박이장·주방 상/하부장·냉장고장·팬트리·키큰장·시스템가구). 산출물 = ① user_brief KB 문서(projects/furniture-expert/kb/*.md) ② devplan HTML(C:\dev\devplan\furniture-expert.html) ③ 에이전트 정의(하니스).

🆕 2026-08-20 신발장 유리프레임 더블도어 + 측판 LED 2중배선 설계 상담 (코디, 페페 지시)

🆕 2026-07-26 PFS 시스템 페이지 지식 학습 (KB-10 신설, 페페 지시)

🆕 2026-07-22 PFS 현장기록(worklog) 마이닝 → 자가학습 투입 (코디, 페페 지시)

페페 지시: "pfs 현장 기록으로 들어온 내용을 재정비해 가구에이전트 자가학습으로 등록. 중복제거·현장관련내용 제외·자재(원자재/엣지) 위주·특이사항이라도 핵심은 포함·카테고리별로 모아 등록(대화그룹 중심으로 묶지 않음)." - 소스: PFS worklog 테이블(현장 통화/카톡 발췌) 로컬 덤프 pfs\scripts\_wl_chunk_1~4.json = 104현장 183항목(work+ex, 22K자). 카톡/통화 마이닝(text_full·calls)과 별개 소스. - 파이프라인(Workflow 3단, opus): 6 KB모듈 카테고리(02코어판재·03표면재엣지·04서랍레일·06프로파일슬라이딩·07몸통보링·08공정)별 추출(현장운영정보=현장명/업체/사람/일정/배차/정산/금액 제외, 재사용 자재지식만) → 적대검증(운영정보 위장·중복 drop) → 카테고리 종합(마크다운). ⚠1차 검증기가 refs 항목번호를 환각 대조해 03 전량 오판 drop → 검증 프롬프트에서 refs 대조 제거·"fact 문장만 판정"으로 교정 후 resume(extract 캐시 재사용). 스크립트 = scratchpad wl_learn.js. - 투입 결과: 6후보 pending APPEND → learn_candidates.json(source=field-worklog, 제목 [현장기록] 접두). 모듈 02(두께용도·무늬목시트자체제작·발주원가)·03(무늬목사양·엣지혼용금지·로트컬러·시트접착품질/울음/PUR불량·유리세라믹)·04(레일32/50·서랍통4.5T바닥+10T·수저함와이드/내경)·06(슬라이딩18T통짜불가+6T MDF·H바·목대)·07(하부장도어3mm이격·백판넬홈파기·지판덮방식)·08(프레스1200×3050·규격변경재재단·양생분리·색상면방향·투톤조립). 교차중복은 단일 카테고리로 정리(슬라이딩프레임→06, 로트/PUR/울음→03). ⏳페페 몫 = furniture-learn.html(8799) 6후보 검토/승인(승인=KB append+20분내 스냅샷 반영). /api/learn pending 6·field-worklog 6 서빙 확인. 재실행 방지 = source='field-worklog' 존재 시 skip(멱등). 원본 백업 .bak.

🆕 2026-07-17 카톡 업무대화 마이닝 → 자가학습 투입 (코디, 페페 지시)

페페 지시: 카톡 전체 대화를 가구전문가에 자가학습시키되, 대량 에이전트로 추출→무중복까지 중복제거→투입. + 업무/현장 실무 내용도 같이 수집하되 구분(가구전문가를 실무 에이전트로도 키움, 추후 분리). - 수집(정식 방법): 카톡 정식 추출 = 방별 "대화 내보내기"(Ctrl+S→txt)뿐(일괄 정식기능 없음·백업은 복원전용). 기존 talklog\collector\collect_all.py(6월 55방·2주분) 견고화 → 신규 collect_full.py(전체 이력·텍스트전용·개인/가족방 제외·resume·리스트좌표 UIA 동적판독·COM오류 내성·최하단 방이름 불변 바닥판정). 전체 967방 수집(2019~2026, 27MB/1360만자, 개인/가족 28·채널광고 3 제외). 산출 talklog\data\text_full\*.txt. - 추출·중복제거·종합(Workflow 3단, sonnet): 전처리 906만자→105청크 → 추출 105에이전트로 2버킷 증류(가구지식 1726·현장실무 1258) → 카테고리 18분류 후 dedup 18에이전트(→2684) → 종합 18문서(모듈별 응집 무중복 마크다운, 출처·수치 보존·상충표기). 스크립트 talklog\collector\{preclean_chunk,categorize,ingest}.py. - 투입 결과: - 가구 10후보 pendinglearn_candidates.json(source=kakao-mining, 모듈 01~08·05·00, 각 5K~31K자). 페페가 furniture-learn.html(8799)에서 검토·승인 시 해당 KB append. ⏳페페 몫 = 10후보 검토/승인. - 실무 8문서projects/furniture-expert/practice/(현장·발주·재고·물류·업체·문제·견적·기타 + README). 가구 KB와 별도 = 추후 실무 에이전트 코퍼스. - 원본·중간산출 = talklog\data\text_full\{_chunks,_extract_merged,_dedup_out,_dedup_merged,_synth}. 재실행 가능.

🆕 2026-07-19 통화(전화) 전사 마이닝 → 자가학습 투입 (코디, 페페 지시)

페페 지시: "pfs 업무 전화 전사한 것 정리 완료된 자료를 가구전문가 자가학습 자료로 전달. 처리 프로세스는 카톡 마이닝과 동일. 사용자 승인 예정." - 소스: 통화녹음 medium STT 전사 talklog\data\calls\transcripts_medium\*.txt(723파일 = "전사 정리 완료"된 유일 통화자료). 카톡분(text_full)과 별개 소스. - 파이프라인(카톡과 동일 개념, 통화판 스크립트): 입력 어댑터 preclean_calls.py(카톡 [발신자][시각] 포맷 아닌 STT 전용 — 파일명서 상대/날짜 추출·타임스탬프/환청/연속중복 제거·헤더부여) → 정제 688통화·357K자 5청크 → 추출 5에이전트(sonnet, STT 잡음경고 내장=수치·고유명사 오인식시 제외/(STT추정)) 2버킷 → merge_extract_calls.py(가구75·실무69) → categorize_calls.py(categorize.py 재사용, 17카테고리) → dedup+종합 2에이전트(볼륨작아 모듈당 1패스로 통합) → _synth/*.md 17문서 → ingest_calls.py. - 투입 결과: - 가구 9후보 pending APPENDlearn_candidates.json(source=phone-transcript, 제목 [통화전사] 접두로 카톡분과 구분, 모듈 00·01·02·03·04·05·05·06·07). 현재 pending 큐 = 통화전사 9건(기존 카톡 12건은 처리완료). ⏳페페 몫 = 9후보 검토/승인 (furniture-learn.html 8799, /api/learn 21건·pending 9 서빙 확인). - 실무 8문서practice/ops_*_calls.md(카톡 ops_*.md 미덮어씀·README_calls.md 인덱스 별도). 추후 실무 에이전트 코퍼스. - 작업폴더·재실행: 카톡 산출물 보호 위해 전용 폴더 talklog\data\calls\_pipeline\{_chunks,_extract,_extract_merged,_dedup_in,_synth}. 스크립트 talklog\collector\{preclean_calls,merge_extract_calls,categorize_calls,ingest_calls}.py — 재실행 가능. - 승인 후 반영: 카톡분과 동일(승인=KB append+커밋+DIGEST갱신, 20분 내 furniture_kb_snapshot으로 페이지 반영). STT 출처라 승인 전 수치·고유명사 검토 권장.

🆕 2026-07-20 검토 후보 본내용 직접편집 기능(코디, 페페 지시)

페페 지시: 자가학습 후보 본내용을 사용자가 직접 수정(분야겹침 정리·오타·오인식 단어) 후 승인으로 반영. STT/마이닝 출처라 승인 전 편집 수요. - furniture-learn.html: 대기(pending) 카드 펼치면 본내용이 편집 textarea + 💾 편집 저장 버튼(승인·거부 카드는 읽기전용 유지, 편집=pending만). 폴링(10s) 재렌더가 미저장 편집 안 지우게 typing()·스냅샷에 ed- textarea 보호. - app.py: POST /api/learn/edit(pending만 content 갱신). 승인기 _apply_candidate가 이미 c['content'] 사용 → 편집 저장분이 승인 시 자동 KB append. - 검증: 서버 재기동(구 orphan pid 21080 = elevated라 UAC 승인받아 kill, schtasks devplan-dashboard 재실행, 신 pid 41208). E2E PASS(실제 pending 후보 편집→저장→영속→원복 클린, pending 6건 무손상). ※ 위 07-17 sidebar 노트의 "pid 21080 kill 불가" 이슈 = 이때 UAC로 해소, /api/kb 라이브도 함께 반영됨.

🆕 자가학습 시스템에 사이드메뉴 + 지식 정리 페이지 신설(2026-07-17, 페페 지시)

페페 지시: 자가학습페이지에 ai-study식 사이드메뉴(색인검색 포함)·기존 페이지를 한 메뉴로 묶고 신규 "지식 정리" 페이지 신설(축적 지식을 카테고리별 정리 = 신입 매뉴얼+검토용, 스크롤형·상세 카테고리, 슬라이드 아님). 앞으로 자가학습 후 이 페이지도 능동 반영. - 신규 C:\dev\devplan\furniture-kb.html: 공유 사이드바(색인 검색 + 2메뉴[자가학습 검토·지식 정리] + KB 카테고리 nav 자동생성) + 스크롤 본문(라이브 KB 렌더). 경량 마크다운 렌더러 자체구현(표 223·하위헤딩 378 정상). 개요(DIGEST)+가구 KB 00~09 + 실무 practice 8을 카테고리로 구분. - furniture-learn.html: 동일 사이드바 추가(플렉스 레이아웃, 검토 UI 유지). - 데이터 소스: app.py에 GET /api/kb(라이브 KB 읽기) 추가 → 페이지는 /api/kb 우선, 실패 시 정적 스냅샷 furniture_kb_snapshot.json 폴백. ⚠기존 8799 인스턴스(pid 21080)가 비권한서 kill 불가라 /api/kb는 다음 로그온 재기동 후 라이브; 그전까지 스냅샷이 담당. - 능동 반영 기전: build_kb_snapshot.py가 KB→스냅샷 생성. schtasks furniture_kb_snapshot(20분 주기)로 승인→KB append가 자동으로 페이지에 반영(서버 재시작 불요). 자가학습으로 KB 바꾸면 이 스냅샷도 갱신할 것(수동 시 python build_kb_snapshot.py, 자동은 20분 태스크). 검증=Playwright 양 페이지 렌더·nav19·검색 실동작 PASS.

조사 범위 (페페 지시 6항 + 인접)

  1. 가구 종류·유형 (신발장·붙박이장·주방 상/하부장·냉장고장·팬트리도어·시스템가구·키큰장) — 용도·구조·표준치수
  2. 자재 — 코어(MDF·PB) + 표면재(PET·LPM·PP·PVC·HPL·무늬목·도장), 보드 발주·생산공정
  3. 서랍 — 언더레일·Tandembox·볼레일·슬라이드 하중/규격
  4. 도어 알루미늄 프로파일 손잡이(키큰장), 목대 프로파일 가공원리 + 치수 계산식 ★핵심
  5. 몸통 구성 — 측판·천판·지판·뒤판·이동/고정선반 = 한 통 구성
  6. 제작 공정 — 재단·엣지·가공(보링/선반홀)·조립·포장 + 장비 + 경첩/하드웨어, 32mm 시스템, 설계/적산 SW(imos 등), 네스팅 최적화

🆕 2026-08-11 현장진단 — 엣지 표면 요철(텔레그래핑), 호막 밴더 PB+PVC+PUR

진행 방식 (반복 사이클)

KB 파일 맵 (kb/)

devplan UI 결정 (2026-07-16 페페)

상태 (NOW)