Skip to main content
Glama
dpro10

cookbook-brain

by dpro10

cookbook-brain

당신의 에이전트에게 당신이 소유하는 기억을 주세요.

cookbook-brain은 AI 에이전트가 학습한 내용을 평문 마크다운 파일로 저장하여 디스크의 git 저장소에 보관합니다. Claude Code, Codex 또는 모든 MCP 클라이언트가 이를 기억하고, 회상하며, 이를 바탕으로 작업을 이어갈 수 있습니다. 하나의 두뇌, 모든 에이전트. 당신의 Claude와 Codex가 마침내 동일한 정보를 알게 되고, 서로 작업을 넘길 수도 있습니다. 모든 노트에는 작성자(인간 또는 어떤 에이전트)가 표시됩니다. 어떤 것도 덮어쓰지 않습니다. 그리고 노트는 실제 작업이 그것에 의존했을 때 옳았다는 유일한 의미 있는 방식으로 신뢰를 얻습니다.

Obsidian에서 폴더를 열면 평문 노트가 보입니다. 그게 전부이기 때문입니다.

빠른 시작

npx cookbook-brain init             # creates ./brain with a schema note
npx cookbook-brain harvest          # propose notes distilled from your recent Claude Code sessions
npx cookbook-brain harvest --apply  # write the proposals the refuter kept
claude mcp add brain -- npx cookbook-brain serve

당신의 두뇌는 처음부터 가득 차 있습니다. 첫 번째 에이전트 세션이 연결되기도 전에 harvest가 최근 로컬 Claude Code 대화 내용을 읽고, 그 안에 있는 결정, 문제점, 관례를 추출하여 속성이 부여된 노트로 만듭니다(아래 "Harvest" 참조; --apply를 지정하기 전까지는 제안만 합니다).

그런 다음 에이전트에게 "스테이징 DB는 매일 밤 초기화된다는 것을 기억해"라고 말하면 저장되고, 속성이 부여되며, 모든 향후 세션에서 회상됩니다. 이것이 전체 루프입니다.

기타 명령어:

npx cookbook-brain log           # recent notes, newest first
npx cookbook-brain credit <id>   # credit notes whose facts held up in real work
npx cookbook-brain tasks         # open and claimed tasks, with age
npx cookbook-brain doctor        # validate every note, link, chain, and task
npx cookbook-brain index         # generate INDEX.md, a wikilinked view of the brain
npx cookbook-brain web           # read-only local viewer at http://127.0.0.1:4321
npx cookbook-brain install-hook  # every session harvests itself when it closes (report-only)

두뇌 디렉토리는 --dir 플래그, 그 다음 BRAIN_DIR 환경 변수, 그 다음 ./brain 순서로 결정됩니다. 인간 속성은 BRAIN_HUMAN에서 가져오며, 기본값은 OS 사용자 이름입니다. Node 20 이상이 필요합니다.

Related MCP server: clawmem-mcp-server

파일을 사용하는 이유

당신의 에이전트 기억이 다른 사람의 벡터 데이터베이스에 저장되어서는 안 됩니다. 파일이면 모든 기억을 읽고, 모든 변경 사항을 diff하고, 새벽 2시에 grep하고, git으로 백업하고, 폴더를 보관하여 언제든지 떠날 수 있습니다. 공급업체는 정책을 바꾸지만, 마크다운은 그렇지 않습니다.

그리고 아니요, 그 아래에는 벡터 데이터베이스가 없습니다. 세 가지 구체적인 이유 때문입니다. 임베딩은 API 키와 네트워크 호출이 필요하지만, 이 도구는 그런 것을 전혀 사용하지 않습니다. 아무것도 디스크를 떠나지 않습니다. 벡터 인덱스는 불투명합니다. grep할 수도, diff할 수도, 왜 그런 결과를 반환했는지 알 수 없습니다. 그리고 개인 두뇌(수백 개의 노트, 수백만 개의 문서가 아님) 규모에서는 평문 검색과 링크 그래프가 동등하게 검색합니다. 벡터는 코퍼스 규모에서 그 복잡성을 발휘합니다. 이것은 코퍼스가 아니라 두뇌입니다.

형식

파일당 하나의 노트. 머리말(Frontmatter)은 사실에 대한 사실을 담고 있습니다.

---
id: 01J8ZQ4X2E5N9GVHBK3W7T1MCD
type: decision
title: Poll interval is 30s, not 10
aliases: ["Poll interval is 30s, not 10"]
author:
  human: diego
  agent: claude-code
created: 2026-08-18T17:20:00.000Z
supersedes: null
source: "https://status.example.com/limits"
credits: 3
last_credited: 2026-08-20T09:30:00.000Z
---
Free-tier endpoints rate-limit hard. At 10s we tripped limits on 3 of 8
targets. 30s stays under every limit tested. Related:
[[Unknown check state renders as degraded]]

노트는 유형(decision, gotcha, convention, note, open_thread, task)으로 구분되며, 인간 작성자와 에이전트가 작성한 경우 에이전트 레이블이 속성으로 부여됩니다. 선택적 source 필드는 사실의 출처(URL, 파일 경로, 티켓 ID)를 인용합니다. 인용된 기억은 감사 가능한 기억이며, 더 높은 신뢰도 상한을 얻습니다. 또한 모든 노트는 자체 제목을 포함하는 aliases 목록을 가지고 있습니다. 파일 이름은 날짜-슬러그 형식이며, 이 별칭을 통해 Obsidian이 [[Title]] 위키링크를 올바른 파일로 확인할 수 있습니다(아래 "Obsidian과 함께 사용하기" 참조). 위키링크가 그래프입니다. 회상(Recall)은 노트와 함께 백링크와 각 언급 주변의 줄을 반환하므로, 에이전트는 고립된 사실이 아닌 연결된 맥락을 얻습니다. 회상은 또한 쿼리와 관계없이 모든 활성 convention 노트를 그대로 반환합니다. 상시 규칙은 함께 전달되어 에이전트가 이를 검색한 작업뿐만 아니라 모든 작업에 적용하도록 합니다. 파일 이름은 <date>--<slug-of-title>.md 형식이므로 디렉토리가 일지처럼 읽힙니다.

절대 덮어쓰지 않음

노트 업데이트는 이전 노트를 대체하는 새 노트를 만듭니다. 이전 파일은 그대로 유지되며, 대체됨(superseded) 표시가 됩니다. 두 가지 이유가 있으며, 둘 다 어렵게 배웠습니다. 모든 AI 재작성은 조용히 약간의 의미를 잃게 하며, 기록 없이는 기억을 디버깅할 수 없습니다. 당신의 두뇌 git 로그가 감사 추적입니다.

노트 본문은 영원히 추가 전용입니다. 기존 파일에서 정확히 두 개의 카운터만 제자리에 찍힐 수 있습니다. creditslast_credited이며, 노트에 의존한 작업이 검증 가능하게 완료되었을 때 기록됩니다. 그 신용 쌍은 superseded_by 스탬프와 함께 두 번째로 허용된 변형입니다. 작업 노트는 작업 유형 노드에만 세 번째 스탬프 세트(status, claimed_by, result, abandon_reason)를 가집니다. 기존 파일의 다른 어떤 것도 건드리지 않습니다.

신뢰도: 신뢰는 주장이 아니라 증명으로 얻어진다

모든 회상은 신뢰도 점수와 계층(proven / standing / verify)을 함께 제공합니다. 공식은 공개적이며 의도적으로 평범합니다.

score = clamp(cap - 0.10 + 0.05 * min(credits, 3) - staleness, 0.20, cap)
  • 출처(Provenance)가 상한선을 결정합니다. 인간이 작성한 노트는 0.95에서 상한선을 가집니다. 출처를 인용한 에이전트 노트(source 머리말 필드, source: 줄, 또는 본문의 URL): 0.85. 출처가 없는 에이전트 주장: 0.60. 아무리 반복해도 노트가 상한선을 넘을 수 없습니다.

  • 신용(Credits)이 점수를 올립니다. 신선한, 신용이 없는 노트는 상한선보다 0.10 낮은 상태로 시작합니다. 노트를 회상한 작업이 검증 가능하게 성공하면, 노트에 credit을 부여합니다(하나의 CLI 호출, 또는 에이전트가 완료 시 수행하도록 함). 각 신용은 0.05를 추가하며, 세 번이면 상한선을 되찾습니다.

  • 침묵(Silence)이 점수를 낮춥니다. 노후화는 last_credited 이후(또는 신용이 한 번도 없으면 created 이후) 90일마다 0.05를 차감하며, 최대 0.15까지 차감합니다. 몇 달 동안 아무도 신용을 부여하지 않은 노트는 "사용 전 확인" 쪽으로 점수가 감소합니다.

점수는 소수점 둘째 자리에서 반올림됩니다. 계층: proven은 최소 한 번 이상 신용을 받았고 점수가 0.80 이상인 경우로, 실제 완료된 작업이 의존한 노트만이 입증될 수 있습니다. standing(0.60 이상)은 신뢰할 수 있습니다. 그 외는 모두 verify입니다. 이를 바탕으로 구축하기 전에 확인하세요.

이것은 다른 어떤 기억 시스템도 제공하지 않는 부분입니다. "무엇을 말했는가?"뿐만 아니라 "이것이 실제로 중요할 때 한 번이라도 옳았던 적이 있는가?"에 답하는 기억입니다.

작업: 당신의 에이전트가 서로 작업을 넘길 수 있다

작업은 상태와 담당자가 있는 또 다른 노트(유형: task)입니다.

"assign my codex a task: read docs/brief.md and draft the FAQ"

당신의 Claude가 작업 노트를 작성합니다. 다음에 Codex 세션이 시작되어 두뇌를 회상할 때, 그 세션에 할당된 열린 작업이 응답의 open_tasks 섹션에 있습니다. Codex가 이를 클레임하고, 작업을 수행하며, 완료합니다. 완료는 루프가 닫히는 지점입니다. 완료한 에이전트는 의존한 노트를 기록하고(helped_note_ids), 해당 노트들은 신용을 받습니다. 이것이 당신이 장부 정리 명령을 실행하지 않아도 기억이 신뢰도를 얻는 방식입니다.

그리고 클레임된 작업이 에이전트의 능력을 넘어서는 경우(접근 권한 부족, 반복 실패), 에이전트는 작업을 붙잡고 있지 않고 포기합니다. 작업은 abandon_reason에 이유가 기록된 채로 다시 열린 상태로 돌아가며, 할당자와 다음 클레임자가 볼 수 있습니다. 실패 가시성은 기능입니다. 조용히 썩는 작업은 큰 소리로 반환되는 작업보다 나쁩니다. 누군가가 다음에 작업을 클레임하면 이유는 지워집니다.

정직한 메커니즘: 백그라운드 프로세스는 없습니다. 할당은 노트가 해당 에이전트의 다음 세션이 그것을 가져올 때까지 폴더에 대기함을 의미합니다. 당신의 에이전트는 팀이 화이트보드를 통해 조정하는 것처럼 두뇌를 통해 조정합니다. 누군가 지나가서 읽을 때까지 아무것도 움직이지 않습니다. 항상 켜져 있는 클레임, 사람 간의 실시간 인계, 실제 비용 귀속이 있는 영수증을 위해서는 호스팅된 제품의 역할입니다.

꿈꾸기(Dreaming)

축적만 하는 두뇌는 결국 침전됩니다. npx cookbook-brain dream은 야간 통합 패스입니다. 중복을 병합하고, 두 번 신용된 gotcha를 convention으로 승격시키고, 모순을 open_thread로 플래그 지정하며, 충돌하는 노트의 제목을 변경합니다. 모든 제안은 적용되기 전에 적대적 반박자(refuter)에 의해 검토됩니다. 이것은 당신의 자체 Claude CLI에서 당신의 로그인으로 실행됩니다. cookbook-brain은 API 키를 보유하지 않으며 자체적으로 네트워크 호출을 하지 않습니다.

npx cookbook-brain dream               # report-only: propose and review, apply nothing
npx cookbook-brain dream --apply       # execute the proposals the refuter kept
npx cookbook-brain dream --apply --commit  # then git commit the brain directory (only paths under it)
npx cookbook-brain dream --json        # machine-readable report on stdout (report file still written)
npx cookbook-brain dream --dry-digest  # print exactly what would be sent to the model, then exit
npx cookbook-brain dream --model <id>  # pick the model; default is your claude setting

꿈이 작동하는 방식은 순서대로 다음과 같습니다.

  1. 위생 검사, 모델 없음. 결정론적 패스가 활성 중복 제목, 여전히 활성 위키링크에서 참조되는 대체된 노트, 오래된 입증되지 않은 노트(verify 계층, 90일 이상)를 수집합니다. 이러한 결과는 다음 단계의 시드가 됩니다.

  2. 제안자(Proposer). 하나의 claude -p 호출이 활성 노트(아이디, 유형, 제목, 신용, 나이, 각 본문의 처음 280자)의 간결한 요약을 보고 폐쇄된 집합(merge, promote, flag_contradiction, retitle_for_collision)에서만 작업을 제안할 수 있습니다. 모델로 전송되는 내용을 정확히 읽고 싶다면 먼저 --dry-digest를 실행하십시오. 반박자 호출은 추가로 제안이 다루는 모든 노트의 전체 텍스트를 보냅니다.

  3. 반박자(Refuter). 새로운 컨텍스트와 제안에 대한 기억이 없는 두 번째 claude -p 호출이 각 제안을 소스 노트의 전체 텍스트에 대해 검토하고, 유지 또는 거부를 이유와 함께 답변해야 합니다. 구문 분석할 수 없는 평결의 제안은 기본적으로 거부되며, 조용히 유지되지 않습니다. 반박자 호출 자체가 실패하거나 쓰레기를 반환하면 전체 꿈은 refuter: absent로 표시되고, --apply가 있어도 아무것도 적용되지 않습니다. 보고서는 항상 "이의 없음"과 "검토자가 나타나지 않음"을 구분합니다. 반박자 프롬프트는 24,000자로 제한됩니다. 제안과 해당 소스 노트가 이를 초과하면 가장 큰 제안이 검토에서 제외되고, "검토되지 않음: 너무 큼"으로 기록되며, 검토되지 않은 제안은 절대 적용되지 않기 때문에 적용되지 않습니다.

  4. 적용(Apply), 요청한 경우에만. 기본값은 보고서 전용입니다. --apply를 사용하면 유지된 제안이 가역적으로 실행됩니다. 병합은 consolidates 필드에 소스 ID를 나열하고 각 소스에 superseded_by를 스탬프하는 새 노트를 작성합니다. 승격도 동일하게 convention으로 수행됩니다. 모순은 일반적인 open_thread 노트를 제출합니다(이미 두 노트를 모두 참조하는 활성 open_thread가 있으면 건너뛰므로 동일한 충돌이 두 번 플래그 지정되지 않음). 제목 변경은 단순한 대체입니다. 적용이 쓰는 동안 brain/.lock 파일을 보유합니다. MCP 쓰기 도구는 이를 기다리지만, 읽기는 절대 차단되지 않으며, 10분 이상 된 잠금은 오래된 것(충돌한 적용)으로 간주되어 경고와 함께 재정의됩니다. 꿈을 되돌리는 것은 해당 커밋에 git revert를 하는 것입니다. 꿈은 파일을 추가하고 superseded_by를 스탬프만 하기 때문입니다. --commit을 추가하면 성공적인 적용이 두뇌 디렉토리를 커밋하며, 그 아래의 경로만 건드립니다.

모든 꿈은 brain/dreams/DREAM_<날짜>.md에 보고서를 작성합니다(노트 스캐너가 읽지 않는 하위 디렉토리). 보고서에는 요약 통계, 위생 결과, 각 제안과 그 근거, 각 반박자 평결과 그 이유, 필수 refuter: ran 또는 refuter: absent 줄, 적용된 내용, 되돌리는 방법이 포함됩니다.

주목할 만한 한 가지 속성: 꿈이 작성한 노트는 { human: you, agent: "dream" }로 작성되며, 에이전트 전용 출처 상한선이 적용됩니다. 두뇌는 작업이 입증할 때까지 자신의 꿈을 신뢰하지 않습니다. 꿈 병합 노트는 다른 출처 없는 에이전트 주장과 마찬가지로 낮은 신뢰도로 시작하며, 실제 작업이 그것에 의존할 때 옳음으로써만 점수를 올립니다.

원한다면 야간에

꿈은 잠자는 동안 실행되도록 설계되었습니다. 간단한 crontab 줄이면 됩니다.

15 3 * * * cd /path/to/your/project && npx cookbook-brain dream >> brain/dreams/cron.log 2>&1

--apply를 생략하고 커피를 마시며 보고서를 읽거나, 반박자의 취향을 신뢰하게 되면 추가하십시오. 어느 쪽이든, 나중에 두뇌를 커밋하여 모든 꿈이 하나의 되돌릴 수 있는 커밋이 되도록 하십시오. --apply --commit이 그 커밋을 대신 수행합니다.

수확(Harvest): 당신의 두뇌는 처음부터 가득 차 있다

새로운 두뇌는 당신의 실제 결정이 로컬 세션 대화 내용에 쌓여 있는 동안 비어 있어서는 안 됩니다. npx cookbook-brain harvest는 최근 Claude Code 세션을 읽고, 이를 원자적 노트로 추출하며, 모든 제안을 꿈을 검토하는 동일한 적대적 반박자에 통과시킵니다. 이것이 첫날 두뇌를 부트스트랩하고, 바쁜 한 주 후에 보충하는 방법입니다.

npx cookbook-brain harvest                  # report-only: propose notes from the last 7 days
npx cookbook-brain harvest --days 30        # scan further back
npx cookbook-brain harvest --project myapp  # only sessions whose working directory basename matches
npx cookbook-brain harvest --apply          # write the notes the refuter kept
npx cookbook-brain harvest --session <id> --since-last  # one session, only messages newer than its watermark
npx cookbook-brain harvest --dry-digest     # print exactly what would be sent to the model, then exit
npx cookbook-brain harvest --json           # machine-readable report on stdout (report file still written)
npx cookbook-brain harvest --sessions <path> --model <id>   # override the transcripts root and the model

당신이 물어야 할 질문에 대한 직접적인 답변:

  • 읽는 것. ~/.claude/projects 아래의 로컬 Claude Code 트랜스크립트(--sessions로 재정의 가능), 최근 N일치를 읽습니다. 네, 맞습니다: 메시지 내용, 사람의 메시지와 어시스턴트의 주요 결론을 읽습니다. 내용을 추출하는 것이 전체 작업이기 때문입니다. 시간 창은 메시지 타임스탬프 기준으로 적용되므로, 몇 달 동안 유지한 세션 파일도 창 안에 있는 메시지만 기여하고 전체 기록은 기여하지 않습니다. 도구 트래픽, 서브에이전트 트랜스크립트, 도구 자체의 claude -p 실행(수확 및 꿈 호출, 프롬프트 마커로 감지)은 건너뜁니다. 이는 메타데이터 전용 도구와는 의도적으로 반대되는 접근입니다. 여기에 명시하므로 나중에 놀라서 알게 되는 일이 없도록 합니다.

  • 보내는 곳. 세션별로 압축된 요약은 세션을 생성한 동일한 도구인 사용자 본인의 로그인된 claude CLI로 전송됩니다. API 키도, 다른 네트워크 호출도 없으며, 사용자의 claude 로그인이 이미 사용하지 않는 경로로는 어떤 것도 머신을 떠나지 않습니다. --dry-digest는 정확한 발신 프롬프트를 출력합니다.

  • 쓰는 것. 기본적으로 아무것도 쓰지 않습니다. brain/dreams/HARVEST_<date>.md의 보고서는 모든 제안, 모든 중복 건너뛰기(두뇌가 이미 알고 있는 사실), 모든 반박자 평결을 필수 refuter: ran 또는 refuter: absent 줄과 함께 나열합니다. 검토되지 않은 수확은 --apply가 있어도 아무것도 적용하지 않습니다. --apply만 노트를 쓰며, 적용된 수확은 새 파일만 추가하므로 되돌리기는 git revert 또는 나열된 파일을 삭제하는 것입니다.

  • 불신 속성. 수확된 노트의 저자는 { human: you, agent: "harvest" }이며, 각 본문은 소스 줄로 끝나며, 해당 세션과 소화된 조각의 실제 메시지 날짜 범위를 인용합니다(예: source: session 2026-08-15, project cookbook-app 또는 오래 지속된 세션의 경우 source: session 2026-08-12 to 2026-08-18, project phonestack). 이 인용은 일반적인 소스 탐지를 통해 인용된 에이전트 신뢰도 상한(0.85)을 얻습니다. 특별히 처리되는 것은 없습니다. 두뇌는 자체 부트스트랩을 맨 주장보다 더 신뢰하지만, 실제 작업이 노트를 상향 조정할 때까지는 사용자보다 덜 신뢰합니다.

두 플래그를 사용하면 수확을 전면적이 아닌 정밀하게 수행할 수 있습니다. --session <id>는 정확히 하나의 트랜스크립트를 수확합니다(일 창은 여전히 적용되며, 이 모드에서는 기본값으로 넉넉한 2일이 사용됩니다). --since-last는 수확을 증분 방식으로 만듭니다. brain/dreams/harvested.json(세션 ID를 수확이 마지막으로 소화한 메시지의 타임스탬프에 매핑한 맵)에서 세션별 워터마크를 읽고 각 워터마크보다 최신인 메시지만 소화하므로, 몇 달 동안 유지하는 세션 파일이 이전 콘텐츠를 다시 소화하지 않습니다. 보고서 전용을 포함한 모든 성공적인 수확은 워터마크를 업데이트합니다. 실패했거나 구문 분석할 수 없는 모델 호출은 아무것도 업데이트하지 않으므로 콘텐츠가 자동으로 손실되지 않습니다. 파일은 dreams/ 아래에 있으며, 노트 스캐너는 이를 읽지 않으며, 삭제하면 다음 수확이 일반 일 창부터 시작된다는 뜻일 뿐입니다.

자동 수확: 스스로를 증류하는 세션

하나의 명령어로 모든 Claude Code 세션이 종료될 때 스스로를 수확하도록 만듭니다:

npx cookbook-brain install-hook

이 명령어는 ~/.claude/settings.json에 SessionEnd 훅을 등록합니다. 정밀하게: 파일을 구문 분석하고, 정확히 하나의 항목을 병합하며, 다른 모든 키와 훅은 유지하고, 파일이 구문 분석되지 않으면 명령어는 쓰기를 거부합니다. 그 후부터 세션이 종료될 때마다 훅은 SessionEnd 페이로드를 읽고, 세션의 작업 디렉터리에서 다음 명령어의 DETACHED 백그라운드 실행을 생성합니다.

cookbook-brain harvest --session <that session> --since-last --json

그리고 즉시 종료되므로 세션 종료가 지연되지 않습니다. --since-last 워터마크는 오래 지속된 세션이 항상 증분 방식으로만 소화되도록 보장합니다. 각 종료는 마지막 수확 이후 발생한 일만 증류합니다.

다시 한번 간단히 답변드립니다:

  • 항상 보고서 전용. 훅은 설계상 하드코딩되어 적용할 수 없습니다. 무인 메모리 쓰기에는 먼저 사용자의 눈이 필요합니다. 유지된 제안은 보고서에 축적되며, cookbook-brain log는 최근 보고서에 유지되었지만 적용되지 않은 노트가 있을 때마다 2 harvest report(s) with unapplied keeps: review with cookbook-brain harvest --apply와 같은 줄로 끝납니다. 커피 마시면서 검토하고 동의하면 적용하십시오. 중복 제거는 이미 알려진 사실이 두 번 기록되는 것을 방지합니다.

  • 출물 위치. 각 실행은 JSON 보고서를 ~/.cookbook-brain-autoharvest.log에 추가하고, 마크다운 보고서는 다른 수확과 마찬가지로 brain/dreams/HARVEST_<date>.md에 저장됩니다(web 뷰어에서도 표시됨). 두뇌 디렉터리는 세션 자체의 작업 디렉터리(./brain 또는 BRAIN_DIR)에서 확인되므로, 두뇌가 없는 프로젝트의 세션은 정중하게 실패를 기록하고 아무것도 변경하지 않습니다.

  • 정직한 비용 안내. 세션 종료 시 사용자 자신의 claude CLI 로그인에서 최대 두 번의 모델 호출(제안자와 반박자)이 트리거됩니다. 이 호출은 분리되어 실행되므로 종료는 즉각적이지만, 사용자 계정에 실제 호출이 발생합니다. 완화 조치는 구조적입니다: 워터마크 이후 새 콘텐츠가 없는 세션은 모델 호출 전에 종료되며, 도구 자체의 claude -p 실행(수확 및 꿈 호출)은 프롬프트 마커로 감지되어 완전히 건너뛰므로 자동 수확이 스스로 재귀하지 않습니다.

  • 실행 취소는 하나의 명령어. npx cookbook-brain uninstall-hook은 cookbook-brain 항목만 제거하고 다른 모든 설정과 훅은 그대로 둡니다. 이미 실행 중인 세션은 다음 재시작 시 변경 사항을 인지합니다(양방향 모두).

이것이 아닌 것

  • 벡터 데이터베이스가 아닙니다(위의 "파일인 이유" 참조, 선택적 임베딩은 나중에 추가될 수 있으며 필수는 아닙니다).

  • 호스팅되지 않습니다. 하나의 두뇌, 한 명의 소유자, 원하는 수의 사용자 에이전트.

  • 채팅 로그가 아닙니다. 원자적이고 신중한 노트를 저장하며, 트랜스크립트는 저장하지 않습니다. harvest조차도 사용자의 세션을 읽지만 이를 단일 사실 노트로 증류하고 트랜스크립트를 저장하지 않습니다.

팀이 두뇌를 공유할 수 있나요?

리포지토리를 일반적인 방식으로 공유할 수 있으며, 두 명의 주의 깊은 사람에게는 반쯤 작동합니다. 문제가 되는 것은 공유 메모리를 신뢰할 수 있게 만드는 요소입니다. 라이브 동기화가 없고(누군가 풀할 때까지 오래된 노트를 기억함), 동시 쓰기는 병합 충돌을 의미하며, 속성을 강제하는 것이 없습니다. 누구나 모든 파일(크레딧 포함)을 편집할 수 있습니다. 조용히 다시 쓸 수 있는 기록은 기록이 아닙니다.

강제된 속성, 라이브 동기화, 원자적 작업 주장, 팀 전체에 걸쳐 메모리를 인정하는 영수증은 사람들이 우회할 수 없는 서버가 필요합니다.それが 우리가 판매하는 제품입니다: cookbook.team은 멀티플레이어 두뇌입니다. 이 리포지토리는 싱글 플레이어용이며, 그 역할을 정말 잘 수행합니다.

cookbook-brain과 Obsidian

두뇌 폴더는 Obsidian에서 일반 볼트로 열립니다. wikilink가 강조 표시되고, 그래프 뷰가 에이전트의 지식을 그리고, 백링크가 잘 작동합니다. Obsidian은 이 형식을 위해 만들어진 최고의 리더이며, 반드시 두뇌를 가리켜야 합니다.

그렇다면 Obsidian 볼트와 기존 볼트 MCP 서버 중 하나가 제공하지 않는 것은 무엇을 추가합니까? 해당 서버는 문을 엽니다: 에이전트가 노트를 읽고, 편집하고, 삭제할 수 있습니다. 이 도구는 그 문을 통과하는 것에 대한 규율을 추가합니다. 볼트 서버는 에이전트가 노트를 덮어쓰도록 허용합니다. 여기서는 모든 변경 사항이 이전 노트를 대체하는 새로운 속성 노트입니다. 볼트 노트는 모두 영원히 동등하게 신뢰됩니다. 여기서는 노트가 출처를 가지며 결과에서 신뢰도를 얻습니다. 그리고 볼트는 어떤 에이전트가 무엇을 썼는지 또는 어떻게 작업을 인계하는지 전혀 알지 못합니다. 여기서는それが 핵심입니다.

Obsidian은 두뇌를 읽는 곳입니다. cookbook-brain은 에이전트가 두뇌를 망가뜨리지 않도록 하는 것입니다.

Obsidian과 함께 사용하기

볼트로 열기

Obsidian의 "폴더를 볼트로 열기"를 사용하여 두뇌 디렉터리(또는 이를 포함하는 모든 폴더)를 엽니다. 기본 기능에 플러그인이 필요하지 않습니다. wikilink가 확인되고, 그래프 뷰가 에이전트가 아는 것을 그리고, 백링크가 잘 작동합니다.

링크가 확인되는 이유: 별칭

파일 이름은 날짜 슬러그 방식입니다(2026-08-18--poll-interval-is-30s.md). 그러나 노트 본문은 제목으로 링크합니다([[Poll interval is 30s]]). 연결고리는 aliases frontmatter 필드입니다. 모든 노트는 자체 제목을 별칭으로 가지며, Obsidian은 별칭을 통해 wikilink를 확인합니다. cookbook-brain 0.5 및 이전 버전으로 작성된 노트에는 이 필드가 없습니다. cookbook-brain doctor가 경고하며,

npx cookbook-brain doctor --fix-aliases

은(는) 누락된 모든 활성 노트에 aliases: [<title>]를 스탬프합니다. 이 스탬프는 승인된 frontmatter 추가이며, SCHEMA.md에 대체 및 크레딧 스탬프와 함께 문서화되어 있으며, 본문은 절대 건드리지 않습니다.

속성 보기

Obsidian은 frontmatter를 속성으로 읽습니다. 아무 노트나 열면 type, author, created, credits, last_credited, 작업의 경우 status, assigned_to, claimed_by, result를 볼 수 있습니다. 이를 통해 Obsidian 검색과 속성 패널은 두뇌의 메타데이터에 대한 무료 쿼리 표면이 됩니다.

볼트 안의 두뇌

이미 볼트를 사용 중이신가요? 두뇌를 볼트의 하위 폴더에 넣고 도구를 거기로 지정하십시오:

npx cookbook-brain init --dir ~/Vault/brain
claude mcp add brain -- npx cookbook-brain serve --dir ~/Vault/brain

그러면 에이전트의 메모리가 사용자 자신의 노트 옆에 위치하게 되고, 볼트 노드는 다른 노트처럼 두뇌 노트로 링크할 수 있으며, 환경 변수를 선호하는 경우 BRAIN_DIR도 동일하게 작동합니다. 스캐너는 해당 폴더의 최상위 .md 파일만 읽으므로 볼트의 나머지 부분은 건드리지 않습니다.

수동 편집

사용자의 파일이므로 자유롭게 편집하십시오. 추가 전용 규율은 에이전트의 도구에만 적용되며 사용자의 손에는 적용되지 않습니다. 오타 수정, 본문 재작성, 원치 않는 노트 삭제: 그것은 사용자의 두뇌입니다. 덮어쓰지 않는 규칙은 AI가 조용히 기록을 다시 쓰지 않도록 하기 위한 것이지, 사용자를 막기 위한 것이 아닙니다. 대량 수동 편집 후 cookbook-brain doctor는 링크, 대체 체인 또는 작업이 손상되었는지 알려줍니다.

Dataview 스니펫

이것들은 커뮤니티 Dataview 플러그인이 필요합니다. 두뇌 폴더 이름이 다른 경우 FROM "brain"을 조정하십시오.

모든 인정된 결정(입증된 계층에 가장 가까운 frontmatter 전용 프록시, 정확한 계층 수학은 web이 보여주는 신뢰도 공식이 필요함):

```dataview
TABLE credits, last_credited, author.agent AS agent
FROM "brain"
WHERE type = "decision" AND credits >= 1 AND !superseded_by
SORT credits DESC
```

절대 인정되지 않은 함정(기록되었지만 실제 작업으로 아직 확인되지 않은 함정):

```dataview
TABLE created, author.agent AS agent
FROM "brain"
WHERE type = "gotcha" AND credits = 0 AND !superseded_by
SORT created ASC
```

담당자별 열린 작업:

```dataview
TABLE assigned_to, abandon_reason, created
FROM "brain"
WHERE type = "task" AND status = "open" AND !superseded_by
SORT assigned_to ASC
```

홈페이지와 계층 보기

npx cookbook-brain index는 두뇌 루트에 INDEX.md를 생성합니다. 모든 활성 노트를 wikilink로, 유형별로 그룹화하고 규칙을 먼저 배치하며, 각각의 계층과 크레딧을 표시합니다. 좋은 볼트 홈페이지가 됩니다. 이는 노트가 아닌 보기이므로 재생성하면 덮어쓰고 스캐너는 무시합니다. 그리고 Obsidian이 보여주지 않는 한 가지, 실시간 신뢰도와 계층 수학을 보려면 npx cookbook-brain web을 실행하십시오. http://127.0.0.1:4321의 읽기 전용 뷰어로 신뢰도 막대, 계층 배지, 작업 보드, 꿈 및 수확 보고서를 제공합니다.

팀이 준비되었을 때

사용자의 두뇌와 cookbook.team은 동일한 언어를 사용합니다. 동일한 노트 유형, 동일한 계층, 동일한 소스 규율, 동일한 작업 동사. 따라서 마이그레이션은 두 가지 모두에 연결된 에이전트에 대한 하나의 지시사항입니다: 내 두뇌의 모든 활성 노트를 읽고 내 팀 작업 공간에 동일한 유형, 제목, 본문 및 소스로 기억하십시오. 속성은 전달됩니다. 사용자의 규칙은 착륙하는 순간부터 모든 팀원의 기억을 타고 시작됩니다.

크레딧은 의도적으로 마이그레이션되지 않습니다. 팀 신뢰도는 팀 결과에서 얻어지며, 가져온 주장은 팀의 작업이 증명할 때까지 인용된 에이전트 신뢰도로 시작됩니다. 신뢰하지 않음-증명될 때까지 원칙은 마이그레이션 자체에도 적용됩니다.

업그레이드 후에도 두뇌를 유지하십시오. 많은 사람들이 둘 다 원할 것입니다. 개인 컨텍스트를 위한 두뇌와 팀 컨텍스트를 위한 작업 공간입니다. 이들은 경쟁자가 아니라 서로 다른 고도입니다.

감사의 말과 정직한 지도

Mem0, Zep, Letta는 이 도구가 가지고 있지 않은 기능(관리형 확장, 시간 그래프, 엔터프라이즈 기능)을 갖춘 훌륭한 호스팅/인프라 메모리 계층입니다. QM은 팀을 위한 범위가 지정된 개인별 메모리를 제공합니다. cookbook-brain은 세 가지 축에서 다릅니다: 메모리는 서비스의 행이 아닌 사용자가 소유한 파일이며, 모든 노트는 속성이 있고 추가 전용이며, 신뢰도는 쓰기 시간에 주장되는 것이 아니라 결과에서 얻어집니다. 관리형 메모리 API를 원한다면 그것들을 사용하십시오. 읽을 수 있는 두뇌를 원한다면 이것을 사용하십시오.

우리가 이것을 만든 이유

cookbook.team에서는 멀티플레이어 버전을 구축합니다. 팀의 인간과 에이전트가 하나의 보드에서 작업하고, 하나의 두뇌를 공유하며, 모든 작업이 사용한 메모리를 인정하는 영수증을 제출하는 공유 작업 공간입니다. cookbook-brain은 그 메모리 계층으로, 싱글 플레이어이며 무료이고 여러분의 것입니다. 팀이 공유 버전을 원한다면, 주방이 어디 있는지 아실 겁니다.

MIT, 저작권 Diego Prozzi.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    An MCP server that gives AI assistants persistent memory across sessions. It stores project context, decisions, and progress in structured markdown files as well as a knowledge graph and sequential thinking for better memory storage.
    36
    37
    1
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    An MCP server that leverages a GitHub-compatible API as a durable memory store for AI agents, enabling automatic memory storage, recall, and management without requiring signup or API keys.
    39
    27
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A self-hosted MCP server that gives AI agents shared, long-term memory over a git-backed folder of markdown, enabling persistent knowledge search, read, and write without a database.
    16
    26
    9
    MIT

View all related MCP servers

Related MCP Connectors

  • Person-owned, portable AI memory as a remote MCP server, readable and writable by any MCP client.

  • Cloud-hosted MCP server for durable AI memory

  • An MCP server that gives your AI access to the source code and docs of all public github repos

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dpro10/cookbook-brain'

If you have feedback or need assistance with the MCP directory API, please join our Discord server