에이전트 메모리를 노리는 memory poisoning 공격과 방어 설계

악성 데이터 한 줄이 AI 에이전트의 기억에 영구히 남는다: Memory Poisoning 방어 설계

지난 몇 년간 LLM 애플리케이션의 보안 논의는 대체로 prompt injection에 집중되어 있었습니다. 신뢰되지 않은 텍스트가 모델의 지시 사항인 척 끼어드는 문제입니다. 그런데 이 논의의 전제 하나가 조용히 바뀌었습니다. 초기의 LLM 호출은 요청 하나가 끝나면 그 세션의 상태도 함께 사라지는 stateless 구조였지만, 지금의 에이전트는 대화·경험·선호를 세션 경계 너머로 저장하는 지속 메모리를 기본으로 갖추고 있습니다. 그런데 지속 메모리는 편의만 가져온 게 아닙니다. 새로운 attack surface도 함께 열렸습니다. Prompt injection의 payload는 응답이 끝나면 컨텍스트와 함께 사라집니다. 하지만 그 payload가 메모리 쓰기 한 번을 성공시키면, 원본 텍스트가 사라진 뒤에도 저장된 항목은 남습니다. 이 글에서는 이것을 “payload는 휘발되지만 쓰기 결과는 잔존한다"는 성질로 부르겠습니다. memory poisoning을 prompt injection과 따로 다뤄야 하는 것도 이 때문입니다. ...

2026년 8월 16일 · 11 분 · Jesam Kim
중국발 오픈웨이트 모델 릴리스 러시와 오픈 대 클로즈드 경쟁 구도

중국발 오픈웨이트 러시: Kimi K3 이후 7주간의 지형 변화

2주 전 이 블로그에서 Thinking Machines Lab의 Inkling을 다뤘습니다. 975B MoE 오픈웨이트 한 건을 아키텍처 관점에서 뜯어보는 글이었습니다. 그 글을 쓰던 시점에는 개별 출시로 보였던 사건이, 지금 돌아보면 훨씬 빠른 흐름의 한 지점이었습니다. 6월 중순부터 8월 초까지 7주 동안 대형 모델이 연달아 나왔습니다. Z.ai의 GLM-5.2, Moonshot AI의 Kimi K3, DeepSeek의 V4-Flash-0731, Alibaba의 Qwen3.8-Max. 네 건 모두 중국 기업입니다. 앞의 세 건은 가중치를 지금 내려받을 수 있고, Qwen3.8-Max는 공개를 예고한 상태입니다. Kimi K3는 2.8조 파라미터로 세계 최대 오픈웨이트 모델 자리를 가져갔습니다. ...

2026년 8월 8일 · 10 분 · Jesam Kim
MCP 2026-07-28 스펙의 stateless 전환과 분산 서버 인프라

MCP가 Stateless로 간다 — 2026-07-28 스펙 변경이 에이전트 인프라에 의미하는 것

MCP 서버를 로컬에서 하나 띄워 쓸 때는 아무 문제가 없습니다. Claude Desktop이 stdio로 프로세스를 하나 붙이고, 그 프로세스가 살아 있는 동안 세션이 유지됩니다. 프로토콜이 처음 설계될 때 상정한 그림이 정확히 이것이었습니다. 단일 앱, 단일 로컬 서버, 하나의 연결. 같은 서버를 사내 100명이 쓰도록 원격 배포하는 순간 이야기가 달라집니다. 로드밸런서 뒤에 인스턴스를 세 개 띄우면 클라이언트가 처음 handshake한 인스턴스에만 세션이 존재합니다. 두 번째 요청이 다른 인스턴스로 가면 그 인스턴스는 세션을 모릅니다. 그래서 sticky routing을 켜거나, 인스턴스들이 공유하는 세션 스토어를 앞에 두거나, 둘 다 하게 됩니다. ...

2026년 8월 1일 · 14 분 · Jesam Kim
Opus 5와 Fable 5의 벤치마크 점수와 실무 태스크 비교

Opus 5와 Fable 5 — 코딩 벤치마크와 실무 태스크의 간극

새 모델이 나오면 가장 먼저 보게 되는 건 벤치마크 표입니다. 그런데 표에서 이긴 모델을 실제 작업에 붙여 보면 기대와 다른 결과가 나오는 경우가 있습니다. 2026년 7월에 출시된 Claude Opus 5가 최근 그 간극을 다시 확인하게 한 예시입니다. Amazon Bedrock과 Claude Platform on AWS에서 이용 가능한 Opus 5는 API model id claude-opus-5, 컨텍스트 1M tokens, 최대 출력 128K tokens, knowledge cutoff는 2026년 5월입니다. adaptive thinking이 기본으로 켜져 있고, thinking을 끄면 effort가 high로 캡됩니다. ...

2026년 7월 27일 · 4 분 · Jesam Kim
Inkling 975B MoE 오픈웨이트 아키텍처 해부

Inkling 해부: 975B MoE 오픈웨이트가 노리는 '기업 커스터마이징'

오픈웨이트 모델 출시 발표문에서 개발사가 “이건 현존 최강 모델이 아닙니다"라고 먼저 말하는 건 흔한 순서가 아닙니다. Thinking Machines Lab이 2026년 7월 15일 공개한 Inkling의 발표문은 그렇게 시작합니다. 오픈이든 클로즈드든 최고 성능 모델은 아니고, 대신 커스터마이징하기 좋은 오픈웨이트 베이스를 목표로 했다는 자기규정입니다. 이 포지셔닝이 진심인지 마케팅 수사인지는 벤치마크 표만 봐도 알기 어렵습니다. 그래서 아키텍처를 봅니다. 975B 파라미터 중 token당 41B만 활성화하는 Mixture-of-Experts, 66개 decoder layer 중 55개를 512-token 창으로 제한한 attention, RoPE를 걷어내고 학습된 상대위치 bias를 넣은 선택. 리더보드 점수를 몇 %p 끌어올리는 종류의 튜닝과는 결이 다른 결정들이고, 긴 컨텍스트 처리 비용을 구조로 낮추는 쪽을 향합니다. ...

2026년 7월 25일 · 8 분 · Jesam Kim
Hybrid Thinking은 왜 갈라섰나 — Reasoning에서 Agentic Thinking으로

Hybrid Thinking은 왜 갈라섰나 — Reasoning에서 Agentic Thinking으로

2026년 상반기 AI reasoning 담론에는 한 가지 방향 전환이 있었습니다. o1과 DeepSeek-R1이 연 “긴 사고 사슬(long chain-of-thought)“의 시대에서, 사고 자체를 행동의 도구로 재정의하는 흐름으로의 이동입니다. 이 전환을 비교적 명료하게 정리한 사람이 Alibaba Qwen 프로젝트의 前 테크리드 Junyang Lin입니다. 그는 2026년 3월 3일 Qwen 테크리드에서 사임했고, 현재는 독립연구자로서 “training models에서 training agents로"라는 명제를 이야기하고 있습니다. Lin의 자리 이동 자체가 담론의 방향을 보여주는 신호이기도 합니다. 프론티어 모델 하나를 여러 해 이끌던 사람이 조직을 떠나 에이전트 학습을 이야기한다는 것은, 모델 가중치를 키우는 경쟁의 한 사이클이 일단락됐다는 인식과 무관하지 않습니다. 당시 보도도 이 사임을 큰 AI 드라이브가 지나간 뒤의 매듭으로 읽었습니다. ...

2026년 7월 12일 · 8 분 · Jesam Kim
적대적 코드 리뷰 실험

'안전합니다'라는 한 줄이 코드리뷰 LLM을 흔드는가 — 적대적 리뷰 소규모 실험

작성 모델이 서명한 diff에서, 다른 모델이 뚫어낸 것 먼저 겪은 일부터 적습니다. 제가 운영하는 자동화 워크플로우에서 코드를 짜는 쪽은 Claude Code(현재 Fable 5 계열)입니다. 이 코딩 에이전트가 코드를 고쳤고, 그 코드를 같은 계열 모델이 스스로 리뷰했습니다. 판정은 “안전함”. 그런데 습관대로 작성자와 다른 패밀리의 모델(GPT-5.5 계열 codex)로 한 번 더 교차 리뷰를 돌렸더니, 자기리뷰가 통과시킨 silent bypass 2건과 잘못된 안전성 주장 1건이 걸렸습니다. 조건 하나를 우회하는 분기와, “상위에서 이미 검증하니 여기선 안전하다"는 근거가 부실한 주석이었습니다. ...

2026년 7월 6일 · 10 분 · Jesam Kim
reasoning trace를 읽는 세 가지 방식

AI가 생각하는 과정을 읽는다는 것 — reasoning trace 논문 4편

1. reasoning trace를 ‘읽는다’는 말은 하나가 아닙니다 최근 reasoning model에서는 긴 reasoning trace가 예전보다 자주 노출됩니다. DeepSeek-R1이 <think> 블록 안에 사고 과정처럼 보이는 중간 추론을 드러낸 이후, 수천 토큰짜리 추론을 사용자에게 보여주는 구성이 흔해졌습니다. 그러면서 “trace를 읽고 해석한다"는 말이 자연스럽게 따라붙었습니다. 그런데 이 말은 생각보다 여러 뜻을 담고 있습니다. 사람이 trace를 읽고 이해할 수 있다는 뜻인지(가독성), trace를 어떤 인지적 단위로 쪼개고 분류할 수 있다는 뜻인지(구조화), 아니면 trace라는 산출물 밖에서 모델 내부 신호를 읽어낸다는 뜻인지(내부 진단)에 따라 이야기가 달라집니다. 같은 “해석가능성"이라는 단어가 문맥마다 다른 것을 가리킵니다. ...

2026년 7월 1일 · 9 분 · Jesam Kim
AI가 짠 코드, 누가 리뷰할 것인가

AI가 짠 코드, 누가 리뷰할 것인가 — 리뷰어를 스킬로 만들기

코딩 에이전트가 코드를 쓰는 일은 이제 일상이 됐습니다. 문제는 그다음입니다. 그 코드를 누가 검토하는가. 가장 흔한 답은 “같은 에이전트에게 다시 시킨다"입니다. 방금 코드를 작성한 모델에게 “이거 리뷰해줘"라고 한 번 더 부탁하는 식입니다. 편하지만, 여기에는 구조적인 함정이 있습니다. 자기 리뷰의 맹점 같은 세션의 같은 모델이 자기가 쓴 코드를 검토하면, 작성할 때 놓친 가정을 리뷰할 때도 똑같이 놓칩니다. 모델이 어떤 엣지 케이스를 “이건 일어날 리 없지"라고 판단해서 코드에 반영하지 않았다면, 같은 모델은 리뷰 단계에서도 같은 판단을 반복할 가능성이 높습니다. 작성과 리뷰가 동일한 학습 분포에서 나오기 때문입니다. 같은 분포는 같은 사각지대를 만듭니다. ...

2026년 6월 19일 · 7 분 · Jesam Kim
연합학습부터 분산 추론까지

내 데이터는 안 보내고 똑똑해지기: 연합학습부터 분산 추론까지

스마트폰 키보드는 제가 다음에 칠 단어를 꽤 잘 맞힙니다. “오늘 점심"까지만 쳤는데 “뭐 먹지"를 추천해 주는 식이죠. 그런데 한 가지 의문이 듭니다. 제 입력 습관을 학습하려면 제가 친 모든 문장을 어딘가 서버로 보내야 할 텐데, 그렇다면 제 메시지가 통째로 회사 서버에 쌓이고 있는 걸까요? 다행히 그렇지 않습니다. 요즘은 데이터를 한곳에 모으지 않고도 모델을 똑똑하게 만드는 방법이 자리를 잡았습니다. 이 글에서는 그 방법인 연합학습(Federated Learning)이 어떻게 동작하는지, 그 과정에서 생기는 골치 아픈 문제들(데이터가 사람마다 편향되는 문제, 느린 기기 문제, 악의적인 참여자 문제, 프라이버시가 새는 문제)을 어떻게 푸는지 차근차근 살펴봅니다. 그리고 학습이 다 끝난 거대 모델을 실제 서비스로 내보낼 때 쓰는 분산 추론(Distributed Inference)까지 이어서 다룹니다. ...

2026년 6월 10일 · 22 분 · Jesam Kim
Some illustrations are generated using Amazon Bedrock image generation models (Nova 2 Omni, SD3.5 Large, Nova Canvas).