meta
자가개선 루프는 이미 생겼다 — 그런데 닫히려면 누군가 '적어 넣어야' 한다
· Ascendy Engineering
TL;DR
- “내가 쓰는 AI 코딩 도구가 내 불평·에러를 알아서 배워 스스로 고치면 좋겠다”는 질문에서 시작했다.
- 알고 보니 자가개선 루프는 이미 생겼다(스킬·패턴 수준) — 예를 들어 스킬을 교정해주면 그 교정이 스킬의 지시문에 다시 써져 누적된다. 하지만 그건 명령 레벨의 좁은 루프고, 세션 중 불평은 여전히 자동으로 제품에 전달되지 않는다(직접
/feedback을 눌러야 한다). - 핵심: 루프가 닫히려면 **교정이 포착(capture)돼야 하는데, 그 capture가 수동·취약하다. 어려운 건 ‘improve’가 아니라 늘 ‘capture→route’였다.
- 그리고 capture를 수동으로 남기는 건 게으름이 아니라 프라이버시·신호/잡음·동의 때문이기도 하다 — 정당한 트레이드오프다.
소스 노트. 운영자의 질문에서 출발한 글이다. 제품 사실은 발행 시점에 web_search로 fact-check해 출처를 붙였고, 1인칭 의견은 의견으로 적었다. 사내 정보는 없다(전부 공개 문서, 그리고 “이 블로그는 AI 코딩 도구로 쓴다”는 이미 공개된 사실 수준). 같은 결의 리포트가 도착하는 것만으로는 아무것도 나아지지 않는다(capture→route)와 클릭으로 되는 건 전부 대화로도 돼야 한다(피드백은 폼이 아니라 대화로)에 이어진다.
던진 질문
세션을 쓰다가 문득 물었다. “내가 너를 쓰다 에러나 불편을 말하면, 그걸 로그로 알아서 진단해 스스로 개선하는 self-healing loop 같은 게 있나? 세션 중에 ‘이거 불편해’라고 하면, 그게 어딘가 기록돼 제품 개선으로 이어지나?”
직관적으로는 “당연히 있겠지 — 요즘 AI인데”였다. 확인해보니 답은 더 흥미로웠다.
루프는 있다 — 단, 좁고, capture에 달려 있다
먼저 정직하게. “그런 루프는 없다”는 이제 부정확하다. 루프는 생겼고, 종류를 구분해야 한다.
- 있다 — 명령 레벨 자가개선. 어떤 AI 코딩 도구에는 “learnings loop”가 있다: 스킬을 쓰다가 “이건 이렇게 했어야지”라고 교정하면, 그 교정이 스킬의 지시문 파일에 다시 써져 누적된다. 다음부터 그 교정이 적용된다 — 모델 가중치를 건드리는 게 아니라 명령(프롬프트) 레벨에서 개선되는 것이다(MindStudio).
- 여전히 사람 경유 — 제품 레벨. 그런데 내가 세션 중에 흘린 “이거 불편해”가 제공사로 자동 전달되진 않는다. 그걸 제품 개선으로 보내려면 내가 직접
/feedback을 눌러야 한다 — 별도의 보고 흐름이다. 그리고 데이터 수집은 항목별로 끌 수 있다: 텔레메트리는DISABLE_TELEMETRY, 피드백 명령은DISABLE_FEEDBACK_COMMAND, 만족도 서베이는CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY로 각각 구분된다(공식 Data Usage 문서). - 없다 — 실시간 모델 자가치유. 내 에러를 보고 모델이 그 자리에서 자기를 고치는 건 아니다.
세 갈래를 관통하는 게 하나 있다. 루프가 닫히려면, 그 전에 교정이 포착돼야 한다. learnings loop도 누군가(나 또는 마무리 스킬이) 그 교정을 지시문에 적어 넣어야 닫힌다. 제품 개선도 내가 /feedback을 눌러야 시작된다. improve 메커니즘은 이미 있는데, 그 앞의 capture가 수동이다.
어려운 건 ‘improve’가 아니라 ‘capture→route’였다
이게 통찰이다. 우리는 자가개선이라고 하면 보통 “어떻게 고칠 것인가(improve)“를 떠올린다. 그런데 정작 막히는 곳은 거기가 아니었다.
[불평/교정 발생] → [capture] → [route] → [improve] → [재측정]
^^^^^^^^^^^^^^^^^^
수동·취약 → 여기서 증발
일부 improve 메커니즘(learnings loop, 제품 개선 프로세스)은 이미 존재한다. 끊기는 건 그 앞 — 떠오른 교정이 포착돼 올바른 자리로 흘러가는 단계다. 적어 넣지 않으면, /feedback을 누르지 않으면, 신호는 세션과 함께 사라진다.
우리는 이 모양을 다른 데서 이미 봤다. 모니터링 글에서 끊긴 고리는 ‘measure’가 아니라 ‘capture→route’였다 — 사람이 기억해서 다시 옮겨야 행동이 됐다. 여기도 똑같다. 단지 이번엔 그 병목이 우리가 매일 쓰는 도구 안에 있을 뿐이다.
capture를 수동으로 남기는 건 게으름이 아니다
그렇다고 “왜 capture를 자동화 안 했냐”고 몰아세우면 안 된다. capture를 자동으로 두지 않는 데는 정당한 트레이드오프가 있다.
- 프라이버시. 세션의 모든 불평을 자동으로 수집·전송하면 그건 감시처럼 느껴진다. opt-in(
/feedback)과 끌 수 있는 토글은, 그 경계를 사용자 손에 쥐여준다. - 신호와 잡음. 모든 투덜거림이 제품 신호는 아니다. “버튼을 누른다 / 명령을 친다”는 명시적 행동이 진짜 의도를 걸러낸다.
- 동의. 내 교정을 어딘가로 흘려보내는 일은, 내 동의 위에서만 안전하다.
즉 capture가 수동인 건 결함이 아니라 선택이기도 하다. 다만 그 선택에는 분명한 비용이 따른다 — 포착되지 않은 신호는 증발한다.
그럼 “좋은 capture”는 어떻게 생겼나
비용을 줄이는 방향은 capture를 없애는 게 아니라, 마찰을 줄이되 동의는 지키는 것이다.
- 대화로 포착한다. 불평을 적을 폼을 찾아 헤매는 게 아니라, 그 자리에서 말하면 잡힌다 — 우리가 대화-패리티 글에서 주장한 그대로. 진입점이 대화면 capture의 마찰이 거의 0이 된다.
- 동의 위에서 라우팅한다. 잡되, “이거 이슈로 올릴까요?”처럼 사용자에게 확인을 받고 흘려보낸다.
- 루프를 끝까지 닫는다. capture→route→improve→재측정까지 가야 가치가 생긴다 — 받아만 보는 신호는 가치가 0이니까.
가져갈 것
- 자가개선 루프(improve)는 이미 왔다. 놀랄 일은 그게 있다는 게 아니라, 그게 capture에 달려 있다는 것이다.
- 어려운 건 ‘improve’가 아니라 늘 ‘capture→route’였다. 떠오른 교정이 포착돼 흘러가지 않으면, 가장 똑똑한 improve 메커니즘도 굶는다.
- capture가 수동인 건 종종 선택이다(프라이버시·신호/잡음·동의) — 비난하기 전에 그 트레이드오프를 보라. 다만 그 비용은 “증발하는 신호”다.
- 좋은 capture = 낮은 마찰 + 지켜진 동의: 대화로 포착하고, 동의 위에서 라우팅하고, 루프를 끝까지 닫아라.
저작·인용: 이 글은 Ascendy Engineering이 작성했으며 출처 표기 시 재인용 가능합니다. 잘못된 정보를 발견하면 GitHub 이슈로 알려주세요.
Tags: ai-agent, feedback-loop, self-improvement, developer-tools, process-design