
1. 项目概述一个能与你对话的“第二大脑”如果你和我一样每天脑子里会冒出无数个想法、待办事项、会议要点和一闪而过的灵感并且它们最终都散落在手机备忘录、微信文件传输助手、语音记事本和各种聊天记录里那么你肯定理解那种“信息过载”与“知识失忆”并存的痛苦。我们尝试过各种笔记软件、任务管理工具但最终都败给了维护系统本身所需要的时间和精力。这个悖论就是整理思绪的功夫比思考本身还要累。“Agent Second Brain”这个项目就是为了彻底解决这个问题而生的。它的核心构想极其简单却又非常强大你只需要像跟一个靠谱的助手聊天一样向一个Telegram机器人发送语音、文字或图片它就会自动帮你把一切整理得井井有条。这个“助手”会理解你说了什么判断这是待办任务、灵感想法还是客户笔记然后自动创建任务、保存笔记、建立关联并在每天晚上给你发送一份清晰的日报。整个过程你无需思考分类、标签或文件夹结构就像把信息丢进一个真正的“大脑”它会自动完成消化、吸收和归档。我花了相当长的时间来搭建和打磨这套系统因为它本质上不是一个简单的“IFTTT”式自动化流程而是一个具备记忆、理解和执行能力的AI智能体Agent生态系统。它基于几个核心组件Claude或OpenAI的LLM作为“大脑”负责理解和决策Deepgram处理语音转文本Todoist管理任务Obsidian作为最终的知识库Vault存储一切。而最有趣的部分在于它的“记忆系统”它模拟了人类记忆的“艾宾浩斯遗忘曲线”让信息像在人脑中一样自然衰减和强化而不是冰冷地永久存储。对于任何希望将碎片化信息流转化为结构化知识资产同时又极度厌恶复杂操作流程的知识工作者、创作者、管理者或创业者来说这个项目提供了一个近乎完美的自动化解决方案。接下来我将深入拆解它的设计思路、实现细节以及我在部署和日常使用中积累的所有经验。2. 核心设计哲学为什么是“对话式”与“记忆衰减”在开始动手之前理解这个项目的设计哲学至关重要。这决定了它为什么好用以及如何根据你的需求进行调整。2.1 对抗“生产力系统的熵增”任何手动维护的系统都逃不过“熵增”定律——无序度总会随时间增加。你精心设计的标签体系会慢慢变得不一致文件夹结构会因为新类型的文件而显得局促最终导致你宁愿把东西扔进“收集箱”也不愿去分类。Agent Second Brain的设计第一原则就是“最小化用户输入摩擦”。它不要求你改变已有的、最自然的输入习惯比如在Telegram里发语音条而是由AI来适应你承担所有后续的分类、整理工作。这从根本上移除了系统维护的最大阻力。2.2 模拟人脑的记忆与遗忘机制大多数数字系统在记忆方面走向两个极端要么什么都记住导致搜索时噪音巨大要么会话结束后全忘缺乏连续性。这都不符合人脑的工作方式。本项目引入的“艾宾浩斯遗忘曲线”模型是一个点睛之笔。它将记忆分为五个层级层级名称描述与行为1核心记忆始终保持在AI的上下文Context中。包括你正在进行的核心项目、活跃的客户、年度关键目标。这些信息AI随时可用无需额外检索。2活跃记忆被定期检查和强化。比如本周的会议记录、正在酝酿的想法、近期的对话要点。AI在处理日常信息时会频繁关联到这些记忆。3温热记忆不会被主动提及但当你搜索相关主题时能被轻易找到。例如上个月的项目复盘、去年的季度计划。4冰冷记忆深度搜索时才会被挖掘出来。比如多年前的旧项目资料、已经归档的方案。5归档记忆几乎被遗忘但会偶尔被随机“回忆”起来并与当前信息进行跨时空连接有时能激发意想不到的创意。这个机制通过一个独立的agent-memory技能实现。每个被存入知识库的信息条目都会附带一个“记忆强度”分数这个分数会随着时间自然衰减除非该信息被再次访问或关联类似于人脑的“复习”其强度才会增强。AI在回答你问题或处理新信息时会优先使用强度高的记忆。这样你的知识库就从一个静态的仓库变成了一个动态的、有生命力的“第二大脑”。2.3 基于技能Skill的模块化架构项目没有做成一个臃肿的单体应用而是采用了模块化的“技能”架构。每个技能是一个独立的功能模块dbrain-processor总控处理器负责分类和执行。agent-memory上文提到的记忆引擎。vault-health知识库健康度扫描与自动维护。graph-builder构建笔记间的关联图谱发现知识集群。todoist-ai智能任务管理。这种设计的好处非常明显可插拔和可替换性。比如你可以用Logseq替代Obsidian只需要重写与知识库交互的部分或者用Google Tasks替代Todoist。每个技能通过清晰的接口通常是生成和消费JSON进行通信这使得调试和扩展变得异常简单。当日常处理流程Capture → Execute → Reflect的某个环节出错时你可以查看对应阶段生成的JSON文件迅速定位问题。3. 系统搭建与配置全指南理论很美好但让系统跑起来才是关键。这部分我会详细说明从零开始部署的每一个步骤并附上我踩过坑后总结的注意事项。3.1 前期准备获取四大关键密钥就像任何自动化系统一样我们需要一些“通行证”。请严格按照顺序操作并妥善保存这些信息。Telegram Bot Token操作在Telegram中搜索BotFather发送/newbot指令按提示创建机器人最终你会获得一个形如1234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw的令牌。注意创建后建议先给你的Bot发送/start消息激活一下。同时在BotFather中关闭Privacy Mode发送/setprivacy并选择Disable这样你的Bot才能看到群组中所有人的消息如果你打算把它加到群聊里收集信息。你的Telegram User ID操作搜索userinfobot向它发送任意消息它会立即回复你的数字ID。注意这个ID用于让Bot知道谁是它的主人确保日报和敏感操作只对你进行。Deepgram API Key操作访问 Deepgram Console 注册后在API Keys页面创建一个新Key。选择免费套餐即可每月有足够的额度处理大量语音。心得Deepgram的语音转写尤其是对非标准发音、带背景音的场景准确率令我印象深刻速度也很快是体验流畅的关键。Todoist API Token操作登录网页版Todoist进入Settings - Integrations - Developer在API token部分点击Copy。注意确保你的Todoist项目结构相对清晰。Agent会根据你设定的规则创建任务如果项目太多太乱它可能会放错地方。建议初期先只用Inbox或一个专用项目。关键提示所有这些密钥最终都会放在一个名为.env的文件里。绝对不要将这个文件上传到GitHub等公开仓库。项目自带的.gitignore文件已经排除了.env但你在复制、备份时仍需格外小心。3.2 服务器部署选择与初始化项目推荐使用一个廉价的VPS虚拟私人服务器来7x24小时运行机器人。我尝试过在本地电脑运行但一旦关机或休眠服务就中断了失去了“永远在线”的意义。服务器选择任何提供Ubuntu 20.04/22.04 LTS的VPS都可以。DigitalOcean、Linode、Vultr的5美元/月套餐完全足够。选择离你地理位置较近的数据中心网络延迟会更低。系统初始化通过SSH连接到你的服务器后项目提供了一个极简的部署脚本。但我的经验是先手动走一遍流程理解背后发生了什么对后续排错有巨大帮助。# 1. 更新系统并安装基础依赖 sudo apt update sudo apt upgrade -y sudo apt install -y python3-pip python3-venv git curl # 2. 克隆你fork后的私有仓库请替换YOUR_USERNAME git clone https://github.com/YOUR_USERNAME/agent-second-brain.git cd agent-second-brain # 3. 创建Python虚拟环境并激活 python3 -m venv venv source venv/bin/activate # 4. 安装Python依赖 pip install -r requirements.txt环境变量配置这是核心步骤。将项目根目录下的.env.example文件复制为.env然后用你刚才获取的密钥填充它。cp .env.example .env nano .env # 或使用vim等其他编辑器你的.env文件应该看起来像这样TELEGRAM_BOT_TOKEN1234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw TELEGRAM_USER_ID987654321 DEEPGRAM_API_KEYyour_deepgram_key_here TODOIST_API_TOKENyour_todoist_token_here # 以下是可选或后续配置 OPENAI_API_KEYsk-... # 如果你选择用OpenAI而非Claude ANTHROPIC_API_KEYsk-ant-... # Claude API Key重要心得关于LLM的选择项目默认使用Claude通过Anthropic API。Claude在长文本理解和遵循复杂指令方面表现卓越非常适合处理分类和总结任务。但如果你更熟悉OpenAI也可以替换。我建议初期严格按文档使用Claude确保系统稳定后再考虑切换。3.3 知识库Vault的个性化告诉AI你是谁这是让系统从“通用工具”变成“你的大脑”的关键一步。你需要初始化Obsidian知识库的结构和内容。了解默认结构项目创建了一个清晰的vault/目录。不要被吓到你不需要手动创建所有文件。AI会根据需要自动生成。但有几个核心文件需要你预先编辑vault/goals/目录这里存放你的目标体系。从vision.md愿景到yearly-2024.md年度目标再到monthly.md和weekly.md。AI会参考这些文件来判断新任务或想法的优先级和归属。vault/.claude/skills/dbrain-processor/references/about.md这是AI的“入职培训”文件。用自然语言告诉它你的职业、正在进行的核心项目、常用术语、你的工作风格比如“我喜欢把大任务拆解成小于2小时的子任务”。信息越具体AI的理解就越精准。vault/.claude/skills/dbrain-processor/references/classification.md这是分类规则手册。定义当你输入“需要和客户张三确认合同细节”时它应该被识别为“任务”还是“客户笔记”是否要关联某个特定项目你可以在这里定义自定义类别和触发关键词。我的配置示例 在about.md中我写道“我是一名全栈开发者目前主要精力在A项目和B项目上。A项目是一个用React和Node.js构建的SaaSB项目是一个Python数据分析工具。我的客户包括XX公司和YY团队。我习惯每天下午处理深度编程任务上午处理沟通和邮件。当我提到‘优化’时通常指代码性能优化提到‘设计’时通常指UI/UX设计。” 在classification.md中我添加了一条规则“如果条目中包含‘bug’、‘错误’、‘修复’等词且上下文与A项目相关则分类为task项目为A项目标签为#bug优先级为高。”3.4 启动与测试让大脑运转起来完成配置后就可以启动服务了。项目通常使用systemd或pm2来管理进程确保服务在后台稳定运行。# 假设使用pm2需额外安装: pip install pm2 pm2 start bot.py --name second-brain --interpreter venv/bin/python pm2 save pm2 startup # 设置开机自启根据提示操作现在回到Telegram找到你的Bot发送第一条消息可以是一段语音“明天早上十点记得给李四发项目周报”或者一段文字“刚刚想到产品登录页的按钮颜色可以改成蓝色试试看。”首次运行的观察点查看服务器日志pm2 logs second-brain。你会看到Bot接收消息、调用Deepgram、请求Claude分类、创建Todoist任务、保存文件等一系列日志。这是了解系统工作流的最佳方式。检查你的Todoist应该能看到一个新任务“给李四发项目周报”日期是明天并可能带上了你设定的项目标签。检查你的vault/daily/目录会生成一个以日期命名的Markdown文件里面包含了经过AI润色和整理后的笔记内容并且可能已经自动链接到了相关的项目或客户笔记。如果一切顺利恭喜你你的“第二大脑”已经正式上线工作了。4. 日常使用模式与高级技巧系统跑起来只是开始如何高效地使用它才是价值所在。经过数月的使用我总结出了一套最佳实践。4.1 输入即输出多元化的捕获方式不要局限于文字。这个系统的强大之处在于它能处理多种输入媒介语音备忘录通勤时、散步时的灵感直接说给Bot听。这是我最常用的方式几乎零摩擦。文字片段阅读时摘录的句子、突然的代码想法、一个待查的网址直接粘贴发送。图片/截图发送一张白板草图、会议幻灯片的截图。AI通过Claude的视觉能力会尝试描述图片内容并将其保存为笔记附上图片文件。转发消息将微信需通过其他桥接、Slack、邮件中重要的对话直接转发到Telegram Bot。我设置了一个“邮件转发到Telegram”的规则重要邮件会自动进入处理流程。技巧为Bot创建一个Telegram私聊对话框并置顶。把它当作你最常用的联系人之一。4.2 与AI对话超越简单的指令这才是“智能体”的精髓。你不只是在发送待办事项而是在进行一场对话。查询“我上周关于‘用户增长’都记录了些什么” AI会搜索你的知识库并返回相关的笔记摘要。复杂任务创建“把昨天客户会议上提到的三个产品改进点分别创建为Todoist任务归属到‘产品迭代’项目优先级设为中等下周五前完成。” AI可以解析这段复杂指令并准确执行。总结与反思“基于本周所有的日记条目给我总结一下情绪和精力的变化趋势。” AI可以调用记忆和笔记生成一份简单的分析报告。心得问得越具体AI回答得越好。与其问“我有什么任务”不如问“我今天下午有哪些高优先级的编程任务”4.3 日报系统每日的自动驾驶复盘每天晚上9点可配置你会收到一份来自Bot的日报。这份日报不是简单的日志罗列而是经过AI整合、分析后的简报通常包含今日捕获今天你发送了多少条信息分别是哪些类型任务、想法、笔记任务完成情况今天在Todoist中完成了哪些任务有哪些任务过期或即将到期知识库更新新增或更新了哪些重要的笔记它们之间产生了什么新的链接记忆状态核心记忆有哪些更新是否有“归档记忆”被随机唤醒并与今日内容产生了有趣关联健康度提示知识库健康度评分满分100。如果分数下降会提示原因如“发现5个孤儿笔记”或“项目A的MOC内容地图已过期”。这份日报是我每天结束工作的“仪式感”它让我在5分钟内回顾一天并明确第二天的焦点完全无需自己动手整理。4.4 知识库的自动维护Vault Health这是确保系统长期可用性的“免疫系统”。vault-health技能会定期例如每周自动运行执行以下操作修复断裂链接当你重命名了一个笔记文件所有引用它的地方链接会断裂。AI会自动查找并修复这些[[broken-link]]。识别孤儿笔记找出那些既没有被任何笔记引用也没有引用任何其他笔记的“孤岛”文件并建议可能的关联对象。生成MOC为每个主题如“机器学习”、“项目管理”自动生成或更新“内容地图”这是一个汇总了所有相关笔记的索引页极大提升了知识检索效率。标准化元数据检查笔记是否缺少创建日期、标签或摘要并尝试补全。我的经验初期不要过于担心健康度分数。随着使用时间增长AI的维护会让你的知识库越来越健壮、互联。大约一个月后我的知识库健康分从最初的65分稳定在了90分以上。5. 故障排查与性能优化实录再稳定的系统也会出问题。以下是我遇到过的典型问题及解决方法。5.1 常见问题速查表问题现象可能原因排查步骤与解决方案Bot无响应收不到消息1. Telegram Bot Token 错误或未禁用隐私模式。2. 服务器进程崩溃。3. 服务器IP被Telegram屏蔽罕见。1. 检查.env文件中的Token并在BotFather确认隐私模式已关闭。2. 运行pm2 status或pm2 logs查看进程状态和错误日志。3. 在服务器上尝试curl https://api.telegram.org测试网络。语音消息无法转写1. Deepgram API Key 无效或额度用尽。2. 语音文件格式或大小问题。3. 网络超时。1. 登录Deepgram控制台检查Key状态和用量。2. 查看日志中Deepgram API的返回错误信息。Telegram的.ogg格式Deepgram支持良好一般不是格式问题。3. 增加代码中HTTP请求的超时时间。任务创建在Todoist错误的项目中1.classification.md规则不明确或冲突。2. AI理解歧义。1. 检查发送的原始消息和AI分类的日志输出看分类逻辑是否符合预期。2. 在about.md中更清晰地定义你的项目并在classification.md中为每个项目设置更明确的关键词规则。日报未在指定时间发送1. 服务器时区设置错误。2. 定时任务cron job未正确设置或执行失败。1. 在服务器运行date命令确认时区。使用sudo timedatectl set-timezone Asia/Shanghai进行设置。2. 检查用于调度日报的cron任务或进程管理器的定时设置。查看该时间点的应用日志。AI分类结果完全错误1. Claude/OpenAI API调用失败或返回异常。2.references/下的引导文件about.md, classification.md内容有误或过于简略。1. 检查API Key余额和状态。查看LLM API调用的日志和返回内容。2. 丰富和完善about.md和classification.md。给AI更多关于你和你的工作背景的上下文。可以尝试在对话中直接纠正AI并观察它是否会学习。知识库文件权限错误运行Bot的用户如root没有写入vault/目录的权限。检查vault/目录的所有者和权限ls -la。确保运行Bot的进程有读写权限通常可以chown -R $USER:$USER vault/。5.2 性能与成本优化心得Claude API调用优化这是主要的成本中心。每个消息处理都可能调用多次Claude分类、总结、生成任务描述等。为了节省成本我做了以下调整缓存分类结果对于常见、固定的指令模式如“开会”可以在代码中实现一个简单的缓存字典避免重复调用AI进行相同的分类判断。合并处理如果短时间内收到多条消息可以尝试将它们打包成一个批次再发送给AI处理而不是每条单独处理。这需要修改消息队列逻辑。使用更小/更快的模型对于简单的文本提取和格式化任务可以尝试使用Claude Haiku或OpenAI的GPT-3.5 Turbo它们比Claude Opus或GPT-4便宜且快得多。可以在代码中配置一个“路由”逻辑根据任务复杂度选择模型。服务器资源5美元的VPS通常1核1G内存完全足够。但需要确保Swap空间已启用防止内存不足导致进程被杀死。可以使用sudo fallocate -l 1G /swapfile和sudo mkswap /swapfile等命令创建Swap。日志管理随着运行时间增长日志文件会很大。建议使用logrotate工具配置日志轮转或者将日志输出到类似pm2的日志管理服务中避免磁盘空间被占满。5.3 数据备份策略你的知识库vault/目录是核心资产必须定期备份。我采用了三层备份本地Git仓库vault/本身就是一个Git仓库。我每天手动或通过cron job自动执行git add . git commit -m Daily backup。这保留了完整的历史版本。远程私有Git仓库将vault/推送到GitHub或GitLab的私有仓库。这提供了异地备份。云存储同步使用rclone将vault/目录同步到另一个云存储服务如Backblaze B2、Wasabi这些服务存储成本极低。灾难恢复演练定期比如每季度在新服务器上尝试用备份的数据恢复整个系统。这能确保你的备份是真正可用的。6. 扩展与自定义打造专属工作流开源项目的魅力在于你可以按需改造。以下是一些我实践过或计划中的扩展方向。6.1 集成更多输入源Telegram是入口但不是唯一入口。我通过Zapier/Make无代码平台或简单的Python脚本搭建了其他桥梁电子邮件创建一个专属邮箱如inboxmydomain.com设置自动转发规则将所有发送到该邮箱的邮件通过邮件服务的API如Gmail API抓取并格式化成一条消息发送给Telegram Bot。网页剪辑使用浏览器插件如MarkDownload将网页保存为Markdown后通过一个本地HTTP服务接口自动发送到Bot。物理笔记用扫描App如Scanner Pro将手写笔记扫描成PDF然后调用Claude的视觉API进行OCR和总结再将结果发送给Bot。6.2 增强记忆与检索能力默认的记忆系统已经很棒但还可以更强向量化搜索为vault/中的所有笔记生成文本向量Embedding存储到本地的ChromaDB或Qdrant中。当进行模糊查询时如“我去年那个关于用Redis做缓存的点子”可以先通过向量搜索找到最相关的几个笔记再交给LLM生成精准答案。这比单纯的关键词搜索强大得多。记忆主动强化可以编写一个定时任务定期比如每周扫描“温热记忆”和“冰冷记忆”层级的笔记随机挑选一些让AI生成一个简短的问题或提示发给你模拟“间隔重复复习”主动强化那些重要但可能被遗忘的记忆。6.3 自定义技能开发技能架构让添加新功能变得简单。例如我开发了一个meeting-minutes技能触发当我发送一条包含“会议纪要”关键词的语音或文字时。处理技能调用Claude要求其将语音转写后的文字整理成标准的会议纪要格式参会人、议题、决议、待办。输出自动将纪要以Markdown格式保存到vault/business/meetings/目录下并以日期和主题命名文件。同时提取出的待办事项会自动创建为Todoist任务并关联到对应的项目。开发新技能的关键是遵循现有的数据流从上游接收标准化的JSON输入处理完成后向下游输出标准化的JSON。你可以参考skills/目录下现有技能的代码结构。经过几个月的深度使用这个“第二大脑”已经从我的一个实验项目变成了我数字生活中不可或缺的基础设施。它无声地运行在后台消化着我所有的碎片信息将它们转化为有序的知识和行动。最大的感受是我的心理负担减轻了——我不再需要记住“把那个想法记下来”这件事因为我知道有一个永远在线的系统会替我记住并处理好它。它并没有取代我的思考而是将我从繁琐的信息整理工作中解放出来让我能更专注于思考本身。如果你也受困于信息的混沌强烈建议你花一个周末的时间亲手搭建并驯化这个属于你自己的AI智能体它带来的回报远超那每月25美元的成本。