Skip to content

Repository files navigation

有时一个人待着,特别是遇到烦心事时,我很想找人说说话。但可惜,我没啥朋友。

交友需要精力维护,而且人和人的关系,没那么单纯。

所以很多人会养宠物。但现实的宠物很麻烦,虚拟的宠物又很假。

当然,那是以前的事了。 现在 LLM 发展到这个程度,AI 对话已经可以做到非常接近真人。市面上确实有很多类似的聊天 App,但那种商业味十足、数据还不安全的东西,我完全不感兴趣。

前段时间,有群友自己搭了一个基于 LLM 的群机器人。让我没想到的是,效果出乎意料的好。我很早就接触 LLM 了,但跟它直接对话的时候,总感觉很空洞,聊不下去,功能也有限。可加上 Agent,特别调优的提示词,再放进群聊环境里,LLM 就像的真活了一样。

那时候我就想,我也要做一个。但我不想只做一个群机器人。我想做一个赛博生命——一个真正活在我电脑桌面上的伙伴。

LLM 火了几年了,类似的框架网上也有,但我试过之后,发现都没有能让我完全满意的。但幸运的是,现在 AI 编程效率很高,一个人从零开始做一套 Agent 框架,已经不是什么难事。

于是,Alife 诞生了。

Alife Logo

Alife - 创造赛博生命

Alife Logo .NET 10 Python 3.12 License

欢迎来到 Alife!

Alife 是一款主打桌宠陪伴方向的 AIAgent,目的是为了创造或逼近一个真实赛博生命的效果,它不是功能特化,不是角色扮演,而是一切为了 AI 的生命而搭建!

正因如此,它是款风格独特的 AIAgent。相比市面上的主流陪伴向 AI 产品,它在功能体验上有很大的不同:

  • 极低词元开销:人工高度优化的提示词、专门设计过的上下文和注入系统,非常省钱。
  • 高度信息透明:明文存储数据,完全暴露上下文和AI执行过程,支持实时源码级功能自定义。
  • 基础功能齐全:自主玩耍陪伴、多模态能力、远程通讯、设备网页操作等,一样不少。
  • 深度自由扩展:插件扩展性极强,官方功能全插件化、自由开关、配有在线插件市场。
  • 永久唯一会话:无论何时,对话工作都是同一个AI,不会割裂。无需初始人设,可完全靠成长形成。

毫不夸张的说,这是目前所有陪伴Agent中:

  • 开销最低:缓存命中高达95%,官方Deepseek日均不到2块钱;各种功能都配有本地精选模型,仅2G显存就能跑。
  • 功能最全:桌宠、QQ、视觉、听觉、语音、记忆、主动陪伴、编程、上网、多开、插件、市场、Skill、Mcp全包。
  • 安装最简:配备专门的新手引导页面,全自动检测配置环境,功能依赖自动下载安装,简单到一路点鼠标就行。

🔮 发展目标 (Future Directions)

版本路线

  • Step 1:基本功能原型
  • Step 2:实现全功能插件化,热编译,极大降低插件开发门槛
  • Step 3:实现插件市场,自由上传下载,极大优化插件生态
  • Step 4:完善精品化现有功能,发展插件生态(当前阶段)
  • Step 5:实现跨平台,尝试移植到其他 PC 端,甚至手机端

设计理念

  1. 以最高扩展性设计框架:客户端本身甚至就是一具空壳,什么都没有,但等于什么都可以有。
  2. 以最白盒精简设计功能:以优秀的设计确保代码简洁可读;以完整的内容将交互信息暴露给用户。
  3. 以最简单低配设计体验:用最简的操作,最少的token,最低配的硬件,去跑出付费定制般的体验。

✨ 软件特色 (Software Features)

  • 基于.Net/C#生态开发:在python,nodejs横行的时代中,难得的C#项目,对大型项目开发友好,Unity开发经验可迁移。(C#药丸,python是爹)
  • 极高扩展性的插件环境:插件在设计之初就有着对整个业务流的全量控制,自定义界面的能力,实际上所有的内置功能也均为插件实现。
  • 支持热编译重载的插件:热编译热重载的插件环境,直接让ai可以实现自己写插件,且内置专门面向ai的开发工具,直接实现自我进化。
  • 功能高度自包含自动化:内置功能基本都优先采用无依赖的自实现,本地模型,以及小技巧,没有第三方依赖,不要key,可控且自动装环境,开箱即用。
  • 纯原生文本的函数调用:有意默认采用非标准的函数调用,因此对llm没有任何特殊要求,调用过程透明可控,词元开销小,额外支持多种特殊调用方式。
  • 稳定持久的自动化记忆:不使用不可靠的AI自主记忆存储,改为基于类似多级cache思想的一套自动化记忆压缩系统,实现让对话经历伪常驻的效果。
  • 节省词元降低开销交互:对话上下文有意复用会话、分区维护、保持稳定,提示词也确保是实践过的有效文本,再配合自实现的函数调用,词元开销非常小。
  • 模块化白盒化软件结构:功能高度模块化,实现简单清晰,很容易就能将单个功能拆离复用。运行信息白盒化,对话和上下文均配专用UI完整显示。

🌟 核心功能 (Core Features)

  • 🎭 Live2D桌宠:内置角色"真央"的live2D,可交互会表演能运动,告别枯燥的对话框。
  • 👁️ 深度视觉:拍照不怕没人分享,还会没事偷偷看主人,在你游戏工作的时候,陪你一起吐槽。
  • 🎙️ 语音对话:放下键盘,直接说话,基于神经网络的语音配合流式合成,实现高品质通话级语音。
  • 🧠 长期记忆:稳定强大的记忆系统,超大虚拟上下文,所有记录均可溯源搜索,确保记住生活中的点滴。
  • 📱 平台通讯:额外支持QQ等多种通讯平台,出门了也能联系在家的她,还能没事带去见见群友。
  • 🤖 自主活动:闲时会自娱自乐,有自己爱好和生活,会主动的找你玩耍分享见闻,就像真实的生命那样。
  • 🌐 网上冲浪:拥有一个属于自己的真实浏览器,能够自主上网学习娱乐,让知识不再停滞,每天都有新话题。
  • 💻 脚本执行:能借助python在本地执行各种任务,唱歌绘画,办公辅助,除开对话同时也是一个实用的助手。
  • 🔗 多开互联:支持角色多开并可相互交流,借此构建一个完整的赛博世界,让他们也有自己的社交圈子。
  • 🔄 自我升级:允许ai直接编辑插件,并自行编译重载,让ai自己改造自己,不再是一种科幻场景。
  • ️️🛠️ 扩展能力:支持自定义插件,以及接入 MCP、Skills 功能,通过标准化的AI生态,自由方便的扩展功能。

📸 软件截图 (Screenshots)

欢迎页 插件市场 插件配置
欢迎页 插件市场 插件配置
角色设定 对话看板 上下文片段
角色设定 对话看板 上下文片段

🚀 快速开始 (Quick Start)

  1. 下载软件:前往仓库右侧的 Releases 页面,下载最新的软件压缩包(zip)。
  2. 配置环境:解压压缩包到安装目录后,直接按UI提示的流程进行配置。
  3. 开启陪伴:配置完跳到角色页后,全选功能模块,直接点击 激活角色 开启陪伴。

(注意!软件运行过程中会自动下载需要的各种依赖,虽然已经配了国内镜像,但依旧很久。如果功能全开,可能需要一个小时左右,注意观察任务管理器,只要有明显的磁盘或网络波动,就说明软件还在正常处理中)

软件细节

  1. 应用内的模型均使用 modelscope 下载。该工具默认会将模型下载到 C 盘用户文件夹中,但实际上也可以通过环境变量调整位置(具体查看官方文档),这样 C 盘不够的人也可以下载了。
  2. 建议使用 NVidia 显卡,并至少有 2G 显存,注意升级驱动,确保其支持 CUDA。当然如果不支持也应该可以运行,只是无法使用完整的深度视觉识别能力,其他模型 CPU 版应该也支持。

🔌 插件开发 (Plugin Development)

请参考插件市场 https://github.com/BDFFZI/Alife.PluginMarket 的页面说明


🏗️ 开发信息 (Development Information)

注:由于个人精力有限,故在Demo、Test、UI部分大量使用的AI编程,所以这些子项目的实现很可能存在冗余,低效的问题,不过好在他们不是核心代码。

📦 基本依赖

  • .NET 10 SDK:编程语言生态
  • Python 3.12:本地模型接入
  • Semantic Kernel:基本llm协议接入
  • ASP.NET + Blazor + AntDesign + ElectronNET:前端界面框架

🏛️ 解决方案目录结构

Alife 采用全插件化架构,解决方案按目录分组组织:

Sources/
├── Alife/                              # 核心平台
│   ├── Alife.Client/                   # 客户端外壳
│   ├── Alife.Framework/                # 核心框架
│   ├── Alife.PluginMarket/             # 插件市场
│   └── Alife.Platform/                 # 平台抽象 (弃用中,平台处理应放在插件中)
│
├── Alife.DeskPet/                      # 桌宠子系统
│   ├── Alife.DeskPet.Client/           # Live2D 桌宠外挂程序
│   └── Alife.DeskPet.Protocol/         # IPC 协议库
│
├── Alife.Function/                     # 功能插件 — 以面向 AI 视角组织
│   ├── Environment/                    # 系统服务 — AI 的环境感知与持久化能力
│   │   ├── Developer/                  # 开发工具 — 热重载插件实现自我升级,暴露运行时信息,重启角色活动
│   │   ├── Memory/                     # 持久记忆 — 多级底数压缩 + bge-small-zh 向量化 + DuckDB 检索
│   │   ├── MessageFilter/              # 消息过滤 — 消息预处理器(注入时间戳、规定输出风格等)
│   │   ├── SystemEvent/                # 主动事件 — 阶梯定时事件,驱动 AI 空闲时自主行为
│   │   └── VirtualWorld/               # 虚拟世界 — 跨活动共享世界背景,跨角色通讯
│   │
│   ├── Infrastructure/                 # 基础设施 — 核心函数调用引擎与外部协议接入
│   │   ├── FunctionCaller/             # Xml 函数执行器 — 流式 XML 调用,支持嵌套/异步/异常,兼容 DeepSeek
│   │   ├── Mcp/                        # MCP 协议客户端 — Model Context Protocol,动态扩展工具生态
│   │   └── Skill/                      # 技能系统 — 按需读取 SKILL.md,引导 AI 完成特定领域复杂任务
│   │
│   ├── Instrument/                     # 工具服务 — AI 操作外部世界的能力
│   │   ├── Browser/                    # 网上冲浪 — WebView2 真实浏览器,格式化网页,支持交互点击
│   │   ├── Python/                     # 脚本执行 — AI 自行编写执行 Python 脚本
│   │   └── Vision/                     # 视觉感知 — 本地图像识别 + OCR + 窗口统计
│   │
│   ├── Interaction/                    # 交互服务 — 多模态人机交互
│   │   ├── Auditory/                   # 听觉感知 — 麦克风录音等音频采集
│   │   ├── DeskPet/                    # Live2D 桌宠 — WPF+WebView2,表情动作/气泡/鼠标/位置交互
│   │   ├── QChat/                      # QQ 聊天 — OneBot v11 协议,支持群聊;兼容 Discord
│   │   └── Speech/                     # 语音对话 — 语音识别与合成,实时语音聊天
│   │   
│   └── Models/                         # 模型接口层 — 抽象化模型接入
│       ├── AuditoryModel/              # 语音识别模型接口 (sherpa-onnx + SenseVoice + silero-vad)
│       ├── SpeechModel/                # 语音合成模型接口 (edge-tts、VITS、Genie-TTS)
│       └── VisionModel/                # 图像识别模型接口 (Qwen2.5-VL-3B、MiniCPM-V-4.6)
│

Demos/                                  # 黑盒测试
Tests/                                  # 单元测试

📚 开发文档

Alife 目前尚未建立文档,你可以尝试使用 Copilot、DeepWiki 之类的 AI 辅助工具,不过这些生成的资料并不准确。


📄 许可证 (License)

本项目采用 GNU Affero General Public License v3.0 许可协议。

About

一款专注于桌宠方向的AIAgent。特点是一键安装、功能齐全,极低开销、信息透明、永久唯一会话、全功能可插拔、具有极高的扩展性和拟人程度上限。非常适合想长期培养的小白用户和自定义需求高的开发者

Topics

Resources

Stars

130 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages