engram
TypeScript CI
Engram은 새로운 제품인 **에이전트 메모리 기질(agent memory substrate)**로, 지식 그래프 도구에서 재구축 및 재배치된 것입니다. 이전 graphify 프로젝트(@sentropic/graphify)의 개념을 계승하지만, 후속작은 아닙니다 (이름, CLI, 환경 변수, 상태 디렉터리, 스키마, 포지셔닝 등이 변경됨 - 아래 마이그레이션 참조). 유산: Engram은 graphify에서 파생되었습니다. 이전 라인에 대해서는 보관된 @sentropic/graphify README와 CHANGELOG를 참조하세요. 새로운 작업은 오직 engram만을 대상으로 합니다.
Engram은 코퍼스(corpus)를 조정되고, 온톨로지 유형화된 지식 그래프로 변환합니다. 대부분의 지식은 문서 형태가 아닙니다. 하나의 사실이 하나의 파일에 존재하는 것이 아닙니다. 그것은 다양한 출처에 흩어져 있는 개체와 관계입니다: 25권의 책에서 세 가지 이름으로 등장하는 같은 인물, CSV 레지스트리에서는 한 방식으로, 매뉴얼에서는 다른 방식으로 명명된 구성 요소, 증거, 동기, 방법이 연결되어야만 의미를 갖는 사건 등. 산문(prose)과 문서는 이러한 구조를 평탄화하지만, 지식 그래프는 이를 유지합니다. Engram은 표준 개체와 유형화된 관계를 추출하고, 설정 가능한 온톨로지 하에서 출처 간에 중복을 제거하고 조정하며, 사용자의 어시스턴트 또는 터미널에서 추론할 수 있는 쿼리 가능한 그래프를 제공합니다.
Engram Ontology Studio — Sherlock Holmes selected: ontology-typed knowledge graph of 25 public-domain mystery works, with the entity panel showing description, communities, and relations
*대표적인 코퍼스: 25개의 공공 영역 미스터리 작품으로부터 재조정된 19가지 온톨로지 유형(작업(Work), 사가(Saga), 사건(Case), 등장인물(Character), 증거(Evidence), 동기(Motive), 법의학적 방법(ForensicMethod), 변장 페르소나(DisguisePersona), 별명(Alias) 등)에 걸친 1,193개의 표준 개체가 99개의 커뮤니티로 클러스터링되었습니다. 여기는 셜록 홈즈의 개체 패널이 열려 있는 모습입니다. 라이브 스튜디오 탐색하기 → https://mystery-saga.sent-tech.ca/studio/
왜 지식 그래프인가, 더 많은 산문(prose)이 아닌가
그래프가 문서보다 제공하는 네 가지 것:
- 질의 가능한 구조(Queryable structure) —
engram query "what connects Irene Adler to the Bohemia case?"와 같이 질의하여, 재독해야 할 검색 결과 목록이 아닌 유형화된 노드와 엣지를 통한 경로를 얻을 수 있습니다.
- 개체 통합/조정(Entity reconciliation) — 'Holmes', 'Mr. Sherlock Holmes' 및 위장된 페르소나가 별개의 언급으로 남아 있는 대신, 별칭과 증거 참조가 포함된 하나의 표준 개체로 통합됩니다.
- 교차 소스 연결(Cross-source linking) — 여러 작품에 등장하는 캐릭터, 저자와 그 번역가, 레지스트리 행과 일치하는 추출된 언급 등 출처 간의 엣지는 출처 정보(provenance)와 함께 일급 시민(first-class)으로 취급됩니다.
- 온톨로지 유형 노드(Ontology-typed nodes) — 모든 노드는 사용자가 제어하는 프로필(
Character, Case, Evidence 등)로부터 타입을 가집니다. 각 타입은 visual_encoding(모양 + 색상)을 지정할 수 있으며, 관계는 허용된 종단점(allowed endpoints)에 대해 검증되므로 그래프가 단순한 덩어리가 아닌 모델로 유지됩니다.
코드 그래프에서 온톨로지 그래프로
Engram은 **코드 지식 그래프(code knowledge graph)**로 시작했습니다. 즉, 저장소(repo)를 구문 분석하여 클래스/함수/호출을 추출하고, 클러스터링하며, 보고하는 방식이었습니다. 온톨로지도, 개체 관리도 없었죠. 현재 제품 라인업은 이 방식을 유지하고 있지만(코드 지식 그래프 참조), 이를 일반화했습니다:
| 초기 접근 방식 (코드 그래프) | 현재 (온톨로지 기반 개체 그래프) |
|---|
| 노드 유형 | 고정적 (클래스, 함수, 개념) | 프로젝트별 구성 가능한 온톨로지 프로필 |
| ... | | |
증명: 그래프가 스스로 비용을 회수한다
실행할 때마다 토큰 벤치마크가 출력됩니다. 일단 구축되면, 각 질의는 원본 파일을 다시 읽는 대신 압축된 그래프를 읽게 됩니다:
| 코퍼스 | 파일 | 쿼리당 토큰 수 대 원본 | 작업 예시 |
|---|
| Karpathy repos + 5 papers + 4 images | 52 | ~71.5× 적음 | worked/karpathy-repos/ |
| ... | | | |
이 작은 코퍼스만으로도 이미 컨텍스트에 들어오므로 압축할 것이 거의 없으며, 여기서 가치는 토큰 절약이 아니라 구조적 명확성입니다. 각 worked/ 폴더는 원본 입력과 실제 출력을 제공하여 수치를 재현할 수 있게 합니다. 토큰 수치는 실제 모델 호출로 뒷받침되지 않는 한 추정치입니다. | | | |
글로벌 거버넌스 계약 (Global governance contract)
Sentropic, h2a, Engram 및 Design System은 연합 거버넌스 계약(federated governance contract)을 공유합니다. 각 중요한 행위에는 명시적인 위임 하에 한 명의 책임 주체가 있으며, 각 저장소는 자체 코드, 릴리스 및 데이터 권한을 유지합니다.
Engram은 지식과 온톨로지 프레임을 소유합니다: 표준 에이전트 메모리 D3, 필터링된 투영(filtered projection) D10, 실시간 개발 지식, 거버넌스 온톨로지 프로파일 및 중앙 시간 참조 D1=C. Engram은 필요한 저장 표면을 선언하고 Sentropic의 중립 스토리지 인터페이스를 소비합니다. 책임 있는 기능에는 C05 에이전트 메모리, C06 실시간 개발 지식, C07 아키텍처 및 온톨로지, 그리고 C14 운영 학습 및 시간 참조가 있습니다. 주요 조항: C-01, C-02, C-05, C-06, C-12, C-13, C-14 및 C-16.
소유자 결정 — 2026-10-19: G1, 행위별 연합 계약; G2, Engram의 프로파일/스키마/피처/마이그레이션 및 Design System의 일반 실행기/레이아웃/렌더링; G3, Design System의 주석 표시 프레젠테이션과 Sentropic의 단일 주석 모델. Design System은 불투명한 앵커를 받고 제안을 방출하며, Sentropic이 이를 해결하고 영구 저장합니다. 다이어그램 앵커는 Engram 프로파일을 참조합니다. H1은 각 Sentropic 앱에 대해 서브도메인과 별도의 도메인 아티팩트 호스팅을 모두 요구합니다.
역량 맵(capability map) C01–C14는 소유자(owner)의 맵이 확정될 때까지 임시 상태로 유지됩니다. 승인된 거버넌스 결정과 출처(source), 게시(publication), 설치(installation), 그리고 런타임 자격 증명(runtime qualification)은 별도의 증거 상태입니다.
Read the contract and rebuild instructions · Decision register and owner evidence · Study: clauses, capabilities and migration · Interactive dossier — download and open locally
개요는 접혀 있습니다. 아래의 어떤 프레임을 확장해도 정적 세부 정보가 표시됩니다. 인터랙티브 도서(interactive dossier) 역시 프랑스어/영어와 개별 프레임 제어를 지원합니다. 이미지는 동일한 사전 계산된 기하학을 사용하며 라이트/다크 테마를 지원합니다.
Global governance — collapsed overview
<details>
<summary>h2a — 조직 및 의사결정</summary>
h2a — Organisation and decision-making
</details>
<details>
<summary>접근 표면(Access surfaces) — CLI, Cowork, 클라우드 및 AI 제공업체</summary>
Access surfaces — CLI, Cowork, cloud and AI providers
</details>
<details>
<summary>Sentropic — 공유 서비스</summary>
Sentropic — Shared services
</details>
<details>
<summary>Sentropic — 카탈로그(Catalogues)</summary>
Sentropic — Catalogues
</details>
<details>
<summary>Sentropic — MCP 제공업체 및 도구</summary>
Sentropic — MCP providers and tools
</details>
<details>
<summary>Sentropic — 보안 및 관측 가능성(Security and observability)</summary>
Sentropic — Security and observability
</details>
<details>
<summary>Sentropic — 모델 및 아티팩트 저장소</summary>
Sentropic — Model and artifact storage
</details>
<details>
<summary>Sentropic — 통합(Integration)</summary>
Sentropic — Integration
</details>
<details>
<summary>Engram — 지식 및 온톨로지</summary>
Engram — Knowledge and ontologies
</details>
<details>
<summary>디자인 시스템(Design System) — 렌더링 및 상호작용</summary>
Design System — Rendering and interaction
</details>
빠른 시작
필수 조건: Node.js 20 이상 버전과 지원되는 AI 코딩 어시스턴트(Claude Code, Codex, Gemini CLI 및 기타 — 참고 참조)가 필요합니다.
npm i -g @sentropic/engram
engram install
어시스턴트를 사용하여 첫 번째 그래프를 구축하세요:
이 명령어는 .engram/ 디렉토리를 생성합니다:
.engram/
├── graph.json 지속적인 그래프 — 다시 읽을 필요 없이 몇 주 후에 쿼리 가능
├── GRAPH_REPORT.md 신규 노드, 놀라운 연결 고리, 제안 질문
...
시각적 출력물은 .engram/studio/에 있는 정적 Ontology Studio입니다. 이는 자체 포함된 번들(사전 구축된 SPA + 데이터 아티팩트)입니다. 이 디렉토리를 모든 정적 파일 서버(index.html)로 서비스하거나, engram studio export .engram/studio를 사용하여 다른 곳에 재내보낼 수 있습니다.
터미널에서 직접 쿼리할 수 있으며 — 어시스턴트가 필요하지 않습니다:
engram query "what connects attention to the optimizer?" --graph .engram/graph.json
engram path "DigestAuth" "Response" --graph .engram/graph.json
engram explain "SwinTransformer" --graph .engram/graph.json
...
(--graph는 .engram/graph.json이 해결된 기본값이 된 후에는 선택 사항입니다.)
빌드 옵션
빌드는 스킬(skill)에서 구동되며, 일반적인 플래그는 다음과 같습니다:
/engram ./raw --directed
/engram ./raw --mode deep
/engram ./raw --update
...
engram watch [경로]는 백그라운드 터미널에서 그래프를 실시간으로 유지합니다. 코드 저장 시 **즉각적인 AST 재구축(LLM 미사용)**이 트리거되며, 문서/이미지 변경은 플래그를 설정하고 LLM 재처리 작업을 위해 --update를 실행하도록 알림을 보냅니다. 리포지토리 간 작업의 경우, engram clone <url>은 원격 리포지토리에 대한 그래프를 구축하며, engram merge-graphs <그래프들...>는 여러 그래프를 하나로 엮습니다.
graphify에서 마이그레이션하기
Engram은 이름이 변경된 제품 라인입니다. 이전 이름들은 최소 두 개의 마이너 버전 또는 12개월 동안 사용 중단된 별칭(deprecated aliases)으로 계속 작동합니다. 새로운 기록은 항상 새 이름을 따르며, 아무것도 자동으로 제자리에서 이름이 변경되지는 않습니다.
| 무엇 | 새 이름 (사용할 것) | 사용 중단된 별칭 (여전히 작동함) |
|---|
| CLI / bin | engram | graphify (사용 중단 알림을 출력합니다. ENGRAM_QUIET_DEPRECATION=1로 침묵시킬 수 있습니다.) |
| ... | | |
레거시 상태 이동: engram migrate-state --dry-run은 graphify-out → .engram으로의 이동을 계획합니다.
상태 작업 파일은 .engram/ 내부에서 .graphify_*.json 이름을 유지하며 절대 재작성되지 않습니다.
온톨로지 계층 (The Ontology Layer)
구성 가능한 온톨로지 (프로파일)
프로젝트는 그래프를 제약하는 **온톨로지 프로파일(ontology profile)**을 고정할 수 있습니다. 이 프로파일은 허용되는 노드 유형, 관계 유형, 인용 요구 사항, 검토 상태, 유형별 visual_encoding (모양 + 색상), 그리고 명명된 레지스트리 바인딩(CSV, JSON 또는 YAML) 등을 정의합니다. 프로파일 모드는 엄격하게 추가적(additive)입니다. 이는 Engram이 engram.yaml, engram.yml, .engram/config.yaml 또는 .engram/config.yml을 찾았거나, 사용자가 --config/--profile을 전달했을 때만 활성화됩니다. 이것이 없으면 일반적인 Engram 동작은 변경되지 않습니다.
최소한의 engram.yaml: