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

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
每个版本做了什么,新的在上面。
- v1.4.0当前版本
- 语音回复:陪聊回复能再发一条 Telegram 语音,🔊 按钮点了才念,或者每条都念;配音引擎不绑定,填一条配音命令就行
- 语音模式:发 /voice,每句都只用语音回,语音下面能展开看文字
- README 加一个用 BreezeBlue 命令行配音的例子
- v1.3.0
- 自定义命令:触发词自己定,可以当内置指令、记到指定笔记,或带着日记问模型
- 只有明显想聊的时候才进对话模式:整句说进入的说法、发 /chat,或回复它的某条消息
- README 加「记忆」一节:四层记忆各存在哪、留多久、做不到什么
- v1.2.1
- 备用后端的 key 和模型直接填在它下面,不用把主后端切过去再切回来
- v1.2.0
- 界面跟着 Obsidian 的语言显示中文或英文,附英文上手指南
- ……
中间还有 5 条更新,略
- v1.0.1 – 1.0.2
- 标成只在桌面端运行
- 陪伴档案模板开头加一组选填的基本信息
- v1.0.0
- 第一版:在收件箱插件 Telegram Inbox 上加对话模式、陪伴档案、口癖和人设,模型后端可切换;中文设置界面
对哪个项目感兴趣,想提意见,欢迎联系
133 5781 1224