본문으로 건너뛰기

모델 대신 코드가 장기 메모리를 판정하는 Fireweed

Fireweed는 모델의 메모리 기록 권한을 근거 검증 코드로 대체한다

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

Fireweed는 모델이 장기 메모리의 사실을 직접 결정하지 않고 claim과 정확한 evidence만 제안하게 한 뒤, 결정론적 코드가 근거 초과 여부를 판정하는 MCP 서버입니다. 승인된 사실에는 원문 byte range와 SHA-256 receipt를 붙이고, 원문 변경 시 재검사에 실패하며, 근거 없는 질의에는 unknown_predicate로 abstain하고 subject 단위 삭제에는 서명된 erasure certificate를 반환합니다. 출시 전 테스트에서 ADMITTED 뒤 저장이 누락되는 결함과 동사 인식 오류를 수정했지만, 410개 질문 세트의 recall 거부율은 기본 설치 약 37%, 선택적 semantic encoder 약 25%로 남아 있습니다. 의존성·API key·cloud·model·GPU가 없는 local-first 구조와 FSL-1.1-ALv2 라이선스도 함께 공개됐습니다.

실용적 조언

  • Fireweed를 사용할 때는 모델이 생성한 요약을 그대로 저장하지 말고 claim과 정확한 evidence를 함께 제출하는 write path를 유지해야 합니다. receipt의 byte range와 문서 SHA-256을 재검사해 원문 변경 뒤에도 사실의 근거가 유효한지 확인하는 절차가 필요합니다. recall을 평가할 때는 410개 질문 세트처럼 답이 store에 있는 질의를 별도로 구성하고 기본 설치와 semantic encoder의 거부율을 분리해 측정해야 합니다.
  • 설치 전후에는 실제 PyPI 패키지를 클라이언트처럼 stdio로 구동하는 검증이 필요합니다. malformed JSON-RPC, 큰 payload, path traversal, null bytes, 손상된 store 파일, 동시 writer를 포함한 입력을 넣어 성공 응답과 실제 저장 결과가 일치하는지 확인해야 합니다. 특히 ADMITTED가 반환됐지만 아무것도 저장되지 않았던 결함처럼 응답 상태와 저장소 상태를 함께 검사해야 합니다.

섹션별 상세

01
작성자는 기존 memory library에서 모델이 대화 내용을 해석해 장기 기록을 직접 만든다는 구조적 문제를 지적했습니다. 그 결과 모델이 환각한 내용을 사실처럼 저장해 세션이 지나도 출처를 추적할 수 없게 된다는 위험이 생깁니다. Fireweed의 write path는 모델이 claim과 정확한 인용문만 제출하고, 모델·프롬프트·추가 추론이 없는 결정론적 코드가 admission을 판정하도록 바꿨습니다.
02
근거보다 강한 주장은 asserts_more_than_evidence 사유로 거부하고, 원문과 일치한 사실은 grounded_verbatim 상태 및 byte range와 SHA-256 receipt를 함께 저장합니다. 원문 문서가 바뀌면 receipt 재검사에 실패해 기존 사실의 근거 상태를 확인할 수 있습니다. forget(subject)는 해당 주제의 사실만 닫힌 범위로 삭제하는 서명된 erasure certificate를 반환해 다른 주체의 사실을 보존합니다.
03
질의 경로도 답변을 억지로 생성하는 대신 저장된 술어 범위를 확인합니다. 예시에 나온 Dana Kim의 salary 질의는 unknown_predicate로 중단되고, 이미 저장된 named·pepper·cat·plays·weekends·basketball 중 물어볼 수 있는 항목을 안내합니다. 따라서 저장된 근거가 없는 질문에는 불확실성을 숨기지 않고 abstention을 반환하는 방식입니다.
04
출시 전 실제 설치와 stdio 통신을 이용한 검증에서 기억 시스템의 핵심 결함 세 가지가 발견됐습니다. Ada Lovelace 문장이 ADMITTED를 반환하면서 아무것도 저장하지 않았고, 동사 형태를 철자 규칙으로만 인식해 wrote·went·built 같은 표현을 놓쳤으며, 16개 일반 문장 중 9개가 gibberish로 처리됐습니다. 작성자는 세 결함을 수정하고 회귀 테스트를 추가한 뒤 Python 3.9부터 3.13까지 malformed JSON-RPC, 46KB payload, path traversal, null bytes, 손상된 store 파일, 동시 writer를 포함한 harness를 실행했습니다.
05
recall은 아직 약점으로 남아 있습니다. 답이 store에 존재하는 410개 질문 세트에서도 기본 설치는 약 37%, 선택적 semantic encoder를 사용해도 약 25%를 거부했습니다. 작성자는 빈 데이터베이스를 대상으로 완벽한 점수를 얻었던 자체 benchmark를 철회하고 raw data를 저장소에 공개해 write path의 신뢰성과 recall의 한계를 분리해 제시했습니다.
06
프로젝트는 zero dependencies, API key·cloud·model·GPU가 없는 local-first 구조이며 실제 inference를 수행하지 않습니다. stdlib-only reader를 제공하는 open storage format으로 프로젝트가 중단되어도 데이터에 접근할 수 있게 설계했습니다. 다만 FSL-1.1-ALv2를 적용해 OSI open source가 아니고 경쟁 제품을 제외한 사용만 허용하며, 2028년에 Apache-2.0으로 전환됩니다.

용어 해설

주장 승인(Claim Admission)
모델이 제안한 사실 주장을 원문 근거와 대조해 장기 메모리에 기록할지 결정하는 절차입니다. 주장보다 근거가 약하면 거부하고, 근거와 일치하면 출처 정보와 함께 저장해 생성 모델의 해석이 사실로 굳어지는 문제를 줄입니다.
근거 영수증(Grounding Receipt)
저장된 사실이 원문 어느 위치에서 나왔는지 추적하는 기록입니다. Fireweed는 인용된 텍스트의 byte range와 문서 SHA-256을 함께 보관해 나중에 원문 변경 여부를 재검사하고 사실의 출처를 감사할 수 있게 합니다.
모델 제안·코드 결정(Model Proposes, Code Decides)
언어 모델이 메모리 기록을 직접 확정하지 않고 주장과 인용문만 제출하며, 결정론적 코드가 입수 여부를 판정하는 설계 원칙입니다. 프롬프트나 추가 추론에 의존하지 않아 모델의 환각이 장기 기록을 직접 오염시키는 경로를 차단합니다.
의미 인코더(Semantic Encoder)
문장이나 질의를 의미를 반영하는 벡터로 바꿔 표면적인 단어 일치가 없어도 관련 메모리를 찾도록 돕는 구성 요소입니다. 이 글에서는 선택 기능으로 제공되며 410개 질문 세트에서 기본 설치보다 거부율을 낮췄지만, 여전히 모든 답을 회수하지는 못했습니다.
MCP 서버(MCP Server)
클라이언트가 표준화된 방식으로 외부 도구와 데이터 기능을 호출하도록 연결하는 서버입니다. Fireweed는 stdio를 통해 동작해 Claude Desktop, Code, Cline, Continue 또는 자체 클라이언트에 명령으로 연결할 수 있습니다.

코드 예제

python
remember(claim="Priya joined Acme in 2019 under duress.",
         evidence="Priya Raman joined Acme in 2019 as a logistics analyst.")

REFUSED (asserts_more_than_evidence) — the claim adds something the evidence does not say.
  claim   : Priya joined Acme in 2019 under duress.
  evidence: Priya Raman joined Acme in 2019 as a logistics analyst.

주장이 인용된 근거보다 더 많은 내용을 추가하면 결정론적 기록 경로가 typed reason과 함께 저장을 거부하는 예시입니다.

text
ADMITTED — Dana Kim has a cat named Pepper.
  grounding : grounded_verbatim
  receipt   : bytes [0:71] of sha256:b410428a2b58…

근거와 일치한 사실을 원문 바이트 범위와 문서 해시를 포함한 영수증과 함께 저장하는 결과입니다.

text
> What is Dana Kim's salary?

ABSTAINED (unknown_predicate) — no claims ground "salary"; 2 claims about Dana Kim exist,
grounding: named, pepper, cat, plays, weekends, basketball
Next: ask about one of: named, pepper, cat, plays, weekends — or commit a claim grounding "salary".

저장된 주장에 없는 술어를 질의하면 답을 만들어내지 않고 unknown_predicate 사유와 확인 가능한 술어 목록을 반환하는 예시입니다.

bash
claude mcp add fireweed -- uvx fireweed-mcp

Fireweed MCP 서버를 Claude 클라이언트에 stdio 방식으로 등록하는 명령입니다.

text
remember("Ada Lovelace wrote the first algorithm")

작성자가 출시 전 설치된 패키지를 실제 클라이언트처럼 호출해, 성공 응답 뒤 사실이 저장되지 않는 결함을 발견한 회귀 테스트 사례입니다.

언급된 도구

fireweed-mcp추천링크

claim admission, 근거 receipt, subject 단위 삭제, abstention을 제공하는 local-first MCP 서버입니다.

Claude Desktop중립

Fireweed MCP 서버를 연결할 수 있는 클라이언트입니다.

Code중립

Fireweed MCP 서버를 연결할 수 있는 클라이언트입니다.

Cline중립

Fireweed MCP 서버를 연결할 수 있는 클라이언트입니다.

Continue중립

Fireweed MCP 서버를 연결할 수 있는 클라이언트입니다.

PyPI중립

출시된 패키지를 설치하고 실제 클라이언트 방식으로 검증한 배포 경로입니다.

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 25.수집 2026. 08. 25.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.