Hanzo 베타에 참여하고 유료 플랜을 50% 할인받으세요

Hanzo Brain: 에이전트를 위한 로컬 우선 지식 그래프

에이전트가 모든 런타임에서 읽는 SQLite 파일 하나입니다. 그래프 연산에 언어 모델 왕복은 없고, 쓸 때 FTS5과 벡터와 타입이 있는 간선 추출을 합니다.

이 페이지에서

당신의 에이전트는 똑똑하지만 잘 잊습니다. 그것을 고쳤습니다. 오늘 우리는 Hanzo Brain을 내놓습니다. 바이너리 하나, ~/.hanzo/brain/brain.db에 있는 SQLite 파일 하나, 그리고 TypeScript, Python, Rust, Go, C++에서 같은 알고리즘 표면입니다. markdown 파일을 ~/.hanzo/workspace/에 넣으십시오. 브레인이 그것을 들이고, 타입이 있는 간선을 뽑고, 혼합 검색을 위해 내용을 색인합니다. 언어 모델은 부르지 않습니다. 그래프는 쌓입니다.

이것은 모든 Hanzo 런타임의 기억 층입니다. 봇, MCP 서버, Hanzo Node, 그리고 자신의 호스트에 넣는 모든 것입니다.

브레인이란 무엇인가

브레인은 한 프로세스 안의 세 가지입니다.

  1. 페이지 — 슬러그로 주소가 매겨진 내용이며, 어디서든 쓰고, 디스크에서 지켜봅니다.
  2. 간선 — 타입이 있는 관계(mentions, attended, works_at, invested_in, founded, advises)로, 쓸 때마다 정규식과 역할 추론으로 뽑습니다. 언어 모델은 없습니다.
  3. 사실 — (subject, predicate, object, ts, confidence) 튜플이며, 세션을 가로질러 실시간으로 물을 수 있습니다.

페이지는 FTS5 색인을 갖습니다. 간선은 (source, target, type) 위에 기본 키를 갖습니다. 사실은 식별자와 시각을 갖습니다. 스키마는 머리에 남을 만큼 짧습니다.

CREATE TABLE pages (slug TEXT PRIMARY KEY, content TEXT, frontmatter TEXT, updated_at TEXT);
CREATE VIRTUAL TABLE pages_fts USING fts5(content, content='pages', content_rowid='rowid');
CREATE TABLE edges (source TEXT, target TEXT, type TEXT, evidence TEXT, PRIMARY KEY (source, target, type));
CREATE TABLE facts (id TEXT PRIMARY KEY, subject TEXT, predicate TEXT, object TEXT, source TEXT, ts TEXT, confidence REAL);

그것이 계약의 전부입니다. 모든 백엔드가 그것을 지킵니다. 모든 런타임이 바이트까지 같은 파일을 씁니다.

언어 모델 없는 추출이 중요한 이유

언어 모델에 기댄 추출기는 쓸 때마다 토큰과 지연과 돈을 태웁니다. 실행 사이에 흘러감을 만들고, 그래프를 비결정적으로 만듭니다.

브레인은 쓸 때 정규식과 역할 추론으로 간선을 뽑습니다. 빠르고, 공짜이며, 같은 입력에는 매번 같은 간선을 냅니다. "Alice founded Acme. She invested in Foobar," 를 들이면 이렇게 됩니다.

people/alice -[founded]->     companies/acme
people/alice -[invested_in]-> companies/foobar

매번입니다. 모든 런타임에서. 왕복은 없습니다.

그 위에 언어 모델 보강이 필요하면, 개체 중의성 해소, 주장 검증, 요약은 결정적인 그래프 위에서 자신의 모델을 부르십시오. 그래프가 바탕입니다. 언어 모델은 선택적인 마무리입니다.

파일 하나. 모든 런타임.

같은 brain.db이 TypeScript, Python, Rust, Go, C++에서 열립니다. 형식 번역도 이전도 없습니다. 서버에서 hanzobot/go로 쓰고 브라우저 워커에서 @hanzo/bot-memory로 읽으면, 서버가 쓴 파일을 읽습니다.

기능TSPythonRustGoC++
BrainStore 인터페이스예예예예예
SQLite(기본)예예예예예
FTS5 혼합 검색예예트레이트예예
그래프 링크 추출기예예예예예
레시피 로더예예예예예
갈아 끼울 수 있는 백엔드예예예예예

출시 때 런타임 교차 테스트 합계는 121 TS + 53 Python + 58 Go + 38 Rust (mcp) + 38 Rust (node) + 98 C++ = 406개 테스트, 모두 녹색입니다. 각 런타임은 같은 융합, 같은 재순위(MMR), 같은 RRF, 같은 슬러그 정규화, 같은 간선 추출기를 담습니다.

MCP에서 물을 수 있다

브레인은 MCP를 통해 세 가지 도구로 열립니다.

  • brain.recall <entity> — 한 개체에 대해 지금까지 주장된 모든 사실을, 시각과 함께.
  • brain.search <query> — FTS와 벡터의 혼합을 RRF로 합치고, 선택적으로 MMR 재순위.
  • brain.ingest <slug> <content> — 페이지를 쓰고, 간선을 자동으로 뽑고, FTS를 갱신한다.

Hanzo Node, Hanzo MCP 서버, 또는 hanzobot/* 위에 만든 봇과 말하는 모든 에이전트는 이 도구를 무료로 받습니다. 사이드카도, 추가 서비스도, 따로 운영할 데이터베이스도 없습니다.

Go 단일 바이너리 경로에서는 다음과 같습니다.

go install github.com/hanzobot/go/cmd/hanzo-bot@latest

hanzo-bot brain init                  # opens ~/.hanzo/brain/brain.db
hanzo-bot brain ingest people/alice.md
hanzo-bot brain recall people/alice
hanzo-bot brain search "founded"

Python에서는 다음과 같습니다.

from hanzo_memory.graph_links import extract_edges
edges = extract_edges(slug="people/alice", content="Alice founded Acme.")

Rust에서는 hanzo-mcp 안에 들어갑니다.

use hanzo_mcp::brain::{extract_edges, slugify};
let edges = extract_edges("people/alice", "Alice is CEO of Acme.", Some("person"));

갈아 끼울 수 있는 저장, 같은 계약

SQLite가 기본입니다. 노트북의 처음 십만 페이지에는 충분합니다. 그것을 넘으면 응용 코드를 바꾸지 않고 다른 백엔드를 등록합니다.

백엔드언제
sqlite혼자, < 100K 페이지
qdrant대규모 벡터 ANN
meilisearch대규모 키워드 FTS
zapdb표준이 되는 다국어 네이티브 저장소
replicate백업을 위해 SQLite의 WAL을 S3로 흘려보냄
vfsS3 스트리밍 블록 파일 시스템, 크기 제한 없음
postgres다중 테넌트 팀 배포

여러 머신에 걸친 SQLite 모양의 분산 의미에는 ZAP 전송과 Quasar 합의와 zapdb를 씁니다. 브레인은 그대로입니다. 바이트가 들어가고 바이트가 나오는 계약은 유지됩니다.

쌓이는 기억

브레인의 요점은 데이터베이스가 아닙니다. 가정의 전환입니다. 에이전트는 매 세션을 빈칸으로 시작하지 않습니다. 일 년 전에 쓴 markdown은 이미 그래프입니다. 어제 대화는 간선과 사실을 만들었고, 오늘 세션은 토큰을 내지 않고 그것을 물을 수 있습니다. 두 머신의 두 에이전트는 replicate 위에서 brain.db을 나누고 같은 보기로 모일 수 있습니다.

쌓이는 기억이란 그런 뜻입니다. 그래프는 자라고, 모델은 싸지고, 사용자는 기억하는 조수를 봅니다.

브레인을 받기

  • TypeScript 정본(봇과 함께 옴): npm install -g @hanzo/bot && hanzo-bot serve
  • Python: pip install hanzo-memory
  • Go 단일 바이너리: go install github.com/hanzobot/go/cmd/hanzo-bot@latest
  • Rust: hanzoai/node과 hanzoai/mcp의 워크스페이스 멤버
  • C++: hanzobot/cpp/include/hanzo/brain/에 있는 헤더만

소스: github.com/hanzoai/brain. 라이선스: MIT.


파일 하나. 다섯 런타임. 그래프 연산에 언어 모델 호출은 영. 설계로서 로컬 우선.

댓글

댓글을 달려면 Hanzo ID로 로그인하세요.

댓글 불러오는 중…

더 읽기