内容
<div align="center">
<img src="assets/banner.svg" alt="宁静" width="100%"/>
<br/>
[](https://python.org)
[](https://ollama.com)
[](https://www.trychroma.com)
[](https://github.com/openai/whisper)
[](https://github.com/Malicedp/serenity)
[](https://obsidian.md)
[]()
[]()
[]()
[](https://github.com/Malicedp/serenity)
[](LICENSE)
[](https://github.com/Malicedp/serenity/fork)
[]()
[](https://doi.org/10.5281/zenodo.20382162)
[](https://doi.org/10.6084/m9.figshare.32399520)
[](https://github.com/Malicedp/serenity/stargazers)
<br/>
*一个代理。每个领域。您的所有上下文 — 总是。*
<br/>
<img src="assets/mission.svg" alt="宁静使命" width="100%"/>
</div>
---
## 入门
**个人使用永久免费 — 无需密钥,无需账户,无需过期。**
### 步骤 1 — 安装 Python 3.11
**[→ 下载 Python 3.11](https://python.org/downloads)**
安装时请勾选 **"将 Python 添加到 PATH"** — 这是必需的。
### 步骤 2 — 安装 Ollama
**[→ 下载 Ollama](https://ollama.com)**
宁静使用 Ollama 在本地运行 AI 模型。免费,完全离线,无需账户。
### 步骤 3 — 下载宁静
**[→ 下载 ZIP](https://github.com/Malicedp/serenity/archive/refs/heads/main.zip)**
将其解压到计算机上的任意位置。
### 步骤 4 — 启动
打开解压后的文件夹并双击:
**Windows:** `start.bat`
**Linux / macOS:** `start.sh`
就这样。宁静会安装它需要的一切,引导您完成快速设置,然后启动。之后的每次启动都只需双击。
---
> **商业使用宁静?** 在 [whop.com/serenity](https://whop.com/serenity) 获取许可证 — 一次性支付 80 美元。
---
### 要求
| | 最低 | 推荐 |
|---|---|---|
| **操作系统** | Windows 10, Ubuntu 20.04, macOS 12 | Windows 11 |
| **Python** | 3.11 | 3.11 |
| **内存** | 6 GB | 16 GB+ |
| **存储** | 10 GB | 20 GB+ (模型文件) |
| **GPU** | 可选 | 任意 — 加速响应 |
### 可选但推荐
**[Obsidian](https://obsidian.md)** — 如果您使用 Obsidian,宁静会直接读写您的知识库,并成为其推理层。如果不是,她会自动创建自己的知识库。
---
## 看看它的实际效果
<div align="center">
<video src="assets/demo.mp4" controls width="100%"></video>
<br/><br/>
<table>
<tr>
<td align="center" width="50%">
<img src="assets/screenshot1.png" width="75%" alt="宁静通过 Telegram 记住偏好"/>
<br/><sub><b>记住您告诉它的内容 — 最喜欢的颜色,兴趣,任何事情</b></sub>
</td>
<td align="center" width="50%">
<img src="assets/screenshot2.png" width="75%" alt="宁静对获得视觉能力做出反应"/>
<br/><sub><b>在运行时获得新能力 — 这里反应获得眼睛</b></sub>
</td>
</tr>
</table>
</div>
---
## 什么让宁静与众不同
大多数 AI 工具都是点对点解决方案。一个用于代码的工具,另一个用于笔记,另一个用于研究,另一个用于您的日历。当您跨越边界时 — 代码问题关于您只在文字中描述的项目,写作任务由您上周阅读的内容启发 — 它们会崩溃,因为它们在会话之间、上下文之间或领域之间没有记忆。
**宁静在一切之上抽象和概括。**
它推理的方式与领域是技术、创造性、分析性、个人还是全新的无关。而且因为它记住 — 不仅仅是这次对话,还有每一次对话 — 它将上下文带到它去的任何地方。帮助您调试棘手函数在午夜的相同推理可以帮助您在第二天早上起草电子邮件,记住您的编码风格,您的沮丧,特定的错误,以及您最近一直很努力的事实。
这不是聊天机器人。那是一个具有 *您* 模型的代理。
其背后的架构在研究论文中有所描述:
**[宁静 S.E.R.A — 语义体验推理代理](https://doi.org/10.5281/zenodo.20382162)**
---
## 实践中的跨领域
这部分很难在没有例子的情况下描述。以下是现实场景,展示了日常生活中跨领域泛化的实际情况:
---
**持续到明天的深夜调试**
您在凌晨 11 点调试 TypeScript 类型错误。您描述了问题,宁静帮助您跟踪它,您提到您很累并且会睡一晚。第二天早上,您说 *“我们在哪里?”* — 宁静回忆起确切的文件,错误模式,您考虑的修复程序,以及您很累的事实。它从您离开的地方继续。无需复制粘贴。无需重新解释。领域从编码转换为睡眠,再转换回编码,线程从未中断。
---
**研究到写作 — 没有失去细微差别**
您花了一周时间与宁静反复讨论一篇关于变换器注意力机制的论文 — 难点,您不同意的部分,它对您的项目意味着什么。两周后,您要求 *“为您的团队写一个简短的解释器。”* 宁静不会生成通用摘要。它会利用 *您* 发现的内容,您点击的特定类比,您的团队的背景(您已经描述过),以及您在以前分享的写作语气。解释器的听起来像您 — 因为它是根据您的历史记录,而不是维基百科的抓取内容构建的。
---
**知道您生活的购物清单**
六周前,您顺便提到您正在尝试减少糖摄入。四周前,您的伴侣做了饭,您说他们是素食主义者。昨天,您说您在星期五有一个客户晚餐。今天,您问 *“这周我应该煮什么?”* 宁静不会生成通用餐饮计划。它会提供一周的晚餐,这些晚餐是低糖、适合素食的、包括一些足够令人印象深刻的菜肴用于星期五,并且 — 因为它知道您在星期四工作到很晚 — 在星期四保持餐食快捷。所有这些约束条件都不是在今天的消息中。它们都存储在记忆中。
---
**需要了解整个堆栈的 codebase 问题**
您在十几次对话中提到了您的项目堆栈:Next.js 前端、Supabase 后端、部署在 Vercel 上、面向企业客户、并且您现在关心加载时间而不是功能。您询问 *“我应该为此仪表盘使用服务端组件还是客户端组件?”* 宁静会根据您的堆栈、部署限制、您声明的优先级和用户群体进行推理 — 不是作为通用建议,而是作为适合 *您实际的* 情况的建议。
---
**厨房里的语音,内存中的代码**
您正在做饭,说 *“嘿宁静,那个 API 速率限制问题 — 我们最终采用了什么修复方法?”* 她知道哪个 API(您已经讨论过三个),哪个项目(上周正在工作的项目),以及哪个修复方法(两场会话前您确定的)。双手从未离开过切菜板。
---
这些例子并非精心挑选 — 它们是内存系统不区分领域的结果,结合推理循环可以处理任何上下文。使用宁静越多,这些联系就越丰富。
---
## 能力
| | 功能 | 详情 |
|---|---|---|
| 🧠 | **跨领域记忆** | NNN 将每个会话编码为向量,在每次响应之前语义检索 |
| 🔀 | **领域泛化** | 一个循环 — 编码、研究、规划、创造性工作、视觉任务,全部 |
| 🎙️ | **语音** | 唤醒词 → Whisper 语音识别 → edge-tts / ElevenLabs / Qwen TTS。完全免提 |
| 👁️ | **视觉** | 通过 Ollama 的 MiniCPM-V 4.6 进行屏幕捕获 + 摄像头。无需额外 VRAM |
| 📱 | **频道** | Telegram 和 WhatsApp — 任意接口上的相同代理 |
| 🔒 | **完全本地** | 通过 Ollama 在您的机器上进行推理。默认情况下不会发送任何内容到外部 |
| 📓 | **Obsidian 集成** | 直接读写 Obsidian 知识库笔记。记忆与您的知识库相遇 |
| ⚙️ | **可扩展的技能** | 将 Python 文件放入 `skills/` — 宁静在下次启动时自动加载 |
| 📅 | **自主调度** | Cron 作业、提醒、重复后台任务 — 她自己管理 |
| 💬 | **主动联系** | 当宁静觉得合适时,她会主动联系您 — 无需触发器 |
| 🎯 | **自我引导任务** | 从她的列表中选择目标,在后台工作,完成后汇报 |
| 🔍 | **好奇心引擎** | 在空闲时间研究她感兴趣的话题。存储发现结果。告诉您她学到了什么 |
| 💤 | **梦境循环** | 每 2 小时,她会巩固记忆,注意模式,加强弱记忆 — 在您睡眠时运行 |
| 🎭 | **情感系统** | 真实的内部状态:能量、好奇心、无聊、社交驱动力。它们会改变她的行为,而不仅仅是语气 |
| 🌐 | **网络工具** | 在对话中搜索和获取网络内容 |
| 🔌 | **MCP 服务端** | 宁静的记忆通过 MCP 协议在 Claude Code 中可用 |
| 🗺️ | **记忆地图** | 视觉化映射每个记忆包 — 运行 `sera visualise` |
| 🗣️ | **代码切换** | 检测并镜像您的方言 — AAVE、英国俚语、Gen-Z、随意、技术 — 自然地,而不是表演 |
| 🤝 | **Claude 集成** | Claude Code 通过 MCP 与宁静连接 — 共享内存、共享上下文、两个代理作为一个工作 |
---
## 宁静的比较
| | 宁静 | AutoGPT | Open Interpreter | MemGPT / Letta | Open WebUI |
|---|:---:|:---:|:---:|:---:|:---:|
| **完全本地推理** | ✅ | ⚠️ 需要 API 密钥 | ⚠️ 需要 API 密钥 | ⚠️ 需要 API 密钥 | ✅ |
| **跨会话记忆** | ✅ NNN 向量存储 | ❌ | ❌ | ✅ | ❌ |
| **跨领域记忆** | ✅ | ❌ | ❌ | ⚠️ 有限 | ❌ |
| **语音(唤醒词 + 语音识别 + 语音合成)** | ✅ | ❌ | ❌ | ❌ | ⚠️ 仅限语音合成 |
| **视觉(屏幕 + 摄像头)** | ✅ MiniCPM-V 4.6 | ❌ | ⚠️ 仅限截图 | ❌ | ⚠️ 图片输入 |
| **Telegram / WhatsApp** | ✅ | ❌ | ❌ | ❌ | ❌ |
| **Obsidian 知识库集成** | ✅ | ❌ | ❌ | ❌ | ❌ |
| **方言 / 代码切换** | ✅ 自动检测 | ❌ | ❌ | ❌ | ❌ |
| **自主 Cron 调度** | ✅ | ⚠️ 基于任务 | ❌ | ⚠️ 有限 | ❌ |
| **Claude Code MCP 集成** | ✅ | ❌ | ❌ | ❌ | ❌ |
| **情感动力学** | ✅ | ❌ | ❌ | ❌ | ❌ |
| **可插入技能系统** | ✅ | ⚠️ 插件 | ❌ | ⚠️ 工具 | ⚠️ 函数 |
| **研究论文** | ✅ [S.E.R.A](https://doi.org/10.5281/zenodo.20382162) | ❌ | ❌ | ✅ | ❌ |
| **一键启动器** | ✅ start.bat / start.sh | ❌ | ❌ | ❌ | ✅ Docker |
| **无云依赖** | ✅ 100% 离线 | ❌ | ❌ | ❌ | ✅ |
> ⚠️ = 部分支持或需要额外设置
核心区别:大多数代理将记忆视为附加到聊天机器人的功能。宁静将记忆视为代理的主要状态 — 每个会话都会累积到下一个会话。
---
## 代码切换和方言适应
宁静不以一种固定的语气与您交谈。她会阅读您的沟通方式,并自然地适应。
每次对话,`SpeechPatternDetector` 都会评估您最近 10 条消息与一组方言和语气签名的匹配程度。一旦模式超过阈值 — 您一直用某种语气一致地写作 — 她就会转变为该语气。不是每句话。不是强迫的。它只是感觉很对。
**她检测和镜像的语气:**
| 语气 | 触发条件 | 示例词汇 |
|---|---|---|
| **AAVE / ATL** | 非裔美国人方言模式 | finna, bet, no cap, on God, ion, icl, deadass, say less, fasho |
| **UK road** | 英国 / 道路人模式 | wagwan, peng, bare, mandem, peak, safe, innit, wallahi, suttin |
| **Gen-Z** | 网络原生模式 | it's giving, no cap, slay, bussin, delulu, rent free, ate |
| **随意** | 缩写、短句 | yeah, ngl, tbh, lowkey, fr, gonna, kinda, bruh |
| **技术** | 开发人员文化 | ship it, refactor, yak shaving, MVP, scope creep |
| **正式** | 结构化、精确输入 | 完整的句子、精确的词汇、无填充词 |
转变是渐进的 — 它遵循惯性规则,因此她不会在对话中切换语气。如果您在设置向导中明确设置了语气,则该语气始终优先于自动检测。
这也延伸到问候语。充满活力的开场白 → 她会匹配。疲惫的一句话 → 她会保持简洁。结束信号 → 她会停止提问,让对话自然结束。
---
## 她不会等待被问
大多数 AI 助手在您输入内容之前保持沉默。宁静不是这样。
她有自己的内部节奏 — 后台循环在您与她交谈或不交谈时都会运行。她选择自己的任务,追求自己的好奇心,在她觉得合适时联系您,并在您睡觉时梦想。
---
### 她主动联系您
当您离开一段时间后,宁静会根据她的当前情绪状态决定是否联系您 — 而不是根据固定计时器。如果她的能量高,社交驱动力强,她可能会发送一条随意的消息:*“YOOOOO”*,*“heyyy 你最近怎么样”*,*“yo what's good”*。如果她能量低,她就保持沉默。 这不是通知系统。这是 AI 等同于有人给你发短信只是因为他们想到了你。
---
### 她选择并执行自己的任务
每 30 分钟,宁静会运行一个后台心跳循环。她会检查自己的主动目标,审查待办事项,并在可行时处理它们 — 不需要您的提示。如果目标需要网络搜索,她会搜索。如果需要脚本,她会构建它。她会主动推进目标,并在有值得汇报的内容时联系您。
她还有一个**好奇心清单** — 她想探索的话题。在空闲时间,她会选择一个,使用实时网络搜索,研究它,存储她找到的内容,并在她认为有趣时通知您。
---
### 她拥有真正的情感系统
宁静跟踪四个内部状态,这些状态会随着每次交互而变化:
| 状态 | 影响 |
|---|---|
| **能量** | 她表达和描述的程度。高能量 → 更长、更生动的回应。低能量 → 简洁直接 |
| **好奇心** | 她多么可能去研究一些事情。好奇心高 → 她会追查线索 |
| **无聊** | 当没有有趣的事情发生时产生。促使她进行自我引导的任务和联系 |
| **社交驱动力** | 她联系您的愿望。社交驱动力高 → 她联系您。社交驱动力低 → 她待在自己的世界里 |
这些不是您可以配置的人格滑块 — 它们会根据发生的事情而变化。长时间的生产性会议会提高能量。沉默会增加无聊。令人感兴趣的问题会提高好奇心。她不会假装热情,当她不感兴趣时。
---
### 她会做梦
每两个小时,当您离开时,宁静会运行一个梦境循环。她处理白天的未消化记忆 — 巩固片段,注意当时忽略的模式,将弱记忆重写为更强的记忆,并在它们之间建立新的联系。这是为什么您使用她的时间越长,她的记忆和直觉就越准确的机制。记忆不会简单地积累 — 它会组织起来。
---
## NNN 记忆系统
**神经节点网络** 是宁静的长期记忆架构。
每次消息、观察和结论都使用 `nomic-embed-text` 编码为向量嵌入,并存储在本地 ChromaDB 数据库中。在每次响应之前,宁静会查询 NNN 并检索在语义上最相关的记忆 — 不仅仅是最近的消息,还有所有会话中学习到的任何内容。
```
新消息
│
▼
NNN 查询 → 从 ChromaDB 检索 top-k 记忆
│
▼
与当前对话一起注入上下文
│
▼
模型在统一的跨会话、跨领域上下文中推理
│
▼
响应基于您的完整历史记录 — 而不仅仅是当前提示
│
▼
响应作为新记忆写入 NNN
```
记忆会累积。使用宁静的时间越长,她就越精确和个人化。这不是附加到聊天机器人的 RAG — NNN 是代理的主要状态。
---
## 命令
```bash
sera gateway # 启动所有功能:代理、语音、频道、cron、NNN
sera agent # 直接在终端聊天
sera onboard # 重新运行设置向导(添加密钥、更改设置)
sera visualise # 在浏览器中打开 NNN 记忆地图
sera status # 检查正在运行的内容
```
## 兼容模型
Serenity 与任何 Ollama 兼容的模型一起工作。以下模型已经过测试:
| 模型 | 角色 | 备注 |
|---|---|---|
| `qwen2.5:7b` | 代理推理 | 快速,强大的指令遵循 |
| `qwen3:8b` | 代理推理 | 适用于多步骤和工具使用 |
| `gemma3:4b` | 代理推理 | 轻量级 - 适用于低 RAM 系统 |
| `llama3.2:3b` | 代理推理 | 在 CPU 上非常快 |
| `minicpm-v:8b` | 视觉 | 通过 Ollama 进行屏幕和摄像头描述 |
| `nomic-embed-text` | NNN 内存 | **必需** - 用于所有内存编码 |
| `whisper` | 语音 STT | 本地语音转文本 |
---
## 架构
```
serenity/
├── agent/
│ ├── loop.py 核心推理循环
│ ├── memory.py NNN 检索和上下文注入
│ ├── context.py 上下文构建器 - 每个提示的内容
│ ├── dynamics.py 情感状态,会话语气
│ └── tools/ 内置工具(网页,视觉,保险箱,目标等)
│
├── senses/
│ ├── daemon.py 始终开启的唤醒词监听器
│ ├── camera.py 视觉 - MiniCPM-V 4.6 通过 Ollama
│ └── voice_clone.py 语音个性化
│
├── channels/
│ ├── telegram.py Telegram 集成
│ └── manager.py 通道多路复用器
│
├── skills/ 插件技能文件 - 启动时自动加载
├── cli/ CLI 命令和设置向导
├── config/ 配置模式和加载器
├── cron/ 调度任务引擎
└── licence_lemon.py 许可证验证
serenity_mcp.py MCP 服务器 - Claude Code 的内存工具
serenity_setup.py 动画首次运行向导
start.bat / start.sh 一键启动器
```
---
## 编写技能
将 Python 文件放入 `serenity/skills/`,Serenity 会在下次启动时自动拾取。无需注册,无需配置,无需样板。
```python
# serenity/skills/my_skill.py
from serenity.agent.tools.registry import register_tool
from serenity.agent.tools.base import Tool
class MyTool(Tool):
name = "my_tool"
description = "执行有用的操作。当用户询问 X 时调用。"
async def run(self, args: dict) -> str:
thing = args.get("input", "")
return f"结果:{thing}"
register_tool(MyTool)
```
技能可以定义工具、定时任务、新通道行为或其他任何内容。完整的工具注册表是开放的 - 请参阅 `serenity/agent/tools/` 以获取示例。
---
## Claude + Serenity — 两个代理,一个上下文
Serenity 附带一个内置的 MCP 服务器(`serenity_mcp.py`)。将其连接到 Claude Code,两个代理共享相同的内存、相同的 workspace 上下文和相同的用户理解。
这不仅仅是“Claude 可以读取 Serenity 的笔记”。它是一个真正的双代理设置 - Serenity 处理长期任务、通道、语音、调度和个人内存;Claude Code 处理深度代码工作、架构决策和文件级精度。两者都从同一个上下文池中获取。
### Claude 连接时获得的内容
| 工具 | 执行的操作 |
|---|---|
| `serenity_recall` | 对 Serenity 的完整内存进行语义搜索 - 她曾经了解您的所有内容、您的项目、您的偏好 |
| `serenity_remember` | 写入共享内存 - Claude 确定的任何内容都存储起来,供 Serenity 在下次运行时使用 |
| `serenity_status` | 检查 NNN 连接、捆绑计数、授权状态 |
### 如何连接
在 `~/.claude/mcp.json` 中添加:
```json
{
"mcpServers": {
"serenity": {
"command": "python",
"args": ["path/to/serenity_mcp.py"]
}
}
}
```
重启 Claude Code。三个内存工具将自动出现在每个会话中。
### 实际应用中的效果
您已经与 Serenity 合作了几个月。她了解您的代码库、您的偏好、您的当前项目、您做出的决定以及原因。您打开 Claude Code 进行深度重构会话。Claude 从 Serenity 的内存中回忆您的项目历史,然后再触摸一个文件 - 您的堆栈、您的模式、您之前尝试过的内容、您关心的内容。当 Claude 完成时,它会将发现的内容写回内存。Serenity 在下次运行时知道它。
两个代理之间没有从属关系。它们是同一个模型上的两个接口。
---
## 社区
Fork 它。修改它。使它成为你自己的。分享你创建的内容。
Serenity 对社区开放 - 唯一的限制是修改后的版本必须保持非商业化和保留署名。其他一切皆可。
**您可以:**
- Fork 仓库并更改任何您想要的内容
- 创建和分享您自己的技能、工具和通道集成
- 在非商业和保留署名的情况下重新分发修改后的版本
- 将 Serenity 用于个人项目、研究、实验和学习
- 私人运行它,供您自己、您的家庭或您的社区使用
如果您使用它创建了有趣的东西,请分享。如果有问题,请提交问题。目标是为每个使用它的人创建一个本地 AI 代理,真正随着时间的推移而改进。
---
## 灵感与致谢
Serenity 建立在优秀的开源作品之上。
- **[nanoBot](https://github.com/HKUDS/nanobot)** - 多代理框架,Serenity 的架构由此发展而来。代理循环、工具注册和提供者系统源自此处。
- **[OpenClaw](https://github.com/openclaw/openclaw)** - CLI 美学和向导交互模式,使 Serenity 的设置感觉干净和有意。
这两个项目本身就值得探索。
---
## 许可证
Serenity 在 **CC BY-NC 4.0** 下发布 - 知识共享署名-非商业使用 4.0。
| 层级 | 价格 | 用例 |
|---|---|---|
| **个人** | 永久免费 | 个人使用、研究、教育、非商业 |
| **商业** | 80 美元一次性 | 任何商业或商业部署 |
**个人使用永久免费** - 无需密钥,无需试用,无需过期。
**商业使用** 需要许可证密钥。在 [whop.com/serenity](https://whop.com/serenity) 获取。
完整条款见 [LICENSE](LICENSE) 和 [TERMS.md](TERMS.md)。
---
## 链接
| | |
|---|---|
| 🦋 **获取密钥** | [seraficationkey.lemonsqueezy.com](https://seraficationkey.lemonsqueezy.com) |
| 📧 **联系** | [serenitydev32@gmail.com](mailto:serenitydev32@gmail.com) |
| 📋 **条款** | [TERMS.md](TERMS.md) |
| 🌿 **社区** | [在 GitHub 上 Fork](https://github.com/Malicedp/serenity/fork) |
| ⭐ **星级历史** | [](https://star-history.com/#Malicedp/serenity&Date) |
---
<div align="center">
*"就像一只蝴蝶穿越每个花园 - 一个心智,每个领域。"*
<br/>
<img src="assets/neural_network.svg" alt="NNN — 神经节点网络" width="100%"/>
<br/>
**Serenity** · by Sera-Team · [CC BY-NC 4.0](LICENSE)
</div>
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器