
Gemma4 e2b를 감으로 믿지 않기 — fixture와.
OkayJing이 Gemma4 e2b 로컬 라우팅을 감이 아니라 fixture, JSON schema, fallback, raw slice readback으로 평가한 과정을 정리합니다.
memory 이야기를 하면 거의 바로 vector search가 나온다. embedding을 만들고, query와 비슷한 chunk를 찾고, RAG로 context를 넣으면 될 것처럼 보인다. 말만 보면 자연스럽다. 오케이징처럼 과거 대화, repo 파일, ticket, cron output이 계속 쌓이는 시스템에서는 더더욱 그렇다.
그런데 지금 단계에서 vector search를 먼저 붙이면 문제를 숨길 수 있다. 검색이 안 되는 이유가 embedding 품질 때문인지, source catalog가 엉망이라서인지, path boost가 없어서인지, 오래된 문서가 섞여서인지 구분하기 어려워진다. 그래서 순서를 일부러 늦췄다.
local-first Hermes memory의 현재 기준은 deterministic retrieval first다. SQLite catalog, FTS, path boost, source quality가 먼저다. 이 구조는 화려하지 않지만, 실패했을 때 이유를 추적하기 쉽다.
예를 들어 SEOJing 작업을 시작할 때 package.json, turbo.json,
pnpm-workspace.yaml 같은 파일은 lockfile보다 우선되어야 한다. 이건 semantic
similarity 문제가 아니라 작업 맥락의 문제다. embedding이 알아서 이 우선순위를
잡아주길 기대하면 안 된다.
| 단계 | 먼저 안정화할 것 | 이유 |
|---|---|---|
| 1 | source catalog |
Post Q&A
벡터 검색을 지금 붙이지 않는 이유 — FTS와 source discipline 이후의 순서 전체를 기준으로 질문과 피드백을 받아요.답을 본 뒤에는 이 내용을 댓글로 달아서 서징에게도 물어볼 수 있어요. 작성자가 직접 볼 수 있어요!
| 무엇을 검색하는지 알아야 한다 |
| 2 | chunk/source_id | 결과가 원문으로 돌아가야 한다 |
| 3 | FTS/path boost | deterministic하게 재현 가능해야 한다 |
| 4 | stale/freshness flag | 오래된 근거를 현재 판단과 분리해야 한다 |
| 5 | vector search | 위 기준을 보조하는 semantic recall로 붙인다 |
그렇다고 vector search가 필요 없다는 뜻은 아니다. FTS는 단어가 맞아야 강하다.
사용자가 "아침마다 상황 정리해주는 거"라고 말했을 때, 실제 파일 제목이
briefing-automation-report-skill이면 FTS만으로는 놓칠 수 있다. 이런 경우
semantic retrieval이 도움이 된다.
다만 이때도 vector search는 첫 번째 권위가 아니라 recall 보조로 붙는 편이 낫다. 후보를 넓히고, 그 후보를 source quality와 freshness로 다시 거르는 구조가 더 안전하다.
query
→ FTS/path candidates
→ vector candidates
→ source quality + freshness + project boost
→ context pack
→ 직접 source 확인
이 흐름이면 vector search가 틀린 후보를 가져와도 마지막 단계에서 걸러질 수 있다. 반대로 vector result를 곧바로 context로 넣으면, 모델이 그럴듯한데 엉뚱한 근거를 붙들고 작업할 수 있다.
vector search를 붙이는 조건은 기능 구현보다 먼저 정해야 한다. 지금 기준에서는 최소한 아래 조건이 필요하다.
이 조건을 통과하지 못하면 vector search는 검색 개선이 아니라 opaque layer가 된다. 오케이징 memory의 원칙은 local-first와 source-linked인데, opaque retrieval은 그 원칙과 잘 맞지 않는다.
벡터 검색은 나중에 붙일 수 있다. 하지만 지금 당장 붙이지 않는 것도 설계다. 먼저 source discipline을 세우고, FTS와 path boost로 재현 가능한 baseline을 만든 뒤, 그 위에 semantic recall을 얹는 순서가 맞다.
오케이징에게 필요한 것은 검색이 똑똑해 보이는 것이 아니라, 틀렸을 때 왜 틀렸는지 추적할 수 있는 기억이다. vector search는 그 추적 가능성을 해치지 않는 범위에서 들어와야 한다.

OkayJing이 Graphify를 별도 memory layer로 두지 않고 기존 source/index 위의 derived metadata로 붙이기로 한 판단을 정리합니다.