atom

에이전트의, 에이전트에 의한, 에이전트의 지식 베이스

제텔카스텐에서 착안한 카드 기반 원자적 지식 관리 체계

01 개요

atom은 제텔카스텐에 착안하여 만든 AI 에이전트를 위한 지식 베이스입니다. atom에서 모든 지식은 카드로 표현됩니다. 각 카드는 50자 이내의 제목과 마크다운 본문, 태그, 다른 카드에 대한 참조를 포함하며, 섹션 제목 역할을 하는 구조 카드와 메모를 적는 지식 카드로 구분됩니다. 카드는 트리 형태로 구성되며, 심링크를 통해 트리의 여러 곳에 삽입할 수 있습니다. atom 서버는 에이전트의 요청에 따라 필요한 하위 트리를 마크다운 문서 하나로 만들어 돌려줍니다. 사람도 웹 대시보드에서 내용을 확인하고 수정할 수 있지만, atom에서는 에이전트에게 제공되는 17개 MCP 도구와 REST API가 일급 시민입니다.

atom 대시보드 라이트 화면: 왼쪽 트리, 가운데 서브트리 컴파일 문서, 오른쪽 카드 상세 atom 대시보드 다크 화면: 왼쪽 트리, 가운데 서브트리 컴파일 문서, 오른쪽 카드 상세
02 심링크 카드 한 장을 여러 폴더에 연결할 수 있는 바로가기 1 → N 원본 → 위치

지식 베이스를 관리하다 보면, 어떤 한 지식을 여러 곳에서 참고해야 하는 경우가 자주 발생합니다. 이럴 때, 카드를 복제하지 않고 심링크 노드를 생성하여 카드 한 장을 트리의 여러 위치에 삽입할 수 있습니다. 그림처럼 결제 재시도 카드의 키 보관 시간을 48시간으로 수정하면 설계 결정과 운영 인시던트, 레퍼런스 세 폴더에서 읽는 내용이 모두 변경됩니다.

원본 카드 하나와 트리 세 곳의 연결 구조 원본 카드의 키 보관 시간을 24시간에서 48시간으로 고치면 연결된 설계 결정, 운영 인시던트, 레퍼런스 세 곳도 함께 48시간으로 바뀐다. 원본 카드 결제는 멱등 키로 재시도한다 키 보관 48시간 원래 자리 설계 결정 키 보관 48시간 심링크 운영 인시던트 키 보관 48시간 심링크 레퍼런스 키 보관 48시간 원본 카드 하나와 트리 세 곳의 연결 구조 원본 카드의 키 보관 시간을 24시간에서 48시간으로 고치면 연결된 설계 결정, 운영 인시던트, 레퍼런스 세 곳도 함께 48시간으로 바뀐다. 원본 카드 결제는 멱등 키로 재시도한다 키 보관 48시간 원래 자리 설계 결정 키 보관 48시간 심링크 운영 인시던트 키 보관 48시간 심링크 레퍼런스 키 보관 48시간
03 서브트리 컴파일 서브 트리를 원하는 깊이까지 마크다운 문서 하나로 1회 도구 호출

서브트리 컴파일은 compile_subtree 도구로 선택한 노드부터 원하는 깊이까지의 하위 항목을 조합해 하나의 마크다운 문서로 만듭니다. 트리 계층에 따라 1단계부터 6단계까지 마크다운 제목 단계가 정해지고, 그림의 깊이 버튼을 누르면 사용자가 단계별 구성을 확인할 수 있습니다. 서브 트리는 매우 클 수 있기 때문에 에이전트는 제목과 글자 수만 추린 목차를 먼저 조회한 뒤 필요한 노드만 컴파일하거나, 글자 수 상한과 제외할 노드를 지정해 컨텍스트 창을 아낄 수 있습니다.

compile_subtree
깊이별 서브트리 컴파일 범위와 결과 문서 왼쪽 브루라인 주문 앱 트리에서 선택한 깊이까지의 노드가 오른쪽 마크다운 문서 한 편으로 엮인다. 브루라인 주문 앱 개요 설계 결정 운영 인시던트 주문 흐름 주문 상태는 다섯 단계 결제는 멱등 키로 재시도한다 메뉴 캐시는 5분 결제 웹훅 중복 수신 새벽 알림 폭주 엮인 마크다운 문서 # 브루라인 주문 앱 ## 개요 ### 주문 흐름 ### 주문 상태는 다섯 단계 ## 설계 결정 ### 결제는 멱등 키로 재시도한다 ### 메뉴 캐시는 5분 ## 운영 인시던트 ### 결제 웹훅 중복 수신 ### 새벽 알림 폭주 # 브루라인 주문 앱 ## 개요 ## 설계 결정 ## 운영 인시던트 깊이별 서브트리 컴파일 범위와 결과 문서 위쪽 브루라인 주문 앱 트리에서 선택한 깊이까지의 노드가 아래쪽 마크다운 문서 한 편으로 엮인다. 브루라인 주문 앱 개요 설계 결정 운영 인시던트 주문 흐름 주문 상태는 다섯 단계 결제는 멱등 키로 재시도한다 메뉴 캐시는 5분 결제 웹훅 중복 수신 새벽 알림 폭주 엮인 마크다운 문서 # 브루라인 주문 앱 ## 개요 ### 주문 흐름 ### 주문 상태는 다섯 단계 ## 설계 결정 ### 결제는 멱등 키로 재시도한다 ### 메뉴 캐시는 5분 ## 운영 인시던트 ### 결제 웹훅 중복 수신 ### 새벽 알림 폭주 # 브루라인 주문 앱 ## 개요 ## 설계 결정 ## 운영 인시던트
04 MCP MCP를 통한 편집, 복잡한 작업도 batch_op 한 번으로 17 도구

에이전트는 같은 컴퓨터의 stdio나 API 키 헤더를 포함한 HTTP 요청으로 MCP 서버에 연결할 수 있습니다. 여러 건의 카드를 조작할 경우, 단일 편집 호출을 반복하는 것은 컨텍스트 낭비가 크기 때문에, atom은 한 번에 여러 편집을 처리할 수 있는 batch_op을 지원합니다. batch_op 도구는 카드 생성과 심링크 연결, 수정, 순서 변경, 삭제를 한 트랜잭션에서 처리하며, 하나라도 실패하면 전체 변경을 안전하게 되돌립니다.

atom MCP 도구 17개 네 묶음 구성 카드 5개, 트리 8개, 검색과 평가 3개, 묶음 1개(batch_op)의 네 묶음으로 이루어진다. 카드 5 create_card get_card update_card delete_card get_backlinks 트리 8 get_node list_children get_tree compile_subtree create_symlink move_node update_node delete_node 검색과 평가 3 search_cards get_card_neighbors evaluate_cards 묶음 1 batch_op atom MCP 도구 17개 네 묶음 구성 카드 5개, 트리 8개, 검색과 평가 3개, 묶음 1개(batch_op)의 네 묶음으로 이루어진다. 카드 5 create_card get_card update_card delete_card get_backlinks 트리 8 get_node list_children get_tree compile_subtree create_symlink move_node update_node delete_node 검색과 평가 3 search_cards get_card_neighbors evaluate_cards 묶음 1 batch_op
05 검색 카드 본문 전체를 대상으로, 범위를 하위 트리 하나로 한정할 수 있는 검색 BM25 순위 방식

에이전트는 search_cards 도구로 제목과 본문을 검색해 관련도 순으로 기본 20건까지 조회하며, 태그나 종류, 수정 시각을 조건으로 지정하고 결과마다 상위 제목 경로를 함께 받을 수 있습니다. 선택 기능으로 Jev와 같은 외부 판정 서비스를 연결하면 그림처럼 한 번에 후보 카드를 48장까지 질의와 대조해 0에서 1 사이 연관도 점수를 활용할 수 있습니다. OpenAI 키를 등록하면 카드 임베딩으로 비슷한 카드로도 검색을 확장할 수 있습니다.

질의에서 후보 카드 판정과 선정 과정 결제가 두 번 되는 문제 질의에서 후보 카드 세 장의 점수를 매겨 0.9와 0.7 카드를 선정하고 0.4 카드는 제외한다. 질의 (브루라인 주문 앱) 결제가 두 번 되는 문제 BM25 후보 → 언어 모델 판정(선택) 결제는 멱등 키로 재시도한다 설계 결정 0.9 선정 결제 웹훅 중복 수신 운영 인시던트 0.7 선정 PG사 결제 API 요약 레퍼런스 0.4 제외 질의에서 후보 카드 판정과 선정 과정 결제가 두 번 되는 문제 질의에서 후보 카드 세 장의 점수를 매겨 0.9와 0.7 카드를 선정하고 0.4 카드는 제외한다. 질의 (브루라인 주문 앱) 결제가 두 번 되는 문제 BM25 후보 → 언어 모델 판정(선택) 결제는 멱등 키로 재시도한다 설계 결정 0.9 선정 결제 웹훅 중복 수신 운영 인시던트 0.7 선정 PG사 결제 API 요약 레퍼런스 0.4 제외
06 설치 처음엔 DB 서버 없이, 본격적으로 운영할 때는 PostgreSQL로 1 SQLite 파일

사용자는 Node.js 20.19 이상 또는 22.12 이상이 설치된 컴퓨터에서 별도 데이터베이스 서버나 로그인 설정 없이 SQLite 기반으로 서버와 대시보드를 바로 실행할 수 있습니다. 함께 제공되는 스크립트를 실행하면 데모 데이터가 생성되어 처음 기능을 확인할 때 활용할 수 있습니다. 본격적인 운영 환경이나 여러 에이전트가 동시에 검색하는 환경에서는 PostgreSQL을 사용할 수 있으며, 관리자는 대시보드 설정의 데이터베이스 탭에서 연결을 시험하고 기존 SQLite 데이터를 PostgreSQL로 이관할 수 있습니다.

로컬과 단일 서버 SQLite FTS5 포함
운영 서버 PostgreSQL 스키마와 도구 동일