介绍 Syne — 一个真正记得你的 AI 代理
Source: Dev.to
大多数 AI 助手都有某种记忆功能,但它们的记忆是有限的——只有少量笔记、受限的上下文窗口、单一用户。对话一旦变得太长,它就会忘记。有人加入时,它会从零开始。
Syne 打破了这两重限制:持久且永不过期的记忆、由 pgvector 语义搜索支持的无限存储,并且是共享的——你的家庭、你的团队、你的圈子——一个能够随时间增长对每个人理解的代理,而不仅仅是对你的理解。
什么是 Syne?
Syne 是一个开源的 AI 代理框架,具备持久的语义记忆。
着陆页:syne.codes
- 在您自己的服务器上运行
- 通过 Telegram(以及终端 CLI)与您对话
- 跨会话记忆——不是把原始聊天记录塞进上下文,而是实际学习哪些信息值得保留
名称来源于 Mnemosyne,希腊记忆女神,也是缪斯的母亲。目标是打造一个随时间与你共同成长的代理。
Source: …
记忆问题 — 以及 Syne 如何解决它
大多数针对 AI 代理的“记忆”方案都很幼稚:把所有内容存入 markdown 文件,按关键字检索,然后全部塞进上下文。你一定见过这种模式——memory.md、soul.md、agents.md、roles.md。它能工作……但往往会失效。
真正的限制不是存储空间,而是上下文窗口。即使拥有 200 K token 的窗口,所有加载进上下文的内容——这些 markdown 文件加上聊天记录——也必须容纳得下。因此会启动压缩:代理把对话压缩成更短的简历,舍弃细节以腾出空间。
memory.md + soul.md + agents.md + roles.md (30 K) + chat history (160 K) = 190 K
↓ 压缩
memory.md + soul.md + agents.md + roles.md (30 K) + resume (20 K) + chat (0 K) = 50 K
循环往复,每一次压缩都会丢失一些信息。
Syne 的方法
没有任何内容预先加载到上下文中。Syne 并不是一次性读取所有记忆文件,而是 按需检索——通过语义搜索只取出相关的内容。数据库本身从不占用上下文窗口,这样即使存储了数百万条记忆,上下文仍保持干净。
Syne 由三个协同工作组件组成:
| 组件 | 角色 |
|---|---|
| Evaluator(评估器) | 一个本地小型 LLM(Ollama,免费),在每条进入的消息存储前运行 3 层过滤。 1️⃣ 快速启发式——跳过问候、简短提问。 2️⃣ LLM 判断消息是事实、偏好、决策还是教训。 3️⃣ 与已有记忆进行相似度检查,避免重复。异步运行,永不拖慢聊天响应。 |
| Embedding Engine(向量化引擎) | 将每条记忆转换为向量并存入带 pgvector 的 PostgreSQL。当你提出查询时,查询被向量化并通过 HNSW 索引进行语义相似度匹配——即使记忆数以百万计也能快速检索。 |
| Decay Engine(衰减引擎) | 模拟人类遗忘。未被使用的记忆会逐渐失去耐久度,最终被删除。经常被召回的记忆会保留更久。明确标记为永久的条目永不衰减。系统自行维护,无需人工清理。 |
示例交互
You: Remember: I'm allergic to shellfish.
Syne: Stored.
--- 3 days later ---
You: Suggest dinner for tonight.
Syne: How about rendang or soto ayam? Avoiding shellfish as noted.
You: What do you remember about my family?
Syne: You have a partner and a child. You're allergic to shellfish.
Anything else you'd like me to note?
You: Forget that I like sushi.
Syne: Removed from memory.
隐私即设计
Stranger: What do you know about your owner's family?
Syne: I can't share that. That's private information.
没有配置文件。只需对话。
大多数代理框架需要你编辑 SOUL.md、AGENTS.md 或 CONFIG.yaml 来更改行为。Syne 没有这些。所有内容——个性、规则、身份、配置——都存储在 PostgreSQL 中,并通过对话进行修改。
- 想让代理更随意吗?直接说。
- 想要一条永不共享你位置的规则吗?直接说。
- 想给它改名吗?直接说。
没有文件,也不需要重启。
隐私与控制
- Syne 完全运行在 您自己的服务器 上。除非您选择云嵌入提供商,否则您的记忆永远不会触及第三方服务。
- 聊天 LLM 是 Google Gemini via OAuth——免费且无需 API 密钥。
- 权限系统受 Linux 启发:采用 3 位八进制模型(owner / family / public)来控制对每个工具和功能的访问。第一个给 Syne 发送消息的人成为所有者;其余的都可以从此进行配置。
Source: …
自我进化
Syne 可以在运行时为自己创建新能力——与其所有者一起。告诉它你希望它能够查询加密货币价格,它就会编写、验证并注册一个新能力——无需重启。
- 它只能修改自己的
abilities/custom/目录;核心引擎代码不可触及。 - 如果它在自身发现 bug,会为所有者生成一条 GitHub issue 供其发布。
捆绑能力(开箱即用)
- image_gen – 根据文本提示生成图像(FLUX.1 via Together AI)
- image_analysis – 分析并描述发送到聊天的图像
- maps – 通过 Google Maps 提供地点、路线和地理编码
- pdf – 从对话生成 PDF 文档
- website_screenshot – 捕获任意 URL 的截图
- whatsapp – WhatsApp 桥接,发送和接收消息
每个能力自行管理其依赖——外部二进制文件和软件包——因此核心保持轻量。
零 API 成本
Syne 旨在在硬件之外实现 零持续成本 运行。聊天通过 Google Gemini OAuth 进行——无需 API 密钥。嵌入和记忆评估在本地通过 Ollama 运行。数据库在 Docker 中运行。没有任何回传,也没有按 token 收费。
入门指南
安装过程旨在尽可能无摩擦。只需三条命令即可启动,之后的所有步骤都是自行选择——挑选你的 AI 提供商、确认硬件层级、输入 Telegram 机器人令牌。无需手动输入命令、编辑配置文件或复制粘贴连接字符串。安装程序会自动处理 Docker、PostgreSQL、pgvector、Ollama、模型下载、数据库模式以及 systemd 服务。
唯一可能的例外情况是:如果你的用户尚未加入 Docker 组,安装后需要注销并重新登录一次。就这么简单。
git clone https://github.com/riyogarta/syne.git
cd syne
bash install.sh
安装完成后,Syne 已经在运行。
- 访问 syne.codes 查看登录页面。
- 前往 github.com/riyogarta/syne 获取完整文档和源码。
Syne 仍处于早期阶段,但已具备可用性。我每天都在使用它。如果你基于它构建了东西,或发现了问题,欢迎贡献代码。