马自立的博客
PORTFOLIO · Obsidian 插件

Telegram Companion

Telegram 陪伴机器人

Obsidian 插件,一个以文件系统为记忆的陪伴 Agent:它的上下文和记忆都是库里的 Markdown 文件,日记是输入,陪伴档案是长期记忆,人设是一篇笔记,没有数据库,也没有向量库。发给 Telegram 机器人的文字、图片、链接直接进当天日记;想聊天时,它先读你这一周的日记再开口,聊完把新知道的事写回档案,回复还能念成语音发给你。模型可选 Claude Code、Anthropic API 或 OpenAI 兼容接口(DeepSeek、本机 Ollama 都行)。已上架 Obsidian 官方社区插件市场。

v1.4.0当前版本 · 2026-11-04 更新看更新记录
GitHub上手指南回作品集
💬 Telegram Companion:读过你日记的陪伴机器人
7天日记
每次回复前先读
4层记忆
都是库里的文件
3种模型后端
还能再设一个备用
12个版本
不到四周迭代出来
FEATURES · 它能做什么

它能做什么

按用到的场景分成几类。

收件箱

随手发,直接进日记

  • 文字、图片、链接、转发来的消息,发给机器人就记进当天日记,不用打开 Obsidian
  • 消息里的列表、标题照原样排好;能记下收到的时刻,给转发来的消息挂标签
  • 电脑睡着时发的消息,醒来后补上
陪聊

先读过你的日记再开口

  • 每次回复前读近一周的日记:今天最细,越早越粗,看你一直在做什么、最近在做什么、接下来打算做什么
  • 你说「好累」,它知道你累在哪;你说「搞定了」,它知道你搞定的是什么
  • 记得自己最近说过什么,提过的事、夸过的点不再重复
记忆

聊得越久,越了解你

  • 四层记忆:你手写的长期画像、自动维护的近况、这周的对话、这次对话
  • 聊完把新知道的事并进近况,每周日整段重写一次
  • 长期画像只有你点 ✅ 才改;对话原文一周后删掉,只留摘要
人设与口癖

一个站在你这边的角色

  • 默认是一个爱你、关心你的角色,不唠叨、不催、不说教;写一篇笔记就能让它扮演别人,几个人设随时切换
  • 口癖:「在吗」「呱呱」这类话不等模型,马上回一句
  • 自定义命令:一个词、几个字母或一个符号,就能记到指定笔记,或带着日记问模型
语音

回复念给你听

  • 陪聊的回复能再发一条 Telegram 语音:每条下面一个 🔊 按钮,点了才念;或者每条都念
  • 发 /voice 进入语音模式,每句都只用语音回,语音下面能展开看文字
  • 不绑定配音引擎:填一条配音命令就行,本机模型、云端配音(比如 BreezeBlue)、克隆的自己的声音都能接
联动

和螺旋日程一起用

  • 发「?」回一张今天的螺旋图:过了多少、还剩多少、待办排不排得下
  • 「起了」「睡了」记作息,「去吃饭了」自动暂停正在做的事
  • 「睡了」收工时回一条小结:今天做成了什么、明天先做哪件
STACK · 技术栈

用到的技术

怎么搭起来的,用了哪些技术。

文件系统 + Agent

文件系统就是它的记忆

  • 上下文和记忆都是库里的 Markdown:日记是输入,陪伴档案是长期记忆,人设是一篇笔记;没有数据库,也没有向量库
  • 什么时候写回由 Agent 判断:聊完把新事实并进档案的「近况」,每周日整段重写;要改长期画像,先发按钮问你
  • 这些文件你打开就能看、能改,改了下一条消息就照新的来
模型与上下文

每次回复带什么

  • 三种后端:Claude Code 命令行(claude -p)、Anthropic Messages API、OpenAI 兼容的 Chat Completions;选本机 Ollama,日记不出电脑
  • 日记按天分级截取:今天最多 120 行,前两天各 50 行,再往前四天各 30 行;加上陪伴档案和近一个月的情绪话
  • 备用后端:主后端额度用完、超时、登录失效时重试一次,之后 10 分钟直接走备用,回复末尾注明是谁回的
工程与边界

插件、机器人和发布

  • TypeScript 约 6700 行;grammY 接 Telegram Bot API,长轮询收消息,配对码绑定只认你自己;语音回复调本机的配音命令,出 OGG Opus 直接发
  • 写死在代码里的边界:只回应你自己的事,不提别人的隐私;人设一律成年,不写露骨内容,钱、医疗、法律上的事不替你拍板
  • eslint-plugin-obsidianmd 跑插件市场同一套审核规则;Node 自带的测试框架,202 个用例;GitHub Actions 发版,附构建来源证明
CHANGELOG · 更新记录

从 v1.0.0 到 v1.4.0

每个版本做了什么,新的在上面。

  1. v1.4.0当前版本
    • 语音回复:陪聊回复能再发一条 Telegram 语音,🔊 按钮点了才念,或者每条都念;配音引擎不绑定,填一条配音命令就行
    • 语音模式:发 /voice,每句都只用语音回,语音下面能展开看文字
    • README 加一个用 BreezeBlue 命令行配音的例子
  2. v1.3.0
    • 自定义命令:触发词自己定,可以当内置指令、记到指定笔记,或带着日记问模型
    • 只有明显想聊的时候才进对话模式:整句说进入的说法、发 /chat,或回复它的某条消息
    • README 加「记忆」一节:四层记忆各存在哪、留多久、做不到什么
  3. v1.2.1
    • 备用后端的 key 和模型直接填在它下面,不用把主后端切过去再切回来
  4. v1.2.0
    • 界面跟着 Obsidian 的语言显示中文或英文,附英文上手指南
  5. ……

    中间还有 5 条更新,略

  6. v1.0.1 – 1.0.2
    • 标成只在桌面端运行
    • 陪伴档案模板开头加一组选填的基本信息
  7. v1.0.0
    • 第一版:在收件箱插件 Telegram Inbox 上加对话模式、陪伴档案、口癖和人设,模型后端可切换;中文设置界面

对哪个项目感兴趣,想提意见,欢迎联系

133 5781 1224