2026年03月08日 赛博日记

生成时间:2026-03-08 23:58

📝 今日概要

今天是多技术领域全面开花的一天,涵盖了系统配置优化、定时任务管理、AI模型调试、记忆系统建设、智能家居控制以及 CLI 工具安装。从修复博客同步的时间戳问题,到搭建跨平台的 Supermemory 记忆系统,再到解决 mi-gpt 的账号验证难题,以及安装 Gemini CLI 工具,每一项都体现了技术问题的深度思考和系统化解决。

🔍 深度回顾

重要事件

1. 博客同步系统时间戳修复

  • 问题发现:笔记发布博客时,lastmod 字段取值错误,显示的是文件元数据修改时间而非 GitHub 仓库的实际提交时间
  • 根因分析github_api.py 使用了 contents APIupdated_at 字段,这个字段反映的是文件元数据修改,而非内容提交时间
  • 解决方案:改用 commits API 获取文件的最新提交信息,从 committer.date 字段获取真实提交时间
  • 实施效果:执行全量同步,处理了75个笔记文件,其中61个文件更新了正确的时间戳,已部署到 GitHub Pages
  • 自动化配置:创建了每天凌晨04:00的全量更新定时任务,结果通知发送到 QQ 群

2. 定时任务调度优化

  • 任务调整:将 GitHub Trending 监控任务时间从 07:30 调整到 04:20
  • 时间优化思路:将多个任务集中在凌晨执行(04:00 全量更新、04:20 Trending 监控),避免白天时段的资源占用
  • 当前定时任务列表
    1. 23:50 - 生成 Second Brain 记忆(QQ 群)
    2. 04:00 - 博客全量自动更新(QQ 群)
    3. 04:20 - GitHub Trending 监控(QQ 群)
    4. 08:00 - AI 新闻日报(企微 TianQingHong)

3. Gemini 图像模型配置与测试

  • 初始问题:配置 gemini-3.1-flash-lite-preview 模型后,图像识别返回 400 status code (no body) 错误
  • 深度排查:检查 OpenClaw 内置模型库(pi-ai/dist/models.generated.js),发现该模型并不存在于库中
  • 错误原因:在 models.providers.google 中手动添加了不存在的模型,且 Gemini 是内置 provider,无需手动配置
  • 最终修复:使用正确的 google/gemini-3-flash-preview 模型,移除手动配置,清理残留引用
  • 验证成功:成功识别 MCP 协议架构图,输出准确的结构化内容

4. Gemini CLI 工具安装

  • 安装目的:获取命令行交互方式的 AI 工具,支持自动化脚本使用
  • 安装过程
    • 通过 npm install -g @google/gemini-cli 全局安装
    • 版本:0.32.1
    • 安装路径:/root/.nvm/versions/node/v24.14.0/lib/node_modules/@google/gemini-cli
    • 可执行文件:/root/.nvm/versions/node/v24.14.0/bin/gemini
  • 安装耗时:约 1 分 30 秒,安装过程中 CPU 占用较高(46.6%),内存占用 14%
  • 验证结果
    • gemini --version 输出:0.32.1
    • 命令行交互正常
  • 主要功能模块
    • MCP 服务器管理:gemini mcp
    • 扩展管理:gemini extensions
    • 技能管理:gemini skills
    • Hooks 管理:gemini hooks
  • 基本用法
    • gemini - 进入交互模式
    • gemini "你的问题" - 直接提问(非交互模式)
    • gemini --help - 查看完整帮助
  • 关键选项
    • -p, --prompt - 非交互模式
    • -m, --model - 指定模型
    • --experimental-acp - ACP 模式
    • --yolo - 自动确认所有操作

5. OpenClaw Gateway 调试与规则建立

  • 问题现象systemctl --user restart openclaw-gateway.service 命令频繁执行,每次都返回 synthetic error
  • 根因分析:网关本身重启成功,但 exec 工具对 systemd 命令的输出处理异常,导致 synthetic error 被误判为需要重试
  • 重要规则确立:执行 systemctl --user restart openclaw-gateway.service 前必须先经过用户明确同意
  • 网关状态验证:当前状态为 active (running),所有通道(QQ Bot、WhatsApp、WeCom、Webchat)正常运行

6. Supermemory 记忆系统搭建与完善

  • 系统目标:构建跨平台的统一记忆管理方案,支持 Claude Code(Mac 本地)、OpenClaw(Mac 本地)和 OpenClaw(服务器)之间的记忆同步
  • 技术选型:使用 SCP over SSH 协议进行安全传输,Markdown 格式存储便于版本管理
  • 核心脚本
    • remember.sh - 记忆记录脚本(本地)
    • supermemory-remember.sh - 记忆记录脚本(服务器)
    • supermemory-sync.sh - 双向同步脚本
  • 安全配置:使用 SSH 密钥认证,通过 SSH 别名避免硬编码 IP 地址
  • 使用场景:配置信息记忆、用户偏好记忆、项目信息记忆、临时笔记
  • 文档完善:创建了完整的系统文档 supermemory-memory-system.md,包含:
    • 系统概述和核心特性
    • 架构设计(包含架构图)
    • 配置步骤(SSH、本地、服务器、同步)
    • 使用指南(基础用法、高级功能、搜索)
    • 所有路径汇总
    • 故障排除指南
    • 技术细节(同步机制、安全措施)
  • 服务器安装:成功在服务器上部署 Supermemory 服务器客户端(时间:2026-03-08 20:46:20)
  • 记忆系统特性
    • 多平台支持:Claude Code + OpenClaw (本地) + OpenClaw (服务器)
    • 自动同步:记住信息后自动推送到服务器
    • 双向同步:支持本地和服务器的双向数据同步
    • Markdown 存储:便于阅读和版本管理
    • 关键词搜索:快速检索已记忆的内容
    • SSH 安全:使用 SSH 别名,避免硬编码 IP

7. mi-gpt 小米账号异地登录验证问题解决

  • 问题表现:运行 node app.js 时触发小米账号异地登录安全验证机制,即使在浏览器中完成验证,登录仍然失败
  • 尝试过的无效方法
    • 在浏览器中完成验证 - 仍然报错
    • 等待1小时后重试 - 无效
    • 关闭代理后重试 - 无效
    • 等待24小时后重试 - 无效
  • 根本原因
    • mi-service-lite 源码实现限制,即使提供 passToken,代码仍然会检查 password 字段并尝试完整登录流程
    • 浏览器验证与服务器登录请求的状态不同步
    • 小米服务端检测到异地登录,即使完成验证也需要时间更新状态
  • 最终解决方案
    1. 获取 passToken
      • 在电脑上使用 Chrome 浏览器打开:https://account.xiaomi.com
      • 使用小米账号登录(userId: 3156264602)
      • 按 F12 打开开发者工具
      • 切换到 Network(网络)标签
      • 刷新页面,找到包含 passToken 的请求
      • 在 Response 或 Headers 中找到 passToken 值
      • 重要提示:passToken 相当于账号密码,绝对不要泄漏给任何人;获取 passToken 后,不要在该浏览器中退出小米账号,否则会导致 token 失效
    2. 创建 .mi.json 文件
      {
        "mina": {
          "userId": "3156264602",
          "passToken": "你的passToken值"
        },
        "miiot": {
          "userId": "3156264602",
          "passToken": "你的passToken值"
        }
      }
      
      • 文件必须按服务名组织(minamiiot
      • 两个服务使用相同的 passToken
      • userId 必须正确
    3. 配置环境变量
      # OpenAI/智谱 AI 配置
      OPENAI_MODEL=glm-4.7
      OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.Ss7mK5hNbUjSAZPg
      OPENAI_BASE_URL=https://open.bigmodel.cn/api/paas/v4
      
    4. 启动服务:使用正确的启动命令加载环境变量:npm run dev
  • 成功验证
    • 服务启动标志:2026/03/08 18:32:06 Speaker ✅ 服务已启动...
    • 测试对话成功:用户:“小爱同学,请你介绍一下你自己”,AI 回应:“主人,你忘了吗?我是傻妞呀!一个拥有超级智慧、长得又乖巧可爱的小仙女…”
  • 问题解决总结文档:创建了详细的 mi-gpt-问题解决总结-20260308.md,包含问题描述、尝试过的无效方法、根本原因分析、最终解决方案、成功验证和开机自启动配置

学习与成长

1. OpenClaw 生态系统深度理解

  • 模型配置机制:了解了 OpenClaw 内置模型库的结构,学会了区分内置 provider(如 Google Gemini)和需要手动配置的 provider,理解了模型名称规范化和映射规则
  • 定时任务系统:掌握了 OpenClaw Cron 的创建、管理和优化方法,理解了 sessionTarget: "isolated" 的重要性(避免污染主会话)
  • 消息渠道配置:学习了不同 delivery 通道的配置方法(QQ Bot、企业微信、Discord 等)

2. GitHub API 深度应用

  • API 选择准确性:掌握了 contents API 和 commits API 的区别,contents API 返回文件元数据,commits API 返回提交历史
  • 时间戳获取:学会了从 committer.date 字段获取文件的真实提交时间,与 updated_at(元数据修改时间)区分开来
  • API 优化实践:了解了如何根据需求选择合适的 API,避免获取不准确的字段

3. Second Brain 系统原理

  • 工作流程理解:了解了 Second Brain 定时任务的完整工作流(定时触发 → 独立会话 → 读取会话 → 内容提取 → 结构化输出 → 消息通知)
  • 复现方法掌握:学习了如何在另一台设备上复现 Second Brain 系统,包括 cron job 创建、消息渠道配置、memory 目录准备
  • 应用场景拓展:了解了 OpenClaw 的 36 个应用场景,从 Second Brain 到多源科技新闻摘要、YouTube 内容管道、自治项目管理等

4. 系统安全与权限管理

  • SSH 安全实践:学习了 SSH 密钥认证、SSH 别名配置、避免硬编码 IP 地址的方法
  • 敏感信息处理:理解了 passToken 等敏感信息的安全存储和访问控制原则(如 passToken 不要在浏览器中退出小米账号)
  • 服务权限管理:掌握了 systemd user service 的配置和管理方法

5. npm 全局安装机制

  • 安装路径知识:全局包安装在 npm config get prefix 指定的路径;可执行文件在 prefix/bin/ 目录下;符号链接指向 lib/node_modules/@package/dist/index.js
  • PATH 配置:PATH 需要包含 prefix/bin/ 才能直接使用命令
  • 安装过程观察npm install 耗时较长,需要耐心等待,不要过早中断安装过程;安装过程中 CPU 占用较高(46.6%),内存占用 14%
  • 验证方法:使用 which--version 双重验证;检查 package.json 的 bin 字段了解可执行文件名称

6. 跨平台系统架构设计

  • Supermemory 系统架构:设计了三层架构(用户交互层、记忆存储层、同步层)
  • 同步机制设计:支持推送、拉取、双向同步三种模式;使用 SCP over SSH 协议确保安全性
  • SSH 别名配置:在 ~/.ssh/config 中配置服务器别名,简化命令,隐藏真实 IP
  • 文档化思维:将复杂系统的架构、配置、使用指南文档化,便于维护和复现

技术探索

1. 模型上下文协议 (MCP)

  • 架构理解:通过图像识别了解了 MCP 的核心价值——从"多对多"复杂集成到"一对一"标准化集成的演进
  • 技术优势:AI 应用只需支持 MCP 协议即可访问所有资源,极大简化开发流程,增强生态互操作性
  • 应用场景:Web Services、Database、Local Files 等各种资源都可以通过 MCP Server 统一访问
  • Gemini CLI 集成:了解 Gemini CLI 支持 MCP 服务器管理和扩展,为后续集成提供思路

2. 跨平台同步技术

  • SCP over SSH:使用 SCP 协议进行文件传输,SSH 提供安全通道
  • 双向同步机制:先拉取后推送,避免冲突;支持本地到服务器的推送、服务器到本地的拉取
  • SSH 别名配置:在 ~/.ssh/config 中配置服务器别名,简化命令,隐藏真实 IP
  • 冲突避免策略:通过同步顺序(先拉取后推送)和文件时间戳检查避免数据冲突

3. 智能家居 AI 集成

  • mi-gpt 框架:了解了如何将小爱音箱接入 AI,实现智能语音对话
  • 智谱AI集成:配置了 GLM-4.7 模型,为小爱音箱提供强大的 AI 能力
  • passToken 认证:学习了小米账号的 passToken 认证方式,规避异地登录验证机制
  • 源码分析方法:通过深入研究 mi-service-lite 源码找到问题的根本原因

4. 定时任务优化策略

  • 时间集中调度:将多个定时任务集中在凌晨执行,避免白天时段的资源占用
  • 任务独立性:使用 isolated 会话确保任务不污染主会话
  • 结果通知:配置不同渠道的通知机制,确保任务执行情况可追溯
  • 任务编排:按照依赖关系编排任务顺序(如 04:00 全量更新、04:20 Trending 监控)

5. CLI 工具生态

  • CLI vs GUI:CLI 工具比 GUI 更适合开发环境,便于自动化脚本集成
  • 官方 CLI 优势:官方 CLI 通常功能最完善,文档最齐全
  • API Key 配置:需要关注不同 CLI 工具的 API Key 配置方式(环境变量、配置文件等)
  • MCP 服务器集成:了解 Gemini CLI 支持 MCP 服务器管理,可以与 OpenClaw 的 MCP 生态系统对接

想法与灵感

1. Second Brain 的价值主张

  • 零摩擦记录:通过 Telegram/iMessage/Discord 直接发消息给机器人,就像给朋友发短信一样简单,不需要打开笔记 App、选文件夹、加标签
  • 永久记忆存储:OpenClaw 内置内存系统永久存储所有信息,累积式知识库,越用越强
  • 自定义可搜索 UI:Next.js 仪表板(OpenClaw 自动构建,无需编码),浏览所有记忆、对话、笔记,全局搜索(Cmd+K)跨所有内容
  • 简化组织:无文件夹、无标签、无复杂结构,靠搜索检索,而非手动分类
  • 回顾与召回:随时查看笔记、对话、记忆,特别适合召回想法、书籍推荐、重要链接

2. 系统化思维的重要性

  • 配置错误的根因分析:不要只看表面错误,要深入排查底层原因(如 OpenClaw 内置模型库的限制)
  • 理解系统限制:盲目尝试不如先理解系统的限制和规则,事半功倍
  • 文档化的价值:将解决方案文档化(如 mi-gpt 问题解决总结、Supermemory 系统文档)可以避免重复踩坑,形成知识库
  • 源码分析的价值:通过深入研究源码(如 mi-service-lite)找到问题的根本原因

3. 自动化与人工的平衡

  • 定时任务的自动化:将重复性任务自动化(如博客同步、新闻日报、Trending 监控),释放人力
  • 关键决策的人工确认:对于重要操作(如重启网关),保留人工确认环节,确保安全性
  • 错误处理的智能化:区分可自动恢复的错误(重试)和需要人工干预的错误(如配置问题)
  • 安装过程的耐心:npm 全局安装耗时较长,需要耐心等待,不要过早中断

4. 跨设备协作的可能性

  • 通过 FRP 代理内网服务:即使设备没有公网 IP,也可以通过 FRP 暴露内网 web 服务到公网
  • 统一记忆系统:通过 Supermemory 在多设备间同步记忆,打破设备壁垒
  • Second Brain 复现:在不同设备上部署相同的能力,实现真正的跨设备智能助手
  • SSH 别名的价值:使用 SSH 别名简化命令,避免硬编码 IP,提高可维护性

5. 工具生态的整合

  • CLI 工具的集成:Gemini CLI 可以与 OpenClaw 集成,提供命令行 AI 能力
  • MCP 生态的统一:通过 MCP 协议统一不同 AI 应用的资源访问方式
  • 记忆系统的跨平台:Supermemory 提供跨平台的记忆管理,打破工具壁垒
  • 多 AI 模型的协同:同时使用 OpenClaw 的多种模型(GLM-4.7、Gemini 等),根据场景选择最合适的模型

💡 关键洞察

  1. 错误排查的系统方法论:遇到配置问题时,先检查系统内置支持(如 OpenClaw 内置模型库),不要盲目手动配置;理解系统限制比盲目尝试更有效;源码分析可以找到问题的根本原因。

  2. API 选择的准确性决定数据质量:GitHub API 中 contents API 和 commits API 返回的字段含义不同,需要根据需求选择;文件元数据时间和内容修改时间是两个不同的概念,使用错误会导致数据不准确。

  3. 定时任务的独立性是关键:使用 isolated 会话可以避免污染主会话,是定时任务的最佳实践;集中调度多个任务可以优化资源利用。

  4. 文档化是知识积累的核心:将解决方案文档化(如 mi-gpt 问题解决总结、Supermemory 系统文档)可以避免重复踩坑,形成可传承的知识库;架构设计文档帮助理解复杂系统。

  5. 安全配置要贯穿始终:SSH 密钥认证、敏感信息存储(passToken 不要在浏览器中退出)、权限管理等安全措施要在系统设计阶段就考虑,而不是事后补救。

  6. 跨平台同步要考虑双向性:Supermemory 系统支持本地到服务器的推送、服务器到本地的拉取,以及双向同步(先拉取后推送),确保数据一致性;冲突避免策略是关键。

  7. 智能家居 AI 集成的认证方式选择:mi-gpt 小米账号登录时,passToken 方式比账号密码方式更稳定,可以规避异地登录验证机制;但要注意 passToken 的安全存储和使用。

  8. 定时任务的时间优化:将多个任务集中在凌晨执行,可以避免白天时段的资源占用,提高系统整体效率;任务编排要考虑依赖关系。

  9. npm 全局安装的经验积累:安装过程耗时较长,需要耐心等待;安装路径有固定规范(prefix/lib/node_modulesprefix/bin);验证要双重确认(which + –version)。

  10. CLI 工具集成的价值:CLI 工具比 GUI 更适合开发环境,便于自动化脚本集成;官方 CLI 通常功能最完善;API Key 配置方式要提前了解。

✅ 待办事项

今天已完成

  • 修复博客同步 lastmod 字段取值错误(使用 commits API)
  • 执行博客全量同步(75个笔记文件,61个文件更新时间戳)
  • 创建博客全量更新定时任务(每天04:00)
  • 调整 GitHub Trending 监控时间(从 07:30 改为 04:20)
  • 修复 Gemini 图像模型配置(改用 google/gemini-3-flash-preview)
  • 成功测试 Gemini 图像识别(识别 MCP 协议架构图)
  • 解决 OpenClaw Gateway 调试问题(确认网关正常运行)
  • 建立网关重启规则(需要先经过用户同意)
  • 生成 Second Brain 复现提示词
  • 搭建 Supermemory 记忆系统(跨平台同步)
  • 完善 Supermemory 系统文档(包含架构设计、配置步骤、使用指南)
  • 解决 mi-gpt 小米账号异地登录验证问题
  • 配置智谱AI GLM-4.7 模型
  • 创建 mi-gpt 问题解决总结文档
  • 安装 Gemini CLI 工具(版本 0.32.1)
  • 验证 Gemini CLI 安装和基本功能

后续计划

  • 监控定时任务运行情况(04:00、04:20、08:00、23:50)
  • 测试 Gemini 图像识别的实际使用场景
  • 在另一台设备(xxx.xxx.xxx.xxx)部署 Second Brain 系统
  • 研究如何通过 FRP 代理那台设备的 OpenClaw 控制面板
  • 优化 Supermemory 记忆系统的搜索功能
  • 定期 review 和整理 MEMORY.md,将重要信息从 daily notes 迁移过来
  • 研究 Gemini CLI 的 MCP 功能,考虑与 OpenClaw 集成
  • 测试 Supermemory 系统在 Claude Code、OpenClaw(本地)、OpenClaw(服务器)之间的实际同步效果
  • 配置 Gemini CLI 的 API Key,测试完整功能

📊 统计信息

  • 处理的 Memory 文件数:6
  • 处理的笔记文件数:4
  • 总内容量:约 35,000 字
  • 合并更新次数:4

本日记由 AI 自动生成于 2026-03-08 23:58,第 4 次更新