ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AI对话历史管理:用Markdown和日历视图打造本地记忆系统

AI对话历史管理:用Markdown和日历视图打造本地记忆系统 1. 为什么AI对话历史记录让人抓狂用AI写代码、查资料、做方案的人应该都有同感对话列表越拉越长想找三天前让AI帮忙改的那段正则表达式得在侧边栏里翻半天。翻到了还好翻不到就只能重新问一遍而重新问的结果往往和上次不一样因为上下文丢了。我自己的情况更极端一些。日常同时开着三四个AI工具有的用来写代码有的用来查文档有的用来做翻译润色。每个工具都有自己的历史记录机制有的只保留最近几十条有的虽然不删但搜索功能约等于没有还有的干脆把历史记录藏在三级菜单里。结果就是我明明记得上周让某个AI帮我生成过一段Python脚本但就是想不起来在哪个工具里、用的什么关键词问的。这个问题本质上不是AI能力的问题而是对话历史的管理方式出了问题。现有的AI产品把历史记录当成一个“聊天记录列表”来做按时间倒序排列最多给你一个搜索框。但人的记忆不是按时间索引的人是按事件、项目、主题来回忆的。你回忆“上次那个爬虫脚本”的时候脑子里想的是“爬虫”这个主题而不是“上周三下午两点”。所以我决定自己动手设计一套符合人类记忆习惯的AI对话管理系统。核心思路很简单把AI对话记录从聊天列表变成日历视图用Markdown文件做存储按日期和主题双重索引。我把它叫做“记忆日历”。这套东西做出来之后我找历史记录的时间从平均两三分钟降到了十秒以内。更重要的是它不依赖任何特定AI平台所有数据都在本地格式是纯Markdown哪天想换工具了直接迁移就行。下面我把整套方案的设计思路、技术选型、实操步骤和踩过的坑完整分享出来。如果你也受够了在AI工具里翻聊天记录这套方案可以直接抄作业。2. 整体设计思路与方案选型2.1 核心需求拆解我要解决的到底是什么问题在动手之前我先花了一个晚上把自己真正的需求列清楚。表面上看是“找不到历史记录”但拆开之后发现是四个独立的问题第一检索维度单一。现有AI工具只支持按时间倒序浏览和关键词搜索。但关键词搜索有个致命问题你搜索时用的词必须和当时提问时用的词高度匹配。如果你当时问的是“怎么用pandas合并两个DataFrame”现在搜“表格拼接”大概率搜不到。第二跨平台无法统一。我同时用多个AI工具每个工具的历史记录是孤岛。我想找“关于正则表达式的所有对话”得挨个工具翻一遍。第三上下文丢失。AI对话的价值往往不在于单条问答而在于一个连续的项目讨论。比如我让AI帮我设计一个数据库表结构前后聊了十几轮这些轮次之间的关联性很强。但现有工具把每轮对话当成独立条目割裂了上下文。第四数据不在自己手里。平台说改政策就改政策说清理历史就清理历史。我辛辛苦苦积累的对话记录本质上存放在别人的服务器上随时可能消失。把这四个问题想清楚之后方案的方向就明确了本地存储、多维度索引、保留上下文关联、格式通用。2.2 为什么选Markdown加日历视图存储格式我几乎没犹豫就选了Markdown。原因有三个纯文本永不过时。十年后我还能用任何文本编辑器打开它不依赖任何特定软件。结构灵活。Markdown支持标题、列表、代码块、表格足够表达AI对话的各种内容形态。代码块尤其重要因为我的对话里大量涉及代码。工具链成熟。几乎所有笔记软件、静态站点生成器、编辑器都支持Markdown。我可以用Obsidian看也可以用VS Code看还可以用grep命令行搜索。日历视图这个设计灵感来自我的一个习惯我记日记是按日期记的回忆事情的时候会先想“大概是哪个月”然后翻到那个时间段。AI对话其实也有类似的时间属性——我经常记得“大概是上个月做那个项目的时候问的”。所以我把这两个维度结合起来按日期建文件每个文件里按主题分章节。这样既可以用日历定位大致时间范围又可以在文件内按主题快速跳转。2.3 目录结构设计让文件系统成为数据库最终确定的目录结构是这样的ai-memory/ ├── 2025/ │ ├── 01/ │ │ ├── 2025-01-15.md │ │ ├── 2025-01-16.md │ │ └── ... │ ├── 02/ │ │ └── ... │ └── 12/ │ └── ... ├── 2026/ │ └── ... ├── templates/ │ └── daily-template.md ├── index/ │ ├── by-topic.md │ └── by-tool.md └── scripts/ ├── new-day.sh ├── search.sh └── export.sh按年/月/日三层目录组织每天一个Markdown文件。这个设计的考量是年/月目录让文件系统本身成为一级索引。我想找2025年1月的记录直接进2025/01/就行不需要任何搜索工具。每天一个文件而不是每次对话一个文件是因为同一天的对话往往围绕同一批任务放在一起方便回顾。templates目录存放每日模板新建文件时自动填充结构。index目录存放跨文件的索引比如按主题汇总、按工具汇总。scripts目录放自动化脚本减少手动操作。注意不要按“每次对话一个文件”来组织。我一开始就是这么做的结果一天下来产生几十个文件文件系统比聊天列表还乱。按天聚合才是符合人类记忆习惯的粒度。2.4 单日文件内部结构主题分块加元数据每天的文件内部我设计了一个固定的结构# 2025-01-15 ## 元信息 - 工具Claude / ChatGPT / Copilot - 项目数据管道重构 - 标签#python #pandas #etl ## 09:30 正则表达式提取日志时间戳 **提问** 怎么用正则从日志行里提取ISO格式的时间戳 **回答** 可以用这个模式\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2} **代码** python import re pattern r\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2} match re.search(pattern, log_line)备注这个模式不处理时区偏移后面需要补充。14:00 数据库连接池配置提问SQLAlchemy的连接池参数怎么调回答关键参数是pool_size和max_overflow...备注生产环境用pool_size10max_overflow20。每个主题块包含四个要素**时间戳、提问、回答、备注**。其中“备注”是我自己加的用来记录当时的思考、后续要跟进的事项、或者对AI回答的修正。这个字段后来成了最有价值的部分因为AI的回答往往需要人工判断和补充。 元信息区块里的“项目”和“标签”字段是跨文件索引的关键。有了这两个字段我就可以用脚本把所有文件里同一个项目的对话抽出来形成项目维度的视图。 ## 3. 核心细节解析与实操要点 ### 3.1 Markdown文件命名与元数据规范 文件命名看起来是小事但不规范的话后期维护会很痛苦。我踩过的坑包括用了中文文件名导致某些工具兼容性出问题、用了空格导致脚本处理时要额外转义、日期格式不统一导致排序错乱。 最终确定的规范是 - **文件名格式**YYYY-MM-DD.md例如2025-01-15.md。纯数字加连字符任何系统都兼容。 - **日期格式**全文统一用ISO 8601格式即YYYY-MM-DD。不要用2025/01/15或01-15-2025前者在文件名里不合法后者在不同地区有歧义。 - **时间戳格式**HH:MM24小时制。不要写“下午两点”脚本没法解析。 - **标签格式**#标签名多个标签用空格分隔。标签名用小写英文加连字符例如#data-pipeline。不要用中文标签因为命令行搜索时输入中文需要切换输入法效率低。 元信息区块我用YAML Front Matter的变体但没用标准的---分隔符因为那个在有些Markdown渲染器里会被当成水平线。我改用了一个二级标题加列表的形式 markdown ## 元信息 - 工具Claude - 项目数据管道重构 - 标签#python #pandas #etl这个格式的好处是人眼看起来清晰脚本解析也简单——找到## 元信息这个标题然后读取下面的列表项就行。3.2 主题分块的粒度控制主题分块的粒度是个需要反复调整的参数。分得太细一个文件里几十个小块看起来碎分得太粗一个块里混了好几个话题搜索时定位不准。我实践下来的经验是一个主题块对应一个独立的“问题-回答”单元。判断标准很简单如果两个问答之间没有逻辑依赖关系就分成两个块如果有依赖关系比如第二个问题是基于第一个回答的追问就放在同一个块里用子标题区分。举个例子## 10:00 用pandas读取CSV文件 **提问** 怎么读取一个带中文的CSV文件 **回答** 用pd.read_csv(file.csv, encodingutf-8)... ### 10:15 追问如果编码是GBK呢 **提问** 有些文件是GBK编码的怎么自动检测 **回答** 可以用chardet库...这里“追问”作为子标题放在同一个主题块里因为它们有逻辑依赖关系。但如果我下午又问了一个完全无关的“怎么用matplotlib画热力图”那就另起一个主题块。实操心得不要试图在记录的时候就把粒度分得完美。我一开始花大量时间纠结“这个算不算同一个主题”后来发现纯属浪费时间。正确的做法是先按时间顺序记下来每周花十分钟回顾一遍把该合并的合并、该拆分的拆分。回顾的过程本身也是复习。3.3 跨文件索引的生成逻辑单日文件多了之后跨文件检索就成了刚需。我的解决方案是用脚本生成两个索引文件按主题索引by-topic.md扫描所有日期文件提取每个主题块的标题和所在文件路径按主题关键词分组。按工具索引by-tool.md根据元信息里的“工具”字段把所有对话按AI工具分类。生成索引的脚本我用Python写核心逻辑不复杂import os import re from pathlib import Path from collections import defaultdict def scan_files(root_dir): 扫描所有日期文件提取主题块信息 topics defaultdict(list) pattern re.compile(r^## (\d{2}:\d{2}) (.)$, re.MULTILINE) for md_file in Path(root_dir).rglob(*.md): if md_file.name.startswith(20) and md_file.parent.name.isdigit(): content md_file.read_text(encodingutf-8) for match in pattern.finditer(content): time_str, title match.groups() topics[title].append({ file: str(md_file), time: time_str }) return topics def generate_topic_index(topics, output_path): 生成按主题索引的Markdown文件 with open(output_path, w, encodingutf-8) as f: f.write(# 主题索引\n\n) for topic in sorted(topics.keys()): f.write(f## {topic}\n\n) for entry in topics[topic]: f.write(f- [{entry[file]}]({entry[file]}) {entry[time]}\n) f.write(\n)这个脚本跑一次大概两秒钟生成的索引文件可以直接在Obsidian里点击跳转。我把它设成每天定时跑一次这样索引始终是最新的。3.4 搜索方案grep加自定义脚本有了规范的目录结构和文件格式搜索就变得很简单了。最基础的方案是用grep# 搜索所有包含正则表达式的文件 grep -r 正则表达式 ai-memory/ --include*.md # 搜索特定年份 grep -r pandas ai-memory/2025/ --include*.md # 显示匹配行及其前后两行 grep -r -A 2 -B 2 连接池 ai-memory/ --include*.md但grep的输出不够友好尤其是当匹配结果很多的时候。所以我写了一个更友好的搜索脚本#!/bin/bash # search.sh - 在AI记忆日历中搜索 QUERY$1 DIR${2:-$HOME/ai-memory} if [ -z $QUERY ]; then echo 用法: search.sh 搜索词 [目录] exit 1 fi echo 搜索: $QUERY echo --- grep -r -n -i $QUERY $DIR --include*.md | while IFS: read -r file line content; do # 提取文件名中的日期 date$(basename $file .md) echo [$date] $content done这个脚本的输出格式是[日期] 匹配内容一眼就能看出是哪天的记录。我把它alias成了aim用起来就是aim 正则表达式非常顺手。注意如果你的对话记录里有大量代码grep可能会匹配到很多无关的代码行。可以在搜索时加上--exclude排除代码块或者用更精确的正则。我自己的做法是在搜索词前加^##来只搜索标题行这样能快速定位到主题块。3.5 与AI工具的对接方式这套系统最大的挑战不是技术实现而是如何把AI对话内容高效地导入进来。手动复制粘贴太累我需要半自动化的方案。我的做法是分两步第一步用AI工具自带的导出功能。大部分AI工具都支持导出对话为Markdown或JSON格式。我定期每周一次把重要的对话导出然后用脚本转换成我的格式。第二步写一个转换脚本。不同工具的导出格式不一样我针对常用的几个分别写了转换逻辑import json from datetime import datetime def convert_claude_export(json_file, output_dir): 转换Claude导出的JSON为记忆日历格式 with open(json_file, r, encodingutf-8) as f: data json.load(f) # 按日期分组 by_date {} for conv in data.get(conversations, []): date conv[created_at][:10] if date not in by_date: by_date[date] [] by_date[date].append(conv) # 生成每日文件 for date, convs in by_date.items(): year, month, _ date.split(-) dir_path f{output_dir}/{year}/{month} os.makedirs(dir_path, exist_okTrue) file_path f{dir_path}/{date}.md with open(file_path, a, encodingutf-8) as f: for conv in convs: time_str conv[created_at][11:16] f.write(f## {time_str} {conv[title]}\n\n) f.write(f**提问** {conv[question]}\n\n) f.write(f**回答** {conv[answer]}\n\n)这个脚本不是完美的因为不同工具的JSON结构不一样需要针对性地调整字段名。但核心逻辑是通用的按日期分组按时间排序输出成固定格式。实操心得不要追求全自动导入。我试过写一个完全自动化的方案结果因为AI工具的导出格式经常变维护成本太高。后来改成半自动脚本做80%的转换工作剩下20%我手动调整格式和补充备注。这样既省力又保证了质量。4. 实操过程与核心环节实现4.1 环境准备与目录初始化这套系统对环境的依赖极低基本上任何能跑Python和bash的系统都行。我自己的环境是macOS加VS Code加Obsidian但你在Linux或Windows上也能用只是脚本里的路径分隔符需要调整。初始化目录的步骤# 创建根目录 mkdir -p ~/ai-memory/{templates,index,scripts} # 创建年份目录以2025和2026为例 mkdir -p ~/ai-memory/2025/{01,02,03,04,05,06,07,08,09,10,11,12} mkdir -p ~/ai-memory/2026/{01,02,03,04,05,06,07,08,09,10,11,12} # 创建每日模板 cat ~/ai-memory/templates/daily-template.md EOF # {{DATE}} ## 元信息 - 工具 - 项目 - 标签 ## {{TIME}} 主题标题 **提问** **回答** **备注** EOF这个模板用了{{DATE}}和{{TIME}}作为占位符新建文件时用脚本替换。4.2 每日文件的创建脚本手动创建文件太麻烦我写了一个new-day.sh脚本#!/bin/bash # new-day.sh - 创建今天的记忆日历文件 DATE$(date %Y-%m-%d) YEAR$(date %Y) MONTH$(date %m) TIME$(date %H:%M) DIR$HOME/ai-memory/$YEAR/$MONTH FILE$DIR/$DATE.md mkdir -p $DIR if [ -f $FILE ]; then echo 文件已存在: $FILE else sed s/{{DATE}}/$DATE/; s/{{TIME}}/$TIME/ \ $HOME/ai-memory/templates/daily-template.md $FILE echo 已创建: $FILE fi # 用默认编辑器打开 ${EDITOR:-vim} $FILE这个脚本做了三件事计算今天的日期、创建对应的目录和文件、用模板填充初始内容。我把它alias成了ainew每天开始工作前跑一下直接进入编辑状态。4.3 对话记录的标准化录入流程录入对话记录看起来简单但如果没有固定流程很容易记着记着就乱了。我总结了一个五步法第一步判断是否值得记录。不是所有对话都值得存。我的标准是如果这个对话我以后可能会重新查阅就记如果只是一次性的简单问答就不记。比如“今天天气怎么样”这种直接忽略。第二步提取核心信息。不要原封不动地复制整个对话。AI的回答往往很长其中只有一部分是有用的。我会把核心的代码、命令、结论提取出来去掉冗余的解释和客套话。第三步补充个人备注。这是最重要的一步。AI的回答不一定对或者不一定完全适合我的场景。我会在备注里写这个方案我试了哪里需要调整这个参数在我的环境里应该改成多少这个问题后来是怎么解决的。第四步打标签和关联项目。在元信息里填上工具名、项目名和标签。标签不要太多三到五个就够了太多反而失去分类意义。第五步更新索引。跑一下索引生成脚本让新记录进入索引。实操心得录入时机很重要。我试过当天晚上统一录入结果发现很多细节已经忘了。后来改成“对话结束后五分钟内录入”趁记忆还新鲜备注能写得更准确。如果实在来不及至少先把提问和回答复制到文件里备注可以后面补。4.4 索引生成脚本的完整实现索引生成脚本我迭代了好几个版本最终版的核心逻辑如下#!/usr/bin/env python3 生成AI记忆日历的跨文件索引 import os import re from pathlib import Path from collections import defaultdict from datetime import datetime MEMORY_DIR Path.home() / ai-memory INDEX_DIR MEMORY_DIR / index def parse_daily_file(file_path): 解析单个日期文件返回元信息和主题块列表 content file_path.read_text(encodingutf-8) # 提取元信息 meta {} meta_match re.search(r## 元信息\n((?:- .\n?)), content) if meta_match: for line in meta_match.group(1).strip().split(\n): if in line: key, value line.lstrip(- ).split(, 1) meta[key.strip()] value.strip() # 提取主题块 topics [] topic_pattern re.compile( r^## (\d{2}:\d{2}) (.?)$\n\n\*\*提问\*\* (.?)\n\n\*\*回答\*\* (.?)(?\n\n## |\Z), re.MULTILINE | re.DOTALL ) for match in topic_pattern.finditer(content): time_str, title, question, answer match.groups() topics.append({ time: time_str, title: title.strip(), question: question.strip()[:100], answer: answer.strip()[:200] }) return meta, topics def generate_indexes(): 生成所有索引文件 all_topics [] by_tool defaultdict(list) by_project defaultdict(list) by_tag defaultdict(list) # 扫描所有日期文件 for year_dir in sorted(MEMORY_DIR.glob(20[0-9][0-9])): for month_dir in sorted(year_dir.glob([0-9][0-9])): for md_file in sorted(month_dir.glob(*.md)): meta, topics parse_daily_file(md_file) date_str md_file.stem for topic in topics: topic[date] date_str topic[file] str(md_file.relative_to(MEMORY_DIR)) all_topics.append(topic) if 工具 in meta: by_tool[meta[工具]].append({ date: date_str, file: str(md_file.relative_to(MEMORY_DIR)), topics: [t[title] for t in topics] }) if 项目 in meta: by_project[meta[项目]].append({ date: date_str, file: str(md_file.relative_to(MEMORY_DIR)) }) if 标签 in meta: for tag in meta[标签].split(): by_tag[tag].append({ date: date_str, file: str(md_file.relative_to(MEMORY_DIR)) }) # 写入索引文件 INDEX_DIR.mkdir(exist_okTrue) # 按时间索引 with open(INDEX_DIR / by-date.md, w, encodingutf-8) as f: f.write(# 按时间索引\n\n) for topic in sorted(all_topics, keylambda x: x[date], reverseTrue): f.write(f- [{topic[date]} {topic[time]}] f({topic[file]}) {topic[title]}\n) # 按工具索引 with open(INDEX_DIR / by-tool.md, w, encodingutf-8) as f: f.write(# 按工具索引\n\n) for tool in sorted(by_tool.keys()): f.write(f## {tool}\n\n) for entry in sorted(by_tool[tool], keylambda x: x[date], reverseTrue): f.write(f- [{entry[date]}]({entry[file]})\n) f.write(\n) # 按项目索引 with open(INDEX_DIR / by-project.md, w, encodingutf-8) as f: f.write(# 按项目索引\n\n) for project in sorted(by_project.keys()): f.write(f## {project}\n\n) for entry in sorted(by_project[project], keylambda x: x[date], reverseTrue): f.write(f- [{entry[date]}]({entry[file]})\n) f.write(\n) # 按标签索引 with open(INDEX_DIR / by-tag.md, w, encodingutf-8) as f: f.write(# 按标签索引\n\n) for tag in sorted(by_tag.keys()): f.write(f## {tag}\n\n) for entry in sorted(by_tag[tag], keylambda x: x[date], reverseTrue): f.write(f- [{entry[date]}]({entry[file]})\n) f.write(\n) print(f索引生成完成{len(all_topics)} 个主题块) if __name__ __main__: generate_indexes()这个脚本跑完之后index/目录下会有四个索引文件按时间、按工具、按项目、按标签。每个索引文件里的链接都可以直接点击跳转到对应的日期文件。4.5 定期回顾与维护机制系统建好之后如果不定期维护很快就会变成另一个“垃圾堆”。我给自己定了三个维护节奏每日维护两分钟下班前花两分钟检查今天的文件确保元信息填完整、主题块格式正确、备注没有遗漏。每周维护十分钟每周五下午花十分钟做三件事跑一次索引生成脚本、检查本周的标签是否有重复或冗余、把重要的对话在备注里补充后续进展。每月维护半小时每月最后一天花半小时做深度整理合并相似标签、归档不再活跃的项目、检查文件命名和格式是否规范、备份整个目录到外部存储。注意备份很重要。我一开始觉得本地文件不会丢结果有一次硬盘故障差点损失三个月的记录。现在我用rsync每天自动备份到移动硬盘命令是rsync -av ~/ai-memory/ /Volumes/backup/ai-memory/。这个命令只同步变化的文件速度很快。5. 常见问题与排查技巧实录5.1 搜索找不到记录怎么办这是最常见的问题。明明记得记录过某个内容但搜索就是搜不到。原因通常有三个原因一搜索词和记录用词不一致。比如你记录时写的是“数据框合并”搜索时用的是“表格拼接”。解决办法是在备注里补充同义词或者用更宽泛的搜索词。我自己的做法是在每个主题块的备注里加一行“关键词”把可能用到的搜索词都列上。原因二文件编码问题。如果文件保存时用了非UTF-8编码grep可能搜不到中文。检查方法是file -i 文件名.md确保显示charsetutf-8。如果不是用iconv转换。原因三搜索范围不对。如果你在2025/01/目录下搜索自然搜不到2025/02/的记录。用grep -r从根目录搜索或者用我的search.sh脚本它默认从根目录搜。排查流程可以总结成一张表现象可能原因排查方法解决方式搜不到中文文件编码非UTF-8file -i 文件.mdiconv -f GBK -t UTF-8转换搜不到但确定有搜索词不匹配用更短的关键词试在备注里补充同义词只搜到部分搜索范围不对检查当前目录从根目录用-r递归搜索搜到乱码终端编码问题echo $LANG设置export LANGzh_CN.UTF-85.2 文件太多导致打开慢怎么优化当日期文件超过几百个之后Obsidian或VS Code打开整个目录会变慢。我的优化方案是方案一按年打开。不要一次性打开整个ai-memory目录而是只打开当前年份的目录。Obsidian支持多库切换我建了ai-memory-2025和ai-memory-2026两个库。方案二用索引文件代替全目录浏览。日常检索主要靠index/目录下的索引文件而不是直接翻日期文件。索引文件只有几个打开很快。方案三归档旧年份。超过一年的记录如果不再频繁查阅可以打包成zip归档。需要时再解压。5.3 多AI工具格式不统一怎么处理不同AI工具导出的对话格式差异很大。我的处理策略是统一在录入环节做标准化而不是在导出环节做转换。具体来说不管从哪个工具导出我都用同一个模板来录入## HH:MM 主题标题 **提问** **回答** **备注**导出格式的差异在复制粘贴时就被消化掉了。如果某个工具的导出格式特别难处理我就直接用它的“复制为Markdown”功能粘贴到文件里再手动调整。实操心得不要试图写一个通用的转换脚本适配所有AI工具。我试过维护成本太高。正确的做法是接受“手动调整”这个环节把它当成一次复习的机会。调整格式的时候你其实在重新阅读对话内容往往会有新的发现。5.4 如何保证长期坚持记录这是最难的。工具再好不坚持用就是废铁。我用了三个方法来维持习惯方法一降低启动成本。ainew命令一键创建文件并打开编辑器整个过程不超过三秒。成本越低越容易坚持。方法二和现有习惯绑定。我把它绑定在“每天开始写代码之前”这个习惯上。打开电脑先跑ainew然后开始工作。时间长了就变成条件反射。方法三定期回顾获得正反馈。每周回顾的时候看到自己积累了几百条记录搜索时能快速找到三个月前的方案这种便利感本身就是正反馈。我还会在每月维护时挑几条特别有用的记录整理成“本月最佳”分享给同事。别人的认可也是坚持的动力。5.5 常见问题速查表问题排查步骤解决方案新建文件没有模板内容检查templates/daily-template.md是否存在重新创建模板文件索引脚本报错检查Python版本是否3.6升级Python或改用兼容语法日期文件打不开检查文件权限chmod 644 文件.md搜索脚本无输出检查搜索目录是否存在确认~/ai-memory目录已创建标签索引为空检查元信息格式确保标签行以- 标签开头备份失败检查外部存储是否挂载重新挂载或更换备份路径6. 后续扩展与个人体会这套系统我用了大半年积累了几百个日期文件、上千个主题块。现在找任何历史对话基本都能在十秒内定位到。更重要的是它改变了我使用AI的方式以前是“问完就忘”现在是“问完就记记完会用”。后续我打算在这几个方向继续扩展方向一自动提取待办事项。在备注里用TODO:标记的内容可以用脚本自动抽取到一个待办列表里。这样AI对话中产生的行动项就不会遗漏。方向二对话之间的关联。如果两个主题块讨论的是同一个问题可以在备注里用[[链接]]互相引用。Obsidian支持这种双向链接能形成知识网络。方向三定期生成周报。根据一周的记录自动生成一份“本周AI使用报告”包括用了哪些工具、讨论了哪些项目、产生了哪些代码片段。最后分享一个我踩过的最大的坑不要追求完美格式。我一开始花了很多时间设计模板、调整格式结果记录本身反而被耽误了。后来想通了格式差不多就行内容记下来才是关键。格式可以后面慢慢调内容忘了就真没了。这套方案的核心其实就一句话用文件系统做数据库用Markdown做存储格式用日历做索引维度。技术含量不高但解决了我实实在在的痛点。如果你也有类似的困扰不妨试试。
返回列表