Contents

三个CSV文件,一个AI私人助理:我的数字生活操作系统

从"普通话"到"母语"

上一篇《AI 时代新 Office 三件套》发出去之后,有读者留言:「道理都懂,但 Markdown、CSV、HTML 到底能拿来干什么?总不能真用 CSV 管客户吧?」

说实话,这个问题我没法用理论回答。因为我已经用这套方案跑了快一个月了。

而且跑出来的东西,比我预期的要好玩得多。


一个反直觉的发现

先说结论:

我用三个 CSV 文件,搭建了一个能管通讯录、记备忘录、发生日提醒的 AI 私人助理。

没有数据库。没有后端服务。没有 API 接口。

三个 CSV 文件,一个 AI Agent,跑在一台 VPS 上。

它叫「艾迪」(Aide)。

你给它发一条微信:「记一下,5月6日交季度报告,5号晚上提醒我。」

它会在备忘录 CSV 里新增一行,然后在提醒 CSV 里自动创建一条定时任务。到时间了,微信推送提醒你。

你再说一句:「张传乐电话多少?」

它从通讯录 CSV 里查到:18961366292,关系是 family,标签是「游泳、阅读」,QQ 号 32373296,现居连云港。

全部响应时间不到 3 秒。

听起来像个小型 CRM?没错。但它的底层架构,简单到任何一个懂 CSV 的人都能复现。


为什么是 CSV?

上一篇我们聊过,CSV 是 AI 时代的表格普通话。但「普通话」这个词还不够准确。

在我的实践中,CSV 更像是 AI 私人助理的母语

原因有三层。

第一层:AI 不需要「解析」CSV,它天生就「懂」

你让 LLM 读一个 Excel 文件,它需要调用代码解释器、加载 pandas、处理各种格式噪声。但如果是 CSV?它直接就能「看」。

因为 CSV 的本质就是纯文本。第一行是列名,下面每行是一条记录。AI 读 CSV 的方式,跟读一段自然语言描述几乎没有区别:

id,name,phones,relationship,birthday
9a36391f,张传乐,18961366292,family,1985-05-01

这段文字,人一眼就能看懂。AI 也一样。不需要任何额外的解析层。

这就是为什么 GPT、Claude 处理 CSV 的准确率远高于 Excel——不是因为 AI 更聪明,而是因为 CSV 的语义边界太清晰了。每一行是一条记录,每一列是一个字段。没有合并单元格,没有跨表引用,没有隐藏行。

AI 不需要猜你的意图。

第二层:CSV 能表达复杂关系,但保持简单

你可能会说:CSV 不就是个二维表吗?能有多复杂?

确实只是二维表。但二维表加上两个技巧,就能表达相当复杂的关系网络。

技巧一:JSON 嵌套。

CSV 的每个单元格可以存 JSON。比如我的通讯录里,一个人的电话不是简单的一个字符串,而是一个 JSON 数组:

[{"type":"mobile","number":"18961366292","country":"+86"},
 {"type":"home","number":"18061384334","country":"+86"}]

一个单元格里,类型、号码、国家码全有了。AI 用 json.loads() 一行代码就能解析。

技巧二:ID 关联。

我的系统有三个 CSV 文件:通讯录、备忘录、提醒。它们之间通过 ID 互相引用。

比如备忘录里有一条:

id: 234fa8ee
title: 张蒙心情不好
related_contacts: ["333dddc3"]

这个 333dddc3 就是通讯录里「张蒙」那条记录的 ID。AI 看到这条备忘录,就能顺着 ID 去通讯录里找到张蒙的完整信息——电话、关系、标签、备注。

三个 CSV 文件,通过 ID 联在一起,就是一个关系型数据库。

不需要 PostgreSQL,不需要 MongoDB。CSV + AI,就够了。

第三层:数据主权,真正在你手里

这一点可能最重要。

你用微信通讯录,数据在腾讯手里。用 iCloud 备忘录,数据在苹果手里。用任何 SaaS 服务,数据都在别人手里。

但 CSV 文件在你自己的服务器上。

你可以用任何表格软件打开它——Excel、Google Sheets、甚至记事本。你可以随时导出、备份、迁移。没有任何厂商锁定。

每次修改数据之前,系统会自动生成 .bak 备份文件。随时可以回滚。

你不是在「使用」一个服务。你在「拥有」一份数据。


艾迪的架构:三个文件,一个系统

让我完整展示一下这套系统的样子。

文件一:通讯录 my_contacts.csv(15 列)

列名说明
id8位唯一标识
name姓名
nickname常用称呼
phonesJSON 数组,存多个电话
emailsJSON 数组,存多个邮箱
organization公司/单位
title职位
relationshipfamily / friend / colleague / acquaintance
tags自定义标签,逗号分隔
notes备注(相识背景、爱好等)
birthday公历生日
lunar_birthday农历生日
last_contact最近联系日期
created_at / updated_at时间戳

目前存了 100 多个联系人。家人、同事、朋友、饭局认识的,全部在里面。关系标签标注了亲疏远近,notes 里记录了「4月17日一起喝酒」「游泳认识,自由泳高手」这样的碎片信息。

这些信息,微信通讯录里是没有的。但它们恰恰是维护人际关系时最有价值的上下文。

文件二:备忘录 my_memos.csv(13 列)

列名说明
id唯一标识
title标题
content内容
categorynote / todo / idea / draft
tags标签
priority1(高)/ 2(中)/ 3(低)
statusactive / completed / archived
due_date截止日期
remind_at提醒时间
location地点
related_contactsJSON 数组,关联联系人 ID
created_at / updated_at时间戳

备忘录不只是「记东西」。它有分类、有优先级、有状态流转。更重要的是,它可以关联联系人——你记了一条「张蒙心情不好,有空问候一下」,AI 知道张蒙是谁、电话多少、上次什么时候联系的。

文件三:提醒 reminders.csv(11 列)

列名说明
id唯一标识
title提醒标题
sourcecontact / memo / manual
source_id关联的源 ID
remind_at提醒时间(UTC)
repeatonce / yearly
message提醒内容
channelweixin
enabled1 / 0
created_at / updated_at时间戳

这是整个系统的调度引擎。不存具体信息,只存「什么时候提醒谁」。

三种来源:

  • contact → 生日提醒(年度重复,支持农历转换)
  • memo → 待办提醒(到期前一天自动提醒)
  • manual → 手动添加的提醒

当你说「5月6日交季度报告,5号晚上提醒我」,AI 会在备忘录里创建一条 todo,然后在提醒表里创建一条 source=memo 的定时任务。到 5 月 5 日晚上 8 点,微信推送到达。

联动关系

通讯录 ──→ 生日数据 ──→ 提醒(年度重复)
备忘录 ──→ 待办截止 ──→ 提醒(单次)
通讯录 ←── related_contacts ──→ 备忘录
提醒 ←── source/source_id 回溯 ──→ 通讯录 & 备忘录

三个 CSV 文件,通过 ID 和字段约定,形成了一个完整的关系网络。


AI Agent 做了什么?

你可能会问:那 AI Agent 在这个系统里到底扮演什么角色?

答案是:自然语言编译器。

没有 AI Agent,这三个 CSV 文件就是一堆静态数据。你需要打开 Excel 手动增删改查。

有了 AI Agent,你只需要说人话:

你说AI 做的事
「记一下今天在南站咖啡店见了张蒙」新增备忘录,自动关联张蒙的 ID
「孩子舅舅生日是哪天」查通讯录,返回农历生日并换算公历
「帮我看看最近有什么要做的」查备忘录(status=active)+ 即将到期的提醒
「查一下跟张蒙有关的事」按 related_contacts 交叉查询所有关联备忘录
「加上姜厚茂的电话」在通讯录新增一行,JSON 序列化电话号码

AI Agent 把自然语言编译成了对 CSV 文件的精确操作。

它不是简单的「关键词匹配」。它需要理解:

  • 「孩子舅舅」→ 去通讯录找 relationship=family 且备注含「小孩舅舅」的人 → 李佳玉
  • 「最近要做的」→ 查 category=todo 且 status=active 的记录,按 due_date 排序
  • 「跟张蒙有关的事」→ 先找张蒙的 ID,再查 related_contacts 包含该 ID 的所有备忘录

这是一个完整的语义理解 → 数据查询 → 结果组织的 pipeline。而 CSV 恰好是这个 pipeline 最理想的数据层。


一个具体的例子

4月26日早上,我在去常州的高铁上,给艾迪发了一条:

「天目湖状元阁,为儿子中考祈福。2026年4月26日,爸爸专程游览天目湖湖山丽景区状元阁,愿张晋涵今年中考金榜题名!」

艾迪做了什么:

  1. 理解意图:这是一条 note 类型的备忘录,优先级高(family 相关),地点是天目湖湖山丽景区·状元阁
  2. 关联联系人:从通讯录中找到「张晋涵」(relationship=family,儿子),提取其 ID 7be829c2 写入 related_contacts
  3. 写入 CSV:在 my_memos.csv 新增一行
  4. 确认回复:「已记录。已关联张晋涵(儿子)。」

整个过程不到 5 秒。

如果不用 AI 助理,我需要:

  1. 打开手机备忘录 App
  2. 手动输入文字
  3. 打开通讯录找到儿子
  4. 心里记住这件事

但有了 AI 助理,这条记录被永久保存了,而且可查询、可关联、可扩展。以后我随时可以问「关于晋涵的事」,这条记录就会出现。

这就是「数据主权」的意义——不是把数据存下来,而是让数据为你所用。


成本是多少?

零。

  • CSV 文件:免费
  • AI Agent(Hermes):开源框架,跑在自己的 VPS 上
  • 微信推送:微信公众号 API(已有)
  • 农历转换:Python lunardate 库(开源)

唯一的成本是你愿意花 30 分钟理解这套系统的架构

但理解了之后,你可以:

  • 任意扩展字段(加个「微信昵称」列?一行的事)
  • 任意迁移数据(拷走 CSV 文件就行)
  • 任意编写脚本分析数据(Python 三行代码就能统计你的社交网络)
  • 任意对接新渠道(邮件提醒?短信提醒?加个 channel 字段就行)

没有厂商锁定,没有订阅费用,没有数据导出限制。


回到「普通话」

上一篇我说,CSV 是 AI 时代的表格普通话。

现在我更精确地说:CSV 是 AI 私人助理的母语。

普通话的意思是——你用它说话,别人能听懂。但母语的意思是——它本身就是思考的方式。

AI 不是「能处理」CSV。AI 是用 CSV 思考

当你把通讯录、备忘录、提醒表都写成 CSV 的时候,你实际上是在用 AI 最擅长的方式组织你的世界。AI 读 CSV 的开销,远低于读任何其他格式。它不需要解析器,不需要 ORM,不需要任何中间层。

这就是为什么三个 CSV 文件就能跑起来一个完整的私人助理系统。

不是因为系统太简单。是因为 CSV + AI 这个组合,恰好踩在了效率的拐点上。


你能做什么?

如果你被这篇文章打动了,不需要装任何软件,不需要学任何框架。

你只需要:

  1. 在电脑上建三个 CSV 文件——通讯录、备忘录、提醒
  2. 定义好列名——参照我上面的 Schema
  3. 把你的数据填进去——哪怕只有 10 个联系人、5 条备忘录
  4. 接一个 AI Agent——Hermes、Claude、GPT,都行

然后你就可以开始说人话了。

「老婆生日快到了吗?」 「上周见的客户叫什么来着?」 「明天有什么事?」

三个 CSV 文件,一个 AI,你的数字生活操作系统,就这么跑起来了。

不是未来。是现在。


本文系统基于 Hermes Agent 框架 + CSV 数据层构建,所有代码开源,数据完全本地化。如需复现,可参考文中提供的 Schema 设计。