14.8 KB · 수정 2026-08-04 20:59
목차

2026-08-04 세션 — AI 12층 지도로 자산 실사(poin-agent 현업축 + gptbutler 개발축)

논의·대안

페페 지시 = 유튜브 「AI 용어정리 12개(바이브코딩 지도 2부)」를 우리 자산에 적용해보고, 우리 자산의 부족한 부분과 영상 자체의 부족한 부분을 둘 다 평가해 devplan 기획서로 낼 것. 페페 문제의식 = "이건 poin-agent 개선안으로 볼 수 있다. 다만 poin-agent는 회사 업무만 다루니, gptbutler 기능으로서 devplan 개발 업무도 별도로 관련이 있다."

영상 12개념 = LLM → 멀티모달 → RLHF → 파인튜닝 → 프롬프트 엔지니어링 → 지식베이스 → RAG → MCP → 에이전트 → 워크플로우 자동화 → 하네스 → AGI.

실사 = 서브에이전트 6개(실사 3 → 적대검증 1 → 설계 2), 153 툴콜 · 오류 0 · 63.9만 토큰. 전 항목 파일 직접 판독(추측 금지, "없음"은 grep 0건 확인분만).

agent(에이전트 아키텍처)·mcp(도구 연결 표준)·safety(가드레일·승인게이트)·architecture(층 분해) 관점에서 본 결과가 아래.

결정

1. 판정 = "층이 없는 게 아니라 배선이 안 됐다." 12층 중 10층을 이미 갖고 있으나 전부 공통 인프라(코디)에만 있다.

서 있는 층 빈 층
공통 인프라 1·2·5·6·8·9·10·11 (RAG는 FTS5로 부분) 3·4(의도적 미채택)
poin-agent 1·5·10·11 뿐(4층) 6 KB · 7 RAG · 8 MCP · 9 에이전트
gptbutler 1·5·6·8·11 9 부분(아바타 사이클 없음) · 판정층 空 · 7 RAG 空

2. 영상의 부족한 점 = 빠진 4축이 곧 우리가 밟은 지뢰다. 누락 = 메모리 · 컨텍스트 엔지니어링 · 평가(eval) · 구조화 출력. 각각 우리 실사고와 1:1 대응(시드체인/세션릴레이 140건 미발동 · board.md 통짜주입 · 프롬프트 사후규칙 append · _unfence() 정규식 땜질). 부정확 4건 = MCP를 에이전트의 전제로 못박음(우리 run_claude_code_task가 반증) · 파인튜닝을 4번에 배치해 위상 과대평가(우리 3축 전부 0건이 정답) · RLHF="예절교육"이 SFT와 뭉개짐 · 하네스 은유가 출력검증/승인게이트/충돌해결/실행로그 4개를 한 단어로 뭉갬(우리 코드는 정확히 넷으로 갈라져 있다).

3. 우리 지도 = 12 + 4축 = 16축으로 확장해 쓴다. 3·4·12(RLHF·파인튜닝·AGI)는 손대지 않기로 한 층으로 명시(부족이 아니라 미채택).

4. 공유선/분리선 확정 — 새 통합 프레임워크를 만들지 않는다. - 공유 = 도구 수준(창고·mem_find·broker·project_state.py CLI·cody-vision·whisper). 이미 돌고 있고 붙이는 비용이 만드는 비용보다 싸다. - 분리 = 실행권한 범위. 두 에이전트의 위험 프로파일이 다르다(poin-agent 도구 0 / gptbutler 무제한). poin-agent는 "도구 0" 설계를 유지하고 gptbutler만 차단목록을 얹는다. - 안 만든다 = 공용 LLM wrapper(표 1장으로 충분) · 임베딩 벡터DB(FTS5가 0.1초에 답하는 규모에 근거 없음) · 통합 에이전트 프레임워크(분리선을 지운다).

5. 착수 순서 — gptbutler P0-1(실행통로 가드레일)이 전체 1순위. broker whitelist.classify()가 Edit/Write/MultiEdit를 _is_ops_file 아니면 전부 AUTO_ALLOW라 파일쓰기엔 게이트가 없고, runner._build_claude_args--disallowedTools가 없다. 실행통로를 여는 P0-2보다 가드레일을 먼저 넣거나 같은 커밋에 묶는다.

산출물·커밋

검증 - 게이트 = check_theme.py FAIL 0 · check_font.py FAIL 0 · build_hub.py --selftest 11항목 PASS(카드↔상태 1:1 통과) · 재빌드 후 카드 date=2026-08-04. - 코디 직접 재확인 2건 = watcher.py:258 도구 없는 claude -p 단발 / mem_find.py가 FTS5 키워드 검색(임베딩 아님). - 🔴 실사 오탐 1건 걷어냄 — "cody-mcp-gateway MCP 미등록" 판정은 ~/.claude.json(Claude용)을 본 것이고, 이 게이트웨이는 Codex 클라이언트용이라 ~/.codex/config.toml:44에 정상 등록돼 있다(직접 확인). 개선안에서 제외. - ✅ 부수 발견 — devplan 빌드 게이트 강제 수준 불일치: check_font.pybuild_hub.py:85에 물려 FAIL로 빌드를 막는데 check_theme.py안 물려 있다(폰트=강제, 테마=수동권고).

다음

⏳ 페페 몫 1. P0 착수 승인 — poin-agent P0 3건 / gptbutler P0 3건. 추천 = gptbutler P0-1(가드레일)을 전체 1순위. 2. 결정 4건(3차에서 2건 → 4건) — ① poin-agent P1-1 가구지식 태그 기준(코디가 임의로 정하면 KB 오염 · 이것만 있으면 P1-1 착수 가능) ② 🆕furniture-expert KB 인계 범위(어디까지 poin-agent 자산으로 넘기나·접근권한·갱신 책임 — ①과 별개 트랙) ③ gptbutler P0-3 판정 가중치 숫자(priority_rules.md가 "페페가 직접 고친다"로 못박은 항목) ④ 🆕 P1-4 대화 채널 순서(코디 추천 = PFS 웹 먼저). 3. 페이지 육안(Ctrl+F5).

코디 잔여 = 승인 후 P0 착수. check_themebuild_hub.py --selftest에 물리는 1줄(별건, 저긴급).

관계


3차 정리 — GPT 비서 2주기 반영 + 그림 3장 (26.8.4) [코디]

발단inbox/gpt-ai-stack-map-2026-08-04.md(메모 15건). 페페 지시 = "나머지는 추천안대로 수정. 파이프라인·다이어그램 추가해서 이해하기 쉽게. 매트릭스는 B안."

GPT 인계 15건 판정 — 채택 4 · 수정채택 3 · 중복 병합 8.

🆕 라이브 대화 접점 = 제품 방향(페페 지시) — "poin-agent를 실제 사람 직원처럼 해서 사무실 직원과의 소통 수단으로 써보려는 시도. 기본은 슬랙·카톡·PFS 웹페이지." 지금 poin-agent는 사람을 상대하지 않는다(입력이 사람이 아니라 통화·카톡 로그다) → 대화 접점은 입구가 하나 더 생기는 것이다. - 반영 = 7절 본문 블록 + 그림 3(파이프라인) + 개선안 P1-4 신설. ⚠매트릭스에는 안 넣었다 — 실사표는 지금 있는 것만 적는다(1차 최대 오류가 이 경계를 흐린 것). - 코디 추천(페페 결정 대기) = PFS 웹 먼저(사내 로그인이라 말한 사람이 누군지 이미 안다) → 슬랙·카톡은 신원 확인·오발신 설계 선행. 순서상 P0-2(관측) 뒤에 둔다 — 사람이 직접 말을 걸면 답이 맞았는지 재는 눈이 먼저 필요하다. - 「도구 0」 원칙 불변 — 늘어나는 건 조회·정리·승인 요청까지고 제출·확약은 사람 전속.

그림 3장 신설(페페 지시 "이해하기 쉽게") — 전부 인라인 SVG, 색은 테마 변수만(하드코딩 색 0 → 테마 게이트 통과). 1. 4축 구조도(s0) — 바닥 공통 인프라 / 제품 둘 / 개발 제품이 gptbutler 기반을 딛는다 / 맨 위 사람·대화 접점. 2. 두 폐루프(s5) — 6단계 사슬 2줄, 끊긴 단계는 빨간 테두리, 되먹임 곡선(개발 축은 점선=죽은 경로), 가운데 띠가 상위 루프(공급-수요). 3. 대화 파이프라인(s7) — 직원→대화 접점→의도 파악→(조회=자동 / 업무=승인 게이트), 바닥 띠 = 제출·확약은 사람 전속.

🔑함정 = 그림이 plan_read를 오염시킨다. SVG의 <text>는 HTMLParser에 그냥 텍스트라 GPT가 읽는 본문에 낱말이 뒤죽박죽 섞인다plan_tools.SKIPsvg 추가하고 바로 뒤 캡션(.fig-cap)이 뜻을 글로 지고 가게 했다. selftest에 캡션 3건 유실검사 + svg 라벨 누출 검사 추가. 🔑함정 = 마커(화살촉)를 SVG마다 정의하면 id 중복 → 문서 최상단 0×0 SVG에 defs 한 번만 두고 3장이 url(#ah)로 공유(브라우저 실측 marker-end: url("#aha") 해석 확인).

검증 - plan_tools --selftest = 구역 11 · 유실 0(캡션 3건 포함) · 표 보존 · s10 순서 · svg 누출 0 · 방어 4. - check_theme FAIL 0 · check_font FAIL 0 · build_hub --selftest 11 PASS · project_state.py check 38건 통과. - 실브라우저(1512×950) = 구역 11 · SVG 3장 렌더 · 페이지 가로스크롤 0 · 매트릭스 넘침 0 · 그림 넘침 0 · 13px 미만 0(페이지 내) · 말풍선 배지 11(메모 0) · 콘솔 오류 = favicon 404뿐. - 그림 3장은 캡처해서 눈으로 확인(겹침·잘림 없음). - 메모 15건 초기화 + 인계문 inbox/archived/ 이동. 코드 변경 0건(기획서 · plan_tools.py는 읽기 배관).

⏳ 페페 몫 = ①P0 착수 승인(추천 1순위 = 개발축 P0-1 파일쓰기 가드레일) ②결정 4건(태그 기준 / KB 인계 범위 / 판정 가중치 / 대화 채널 순서) ③육안(Ctrl+F5).

🔎 후속 — "판정 가중치" 질의 중 실측 발견 (26.8.4, 코드 변경 0)

페페 질문("판정 가중치 개념이 이해 안 된다")에 답하려고 현재 38카드로 시뮬레이션을 돌렸더니 결정 ③의 전제가 흔들렸다.