최근에 AI agent인 클로드 코드의 소스코드가 전부 유출되었습니다.
하지만 '소스코드 유출'은 아닌게 npm이라는 곳에 평소에도 소스코드가 올라와있긴 한데
왜냐면 타입스크립트로 개발한 프로그램들은 압축하고 난독화 하는 정도만 해서 배포해서 그렇습니다.

하지만 난독화한 코드는 source map이라는 파일이 있으면 복원이 가능합니다.
그래서 개발시에만 사용하는데 그게 이번 업데이트 때 실수로 npm에 올라와버렸습니다.
그래서 정확히는 '소스코드 복원용 파일 유출'이 되겠습니다.
현재 수많은 사람들이 소스코드를 다운받아와서 본인 깃헙에 올려놓고 그걸로 파생 프로젝트들도 생기고 난리가 났습니다.
앤트로픽에서 저작권 공격으로 하나하나 격추하고 있긴 한데 이미 널리 퍼져서 늦음
유출 이유
유출된 이유는 맨 처음에 추측하기로는
앤트로픽이 인수했던 Bun이라는 프로그램이 있습니다.

Bun은 타입스크립트, 자바스크립트 파일을 압축해주는 프로그램입니다.
그게 최근에 source map 파일이 노출되는 버그가 있어가지고 그게 원인이 아니었나 추측했었는데

클로드 코드 개발자 말로는 그건 아니고 사람 실수였다고 합니다.
배포 과정에서 확인을 덜 하고 배포했다고 합니다.
클로드 코드도 클로드 코드로 100% 개발한다는데 그냥 모든걸 맡기다보니까 헛점들이 많이 생기는게 아닐까요.
소스코드 분석
소스코드가 50만줄 되는데 그걸 분석해주는 사이트도 하루만에 생겼습니다. (ccunpacked)
클로드 코드 덕분이 아닐까요.

일단 구조는 단순한데
1. 유저가 채팅을 입력하면
2. 이전 대화내역이랑 시스템프롬프트같은걸 전부 더해서 클로드로 보냅니다.
3. 그럼 SSE를 이용해서 답변이 유저에게 실시간으로 전달이 됩니다.

4. 근데 답변에 tool_use 명령이 있으면 tool 실행하는 코드를 발동시키게 되어있습니다.
그럼 내 컴퓨터에서 검색툴, 터미널사용툴 이런걸 발동시킵니다.
5. 툴을 실행해보면 그 다음엔 그 결과를 다시 클로드로 보내줍니다.
6. 최종 답변이 올 때 까지 3번부터 5번을 반복합니다.
이게 다에요.

요즘은 멀티에이전트를 점점 쓰기 시작하던데
툴중에 멀티에이전트를 스폰, 에이전트끼리 메세지 전송하는 툴도 마련되어있습니다.
그래서 매출 5조원짜리 AI agent 프로그램을 만들고 싶으면
클라이언트는 api 요청기능 + 툴사용 기능을 잘 만들어두면 되는 것이었고
나머지는 전부 LLM 성능에 달려있었습니다.
앞으로의 LLM은 툴사용을 얼마나 잘할 지가 가장 중요하지 않을까요.
숨겨진 기능
덕분에 숨겨진 기능도 알 수 있었는데

distillation이라고 해서 LLM 모델에 있는 데이터를 몰래 뽑아내는 방법같은게 있는데
이걸 감지하면 fake tool을 보내가지고 데이터를 오염시켜버리는 자체 방어수단 같은게 있었습니다.

유저가 욕을 하면 그걸 정규식으로 검출해내는 기능도 있습니다.
여러분들이 욕하면 그걸 서버로 보내서 강화학습에 쓰고 그러는게 아닐까요.

Buddy 기능이라고 해서 가챠로 18종 캐릭터를 뽑을 수가 있는 기능도 숨겨져있습니다.
각종 동물들을 ASCII아트로 그려놓은걸 뽑을 수 있는데 1% 확률로 shiny버전이 나온다고 합니다.
모자랑 표정도 뽑을 수 있습니다.
이외엔 오픈클로처럼 웹, 모바일에서 Claude Code를 컨트롤 할 수 있는 기능도 있었고
Auto-Dream 이라고 자동으로 대화를 분석해서 중요한걸 메모리에 저장해놓는 기능도 있었고
KAIROS 모드라고해서 몇초마다 뭐 할거없나 생각해보면서 능동적으로 행동할 수 있게 만드는 모드도 있습니다.
그니까 이제는 프롬프트도 넣을 필요가 없어짐
아무튼 미래에 이런 기능들이 추가될거 같은데 기다리기 싫으면 내가 클로드 코드로 먼저 만들면 되지 않을까요.
하지만 이미 오픈소스인 AI agent 프로그램들도 있어서 그걸 쓰는 방법도 있습니다.
Pi agent, Open Code 같은게 있습니다.
아키텍처
클로드 코드같이 터미널에서 돌아가는 프로그램을 어떻게 만들었냐면
신기하게도 리액트로 만들었습니다.
- 리액트로 먼저 화면을 구성하고
- 그걸 ANSI 문자들로 각각 대응해서 터미널에 그려줌
이런 식으로 동작합니다.
근데 리액트는 원래 웹이 구렸을 시절에 HTML 변경을 최소화하려고
이거저거 비교연산하고 이거저거 메모리에 많이 저장해두고 그렇게 비효율적으로 동작해서
지연이나 성능이슈가 있긴 있습니다.
클로드 코드는 Codex에 비해 켜는 것도 오래걸리기도 하고

메모리 사용량을 비교해보면 이런 차이도 있는데 그 이유가 다시 재조명되었군요.
결론
유출된 코드를 가지고 실시간으로 이거저거 많은 프로젝트가 생기고 있습니다.

Rust로 소스코드 재작성을 해버린 리포가 생기기도 하고 대환장 파티가 일어나고 있습니다.
코드 도둑질 아니냐고 생각할 수 있는데 생각해보니 애매할 수 있는게
원래 AI 만들 때는 사람들이 인터넷에 올린 코드를 학습시켜서 만들었잖아요.
그래서 이 사람들도 인터넷에 있던 코드 가져다가 학습용?으로 썼다고 하면 딱히 서로 할 말이 없지 않나 싶습니다.

그래서 클로드 코드 공식 리포에 가보면
이렇게 된 이상 오픈소스로 만들자고 풀리퀘스트를 열어놓은 사람도 있는데
그 밑에는 드가자는 댓글이 주루룩 달려있습니다.
아무튼 이제 유쾌하게 클로드 코드 오픈소스 버전을 출시하는 것만 남아있지 않을까요.






