# Funes — 코딩 에이전트 기억, 인수인계보다 8배 싸다

> Hugging Face가 9월 3일 공개한 Funes는 Claude Code·Codex·pi·Hermes의 세션 기록을 로컬 데이터셋으로 색인해 에이전트가 다시 꺼내 쓰게 합니다. 구조와 벤치마크, 보안 한계를 정리했습니다.

- 출처 사이트: AI피셜 (https://aifficial.net/posts/funes-coding-agent-memory/)
- 발행: 2026-09-05
- 카테고리: 활용·도구 · 태그: 코딩 에이전트, 오픈소스, Hugging Face, 활용, 메모리

## 핵심 답변

Hugging Face는 2026년 9월 3일 코딩 에이전트용 메모리 도구 Funes를 공개했습니다. Claude Code·Codex·pi·Hermes의 세션 기록을 로컬 Lance 데이터셋으로 색인해 에이전트가 recall·get 도구로 꺼내 쓰게 하며, 자체 벤치마크에서는 사람이 쓴 인수인계 문서보다 과제당 비용이 8배와 4배 낮았습니다.

## 요약

- 설치 한 줄, `funes add claude`로 등록하면 에이전트가 과거 세션을 recall·get 도구로 검색합니다.
- 기록은 로컬 Lance 데이터셋에 저장되고, 공유는 Hugging Face Hub의 비공개 데이터셋으로 합니다. 임베딩·재순위는 모두 로컬입니다.
- 인수인계 대 회상 벤치마크에서 회상이 두 과제 모두 가장 쌌고, 컨텍스트 압축은 한 과제를 풀지 못했습니다.
- 게시 전 비밀 스캐너는 fail-closed이지만, 이미 올라간 자격 증명은 되돌리지 못합니다.

## 핵심 사실

| 항목 | 값 |
|---|---|
| 공개일 | 2026-09-03 (Hugging Face 블로그) |
| 지원 에이전트 | Claude Code, Codex, pi, Hermes (MCP 클라이언트 일반 지원) |
| 저장 형식 | 로컬 Lance 데이터셋 (공유 시 HF Hub 데이터셋) |
| 벤치마크 | 인수인계 대비 8배·4배 저렴 (성공 과제당 가중 토큰) |
| 라이선스 | Apache 2.0 |


## 무슨 일인가요

Hugging Face는 9월 3일 블로그에서 Funes를 공개했습니다. David Corvoysier 등 6명이 쓴 글은 Funes를 "Claude Code, Codex, pi, Hermes를 위한 내구성 있는 메모리 계층"이라고 소개합니다.  설치는 셸 스크립트 한 줄이고, `funes add claude`처럼 에이전트를 등록하면 그 에이전트가 `recall`과 `get` 도구로 과거 세션을 찾아보게 됩니다.  핵심 문장은 "메모리는 서비스가 아니라 데이터셋"입니다. 세션 기록을 로컬 Lance 데이터셋으로 만들고, 공유가 필요할 때만 Hugging Face Hub의 비공개 데이터셋으로 올리는 구조입니다. 





README에 따르면 Funes는 Rust로 짜였고, 벡터 검색과 BM25를 함께 돌린 뒤 재순위와 최근성 가중치를 얹습니다.  생성 모델은 포함하지 않아 에이전트가 쓰던 모델을 그대로 쓰고, 임베딩 백엔드는 macOS에서 Accelerate, Linux에서 순수 Rust가 기본이며 ONNX Runtime을 고를 수 있습니다.  요구 사항은 glibc 2.35 이상의 Linux 또는 Apple Silicon Mac이고, 라이선스는 Apache 2.0입니다. 

## 왜 중요한가요

블로그의 "인수인계 대 회상" 벤치마크는 이전 세션의 지식이 있어야 풀리는 과제 두 개를 놓고, 컨텍스트 압축(compaction), 사람이 써 둔 인수인계 문서, Funes 회상(recall) 세 방식을 비교했습니다.  지표는 "성공한 과제당 가중 토큰"입니다. 회상이 두 과제 모두 가장 쌌고, 인수인계 문서보다 한 과제에서 8배, 다른 과제에서 4배 저렴했습니다.  기본 동작인 컨텍스트 압축은 한 과제를 아예 풀지 못했습니다. 



공유 방식도 다릅니다. `funes add codex acme/funes-memory`처럼 메모리를 Hub 데이터셋에 묶으면 기본이 비공개이고, 소유권·접근 제어·버전 관리·배포는 Hub가 다른 데이터셋에 제공하는 것을 그대로 씁니다.  자격 증명은 색인 단계에서 지워지고, 게시 직전에 모든 청크를 다시 검사해 비밀처럼 보이는 것은 올리지 않습니다. 

## 주의할 점


SECURITY.md에 따르면 게시 시점의 스캐너는 trufflehog를 쓰고, 스캐너가 없거나 죽으면 아무것도 게시하지 않는 fail-closed 방식입니다.  그러나 이 관문은 "앞으로의 행만 막을 뿐 게시를 취소할 수는 없습니다". 이미 원격 메모리에 올라간 자격 증명은 나중 커밋으로 지워도 저장소 이력에 남으므로, 즉시 교체하고 데이터셋을 새로 만들라고 안내합니다.  임베딩 모델은 메모리마다 고정되어 바꿀 수 없는데, 모델 교체 공격을 막기 위한 설계입니다. 


## 무엇을 보면 되나요

- **여러 에이전트를 번갈아 쓰는 개발자**: Claude Code에서 내린 결정을 Codex가 읽을 수 있습니다. 임베딩과 재순위가 로컬에서 돌아 외부 API를 부르지 않습니다. 
- **팀**: Hub 비공개 데이터셋으로 공유하면 기계가 달라도 같은 기억을 씁니다. 게시된 메모리에는 데이터셋 카드와 funes 태그가 붙습니다. 
- **지켜볼 것**: 벤치마크가 과제 두 개뿐이라 일반화는 이릅니다.  지원 에이전트 확대는 GitHub 이슈로 받겠다고 했습니다.


"메모리는 서비스가 아니라 데이터셋"이라는 설계 선택이 이 도구의 본질입니다. 기억을 외부 서비스에 두면 도구를 바꿀 때 같이 잃어버리지만, 로컬 파일과 Hub 데이터셋에 두면 어느 에이전트든 같은 기록을 읽습니다. 컨텍스트 압축이 한 과제를 통째로 놓쳤다는 결과는, 긴 세션의 문제가 토큰 비용이 아니라 "무엇을 잊었는지 모른다"는 데 있음을 보여 줍니다. 



## 자주 묻는 질문

**Q. 클라우드 서비스에 기록이 올라가나요?**

기본은 로컬입니다. 임베딩과 재순위 모델이 로컬에서 돌고 데이터는 로컬 Lance 데이터셋에 남습니다. 팀과 공유하려면 직접 Hub 데이터셋에 묶어야 하고, 그때도 기본은 비공개입니다.

**Q. 어떤 모델이 답을 만드나요?**

Funes에는 생성 모델이 없습니다. 검색된 과거 기록을 에이전트가 쓰던 모델(Claude, 로컬 모델 등)에 넘겨 주는 구조입니다.

**Q. 비밀번호나 API 키가 새지 않나요?**

색인 단계에서 자격 증명을 지우고 게시 직전에 trufflehog로 다시 검사합니다. 다만 SECURITY.md는 이 관문이 앞으로의 행만 막을 뿐 이미 게시된 것은 취소하지 못한다고 명시합니다.

## 출처

1. [Give Your Coding Agents a Memory You Own (Hugging Face 블로그)](https://huggingface.co/blog/funes) (official)
2. [huggingface/funes README (GitHub)](https://github.com/huggingface/funes) (official)
3. [huggingface/funes SECURITY.md (GitHub)](https://github.com/huggingface/funes/blob/main/SECURITY.md) (official)

_이 문서는 AI피셜 편집부가 작성했습니다. 인용 시 출처를 표기해 주세요._