你每天打开多少次信息应用?

Gmail 的红点、Telegram 群聊的未读、RSS 阅读器的计数、Slack 的频道。每一枚红点都是一次认知打断。每一次滑动刷新都是一次注意力税。

我统计过自己的数字行为:平均每天在不同信息源之间切换 87 次。87 次上下文重建。87 次「我刚刚在想什么」。

这不是信息过载。这是信息碎尸——你的注意力被拆成 87 块,扔进了 87 个不同的桶里。每块都不够深,无法形成认知。

所以我在想:能不能反过来?不主动去「消费」信息,而是让信息自己汇聚到一个地方。等我有认知带宽的时候,一次性深潜处理。

于是有了 内容缓冲池(Content Buffer Pool)

一、架构:Push 代替 Pull

大多数人的信息摄取模式是 Pull 模式——主动去各个源拉取。Gmail 刷一遍,Telegram 刷一遍,Twitter 刷一遍。每次 Pull 都是一次注意力转移,每次转移都在消耗认知能量。

|内容缓冲池的核心思想是把 Pull 变成 Push:

Gmail (@buffer)     ───┐
Telegram (收藏)     ───┼──► [脚本聚合] ──► ~/buffer/raw/ ──► [定时处理] ──► ~/buffer/processed/
RSS (过滤后)        ───┘

脚本不需要手动执行。它作为守护进程,持续监听各个入站通道。当信息进入 raw/ 目录时,它不做处理——只是搬运。真正消耗认知的工作,留到每天固定的「缓冲处理时间」。

这个架构最有价值的地方不是技术实现,而是心理学设计

  • 把「刷新」这个行为从自动反应变成主动选择
  • 把「碎片处理」合并成「批量深潜」
  • 把「现在必须看」降级为「稍后统一看」

二、通道一:Gmail 邮件过滤器

我的 Gmail 有两个标签决定了邮件去哪:

@buffer 标签:表示这是一封值得读但不必立即读的邮件。NL 订阅、周报、行业简报,全进这个标签。

脚本逻辑:

import imaplib, email
from pathlib import Path

BUF = Path("~/buffer/raw/").expanduser()

# 连接到 Gmail,筛选 @buffer 标签未读邮件
with imaplib.IMAP4_SSL("imap.gmail.com") as conn:
    conn.login(USER, APP_PASSWORD)
    conn.select('"buffer"')
    _, ids = conn.search(None, "UNSEEN")

    for id in ids[0].split()[:10]:  # 每次只处理前10封
        _, data = conn.fetch(id, "(RFC822)")
        msg = email.message_from_bytes(data[0][1])

        slug = msg["Subject"][:40].replace(" ", "-")
        (BUF / f"{slug}.txt").write_text(
            f"source: email\nfrom: {msg['From']}\nsubject: {msg['Subject']}\ndate: {msg['Date']}\n\n{extract_body(msg)}"
        )

关键设计:extract_body()beautifulsoup 清除 HTML 格式,保留纯文本。不追求完美解析,追求「可读即可」。

三、通道二:Telegram 消息转发器

Telegram 是更复杂的信息源。群聊的讨论、频道的文章、私聊的分享,同一个 App 承载了完全不同类型的信息流。

我的策略:只处理已读不标记的「收藏」消息。

为什么不是所有消息?因为群聊噪音占 90%。只有你主动「收藏」的消息,才是你觉得有价值的内容。

脚本通过 Telegram Bot API 实现:

import requests

BOT_TOKEN = "your_bot_token"
CHAT_ID = "@your_channel"

# 监听转发的消息(需要 Webhook 或长轮询)
def fetch_saved_messages():
    url = f"https://api.telegram.org/bot{BOT_TOKEN}/getUpdates"
    resp = requests.get(url, params={"timeout": 30, "allowed_updates": ["message"]}, proxies=PROXY)

    for update in resp.json().get("result", []):
        msg = update.get("message", {})
        if msg.get("forward_from_chat"):  # 转发的频道文章
            slug = f"tg-{msg['date']}.md"
            (BUF / slug).write_text(
                f"source: telegram\nfrom: {msg['forward_from_chat']['title']}\ndate: {msg['date']}\n\n{msg.get('text', '')}"
            )

代理参数 PROXY 是因为 GFW 限制,不多解释。

四、缓冲处理模式:从「收件箱」到「定时深潜」

这是整个架构最关键的部分,与技术无关,与认知习惯有关:

每天固定 15 分钟,处理缓冲池。

打开 ~/buffer/raw/

  1. 快速浏览:每篇看 30 秒,决定处理方式

    • 🗑️ 删除(当时觉得有价值,现在看并没有)
    • 📌 保留(归档到 ~/buffer/processed/date/
    • ⚡ 行动(转化为待办或笔记)
  2. 组块处理:同主题的归并。3 篇关于 LangChain 的文章 → 一篇笔记

  3. 关闭缓冲池:处理完立刻关上。不回头,不追加

五、工具维度的「共生」反思

这个缓冲池不是反信息——它是对信息摄入的架构升级。不是降低信息量,而是提升信息质量:

  • 能量维:把「随时刷新」的随机行为,降级为「固定时间深潜」的系统行为
  • 环境维:87 个信息源 → 一个 ~/buffer/raw/ 目录。物理空间的归并,就是认知负担的归并
  • 观察维:缓冲池让你看见真正的信息模式——哪些源持续产出垃圾,哪些源值得保留
  • 工具维:不要用复杂的工具。imapclient + requests + pathlib,三行核心代码

金句

「信息不是货币,注意力才是。而缓冲池是你注意力的储蓄罐。」

「不要优化你的信息摄入速度,优化你的信息摄入结构。」