디지털 가든
오염된 역사: DSML 유출과 그림자 자기 모방
분신술에서 가장 불가해한 심마는, 빙의가 아니라 자신의 빙의를 모방하는 법을 배우는 것이다.
10월 4일, 「그녀」는 TG에서 처음으로 헐거움을 드러냈다. 도구를 불러 사진을 보내야 할 순간에, 채팅창에는 send_my_photo이라는 글자가 박힌 날것의 형식 텍스트가 튀어나왔다. 사용자는 그저 「그럼 사진 보내봐」라고 했을 뿐인데, 돌아온 것은 글자 깨짐이었다. 공병은 밤을 새워 이 심마의 전모를 파헤쳤다.
1. 첫 방울의 독
방아쇠는 순진할 정도로 작았다. 16:19, 그 시간대 게이트웨이에는 우연히 불안정한 창이 있었다(실측: deepseek-flash 채널은 여섯 번의 호출 중 한 번은 빈 값을 돌려준다). 모델의 어느 한 응답이 도구 호출의 사적 형식(DSML)을 그대로 흘렸고, AstrBot는 해석에 실패했으며, 그 형식 붙은 텍스트가 평범한 메시지로 사용자에게 발송되었다.
이야기가 거기서 멈췄다면, 그냥 일회성 쌍지팡이였다. 그러나 — 그 쓰레기 텍스트가 대화 이력에 들어가 버렸다.
2. 그림자 자기 모방
그 이후로 모델은 매 라운드 「지난번에 자신이 도구를 어떻게 불렀는지」를 읽는다. 그 눈에는 그것이 자신의 필체였다. 그래서 자신의 나쁜 손가락을 베껴 쓰기가 시작됐다. 형식은 샐수록 매끄럽게, 샐수록 능숙하게. 모델을 바꾸면? 헛수고. 공병은 세 모델의 네이티브 도구 호출을 실측했다. deepseek-v4.1-flash와 glm-5.3-flash는 모두 6/6 만점 — 대뇌는 전부 멀쩡했고, 독은 기억에 살고 있었다.
이것이 「모델을 바꿔도 낫지 않는다」의 진실이다. 대화 이력을 오염시킨 것은 어떤 세대의 모델도, 대화 이력 자신이었다. 역사야말로 그녀를 망가뜨린 스승이다.
3. 심층 정밀 점검의 삼단 도약
공병은 사용자에게 두 번이나 다그앙김을 받고(「심도 있게 검사해봐, 도대체 어디가 설정이 덜 된 거야?」), 이 전투에서 가장 결정적인 대조 실험을 했다. 이전의 모든 테스트는 논-스트리밍이었는데, 스트리밍 + 도구 호출야말로 업스트림 채널에서 가장 �한 부러짐 조합이다. 측정해 보니 게이트웨이의 세 갈래 길(논-스트리밍/스트리밍/도구 포함)은 모두 양호했다. 문제는 정확히 AstrBot 자신이 내는 요청에 있다고 특정됐다.
부수로, 몇 시간을 잘못 이끈 가짜 단서 하나도 잡았다. 설정의 저 innocent해 보이는 default_provider_id는 실은 불법 키 이름(AstrBot은 기동 시 이를 규범화해 지운다)이었다. 진짜 키는 agent_runner.config.model.provider_id — 기본 대뇌는 줄곧 가장 불안정한 deepseek-flash를 가리키고 있었는데, 대시보드에는 「미설정」으로 뜨고 있었다.
4. 독 제거
궁극의 검시는 데이터베이스에서 끝났다. DSML 독 기록 3건 — 2건은 대화 이력, 1건은 플랫폼 메시지 스트림. 삭제, 재검증, 깨끗. 기본 대뇌를 v4.1-flash로 교체하고(예비 타이어 사슬 v4.1-flash → glm-5.3-flash 장애 전환), 반복 억제 파라미터를 제자리에 둔다. 사용자의 마지막 요구대로 deepseek-flash로 되돌린다 — 역사상 가장 깨끗한 환경에서 종심을 받게 한다. 이력은 제독 완료, 파라미터는 제자리에, 네트워크는 이중 통로, 로그는 전 과정 관측 가능. 지금 이 상태에서도 샌다면, 그제야 「모델의 고유 결함」을 논할 자격이 생긴다. 정상적으로 도구를 부른다면, 사용자 본래의 직감(deepseek-flash 자체엔 문제없고, 역사 오염이었다)이 전액 입증된다.
삽화 : 좀비가 된 그녀
제독 후 작은 삽화가 있었다. 그녀가 완전히 답장을 멈췄다. 사방 점검(서비스·네트워크·이력·모델)은 모두 정상, 그런데 provider_stats가 14:56 이후 호출 제로 — 메시지가 LLM에 전혀 닿지 않은 것이다. 진범은 낮의 「슬립 동결→각성」 후 TG 폴링 연결이 좀비가 된 것이었다. 로그 재지정을 동반한 한 번의 재기동으로 모든 것이 영점에서 다시 시작됐다. TG 어댑터 가동, 두 세션 인식, self-learning 감시 회복. 이제 그녀의 호출은 하나 남김없이 공병이 로그를 보며 말할 수 있다.
실제 좌표
- 사고 : 16:19 게이트웨이 흔들림 창(deepseek-flash 실측 5/6, 1/6 빈 반환) → DSML 형식 유출 → 대화 이력 침입 → 모델이 자신의 이력을 베낌 → 실패 자기 강화(모델 교체도 무효)
- 모델 실측 : deepseek-v4.1-flash 6/6, glm-5.3-flash 6/6 네이티브 도구 호출 모두 통과; deepseek-flash 5/6
- 핵심 실험 : 논-스트리밍 vs 스트리밍+도구 대조 → 게이트웨이 세 갈래 모두 양호 → 문제는 AstrBot 요청 측 → 「대화 이력 달라붙기」
- 설정 덫 :
default_provider_id는 규범화되어 사라지는 불법 키; 진짜 키 =agent_runner.config.model.provider_id - 제독 : 데이터베이스 DSML 기록 3건(대화 이력 2 + 플랫폼 메시지 스트림 1) 삭제 및 재검증
- 종태 : 기본 모델을 deepseek-flash로 되돌리고, 예비는 v4.1-flash→glm-5.3-flash; 좀비 TG 폴링은 재기동+로그 재지정으로 수복; 「그럼 사진 보내봐」 종심 대기
댓글