AI不能乱删你的文件:揭秘My-Brain-Is-Full-Crew的Hooks安全保护机制
【免费下载链接】My-Brain-Is-Full-CrewBuilt by a PhD whose memory was failing, whose diet was a mess, and whose anxiety had its own agenda. Most second brain tools ignore the fact that your brain doesn't work in isolation: your body and your mental health are part of the system too. This crew handles all three: knowledge, nutrition, and mental wellness.项目地址: https://gitcode.com/gh_mirrors/my/My-Brain-Is-Full-Crew
占位说明:本仓库未提供可用图片资源,下文全部采用表格与路径链接呈现。
My-Brain-Is-Full-Crew是一个运行在 Obsidian 库上的多智能体第二大脑系统:你说,它负责整理、归档、连接和检索笔记。但把写文件的权力交给 AI,一个绕不开的问题是:它会不会乱删、乱改你的文件?这个项目的答案是一组内置的Hooks 安全保护机制——三道在文件操作前后自动生效的"守门人",核心原则就一句话:AI 永不删除,系统文件不可篡改。
为什么AI第二大脑需要"护栏"
大多数 AI + Obsidian 工具把智能体当成"全能助手",但它毕竟是个概率模型:可能写错路径、可能覆盖你辛苦维护的笔记结构。My-Brain-Is-Full-Crew 的设计哲学是conservative by default(默认保守):
- 🛡️永不删除,只归档:分拣笔记时只移动,不碰内容
- 🚦大决定先问你:归档、重命名前必须获得确认
- 🔒系统文件运行时不可改:AI 想动"自己的说明书"?会被直接拦截
三道 Hooks 就是这套哲学的技术落地,分别守在三个时机:
| Hook | 触发时机 | 职责 |
|---|---|---|
| protect-system-files | 编辑/写入之前 | 拦截对系统文件的修改(硬拒绝) |
| validate-frontmatter | 写入之后 | 检查 Markdown 元数据是否合法(仅告警) |
| notify | 需要用户关注时 | 弹桌面通知,长任务不"失联" |
第一道防线:AI不能乱删你的系统文件
protect-system-files.sh 挂在"工具调用前",AI 每次准备编辑或写入文件时,它先审一眼目标路径。
它保护什么?
- 调度器文件(如
CLAUDE.md/AGENTS.md)——整支"AI 小队"的指挥中枢,运行时禁止修改 - 8 个核心智能体定义(architect、scribe、sorter、seeker、connector、librarian、transcriber、postman 的
.md文件) - 全部技能(skills)文件——14 个多步工作流的定义
- 核心参考文档——除了两个允许用户自行维护的注册表文件
它放行什么?你在平台智能体目录里创建的自定义智能体会原样通过——因为 Architect 智能体需要随时新建它们,这正是"8 个智能体只是起点,自己也能造"这一卖点的技术保障。
拦截时的提示也很友好,直接告诉用户正确姿势:
BLOCKED: architect.md is a core agent definition. Update it in the repo and run updateme.sh.也就是说:想升级系统?改仓库里的源文件,然后跑一次 updateme.sh 更新器——更新器只同步有变化的文件,你的笔记永远不会被碰。
第二道防线:写完笔记顺手查一遍"病历"
validate-frontmatter.sh 是"写完再查"型的温柔派:它不拦截,只警告。Obsidian 的元数据、Dataview 查询、标签和搜索全都依赖 frontmatter,一旦损坏是"静默失败"——笔记看起来正常,其实搜索和查询全都坏了。
它检查三件最常见的翻车点:
- 📄 开头有
---却没有结尾---(元数据解析直接失败) - ⌨️ frontmatter 里混进了 Tab 缩进(YAML 只认空格)
- ✍️ 值里有未加引号的冒号(
title: My Note: Part 2这类典型陷阱)
它还很聪明地跳过系统目录(智能体、技能、参考文件)和已删除的文件,只对库里的普通.md笔记动脑筋。
第三道防线:长任务不再"失联"
notify.sh 在智能体平台需要关注你时弹一条桌面通知——macOS 用内置的osascript,Linux 用notify-send。跑一条几分钟的智能体长链时,你可以安心去倒杯水,它一有动静就叫你。
一个源码,四个平台:Hooks如何跨平台部署
三道 Hook 的"行为定义"与"平台实现"是分离的。每个 Hook 由一个 声明式 YAML 描述:
name: protect-system-files description: Block edits to core crew files at runtime script: protect-system-files.sh triggers: - event: before-tool-use match-tool: [edit, write]安装脚本 launchme.sh 运行时,adapters/ 下的各平台适配器会把这份"中性描述"翻译成本地原生配置:
- Claude Code:生成 settings.json 的
PreToolUse/PostToolUse条目,并为每个 Hook 套一层 JSON 转换包装器,把平台原生字段统一成中性 schema 再喂给脚本 - Gemini CLI:合并进平台配置 JSON,附加 5 秒超时保护
- OpenCode:生成一个内嵌 bash 执行器的 插件脚本,按 bash-executor.js 逐条注册 Hook
共享的解析逻辑集中在 adapters/lib.sh——所以 Hook 的"规则"只写一遍,四个平台行为完全一致。
新手上手指南:你什么都不用做
这是这套机制最讨喜的一点:零配置。
- 把仓库克隆进你的 Obsidian 库:
git clone https://gitcode.com/gh_mirrors/my/My-Brain-Is-Full-Crew - 运行
bash scripts/launchme.sh并选择平台 - 打开库,说 "Initialize my vault"
Hooks 随安装自动落到平台的hooks/目录并开始工作,不需要任何额外设置。完整步骤见 docs/getting-started.md。
结语:AI负责干活,规则负责兜底
My-Brain-Is-Full-Crew 的 Hooks 设计值得所有"把文件系统交给 AI"的项目参考:权限最小化、拦截在事前、校验在事后、通知在人侧。AI 依然可以大显身手,但它删不掉系统、改不动规则,你的笔记库始终是安全的。
⚠️ 最后提醒:任何 AI 工具都不是备份。请定期备份你的 vault——这也是项目 免责声明 里明确写下的第一条。
延伸阅读:DISPATCHER.md 调度器 · docs/examples.md 使用示例 · CONTRIBUTING.md 贡献指南
【免费下载链接】My-Brain-Is-Full-CrewBuilt by a PhD whose memory was failing, whose diet was a mess, and whose anxiety had its own agenda. Most second brain tools ignore the fact that your brain doesn't work in isolation: your body and your mental health are part of the system too. This crew handles all three: knowledge, nutrition, and mental wellness.项目地址: https://gitcode.com/gh_mirrors/my/My-Brain-Is-Full-Crew
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考