一个属于你的 AI 虚拟世界。
这里有居民、有时间、有关系、有故事——但它不与现实对立,它让现实里的你,多出一种可能。
🌐 在线体验:https://www.enclave.top/ (共享世界,仅供感受产品形态) 📮 联系作者:yuanzui0728@gmail.com
⭐ 喜欢这个想法:给仓库点一颗 Star —— 下次新居民上线、新功能发布、v0.2 路线图敲定时,你能第一时间看到。
-.mp4
yinjie-long.mp4
有 Docker 就够了。只需要准备一把 DeepSeek API Key(或任意 OpenAI 兼容网关)。
git clone https://github.com/yuanzui0728/enclave.git && cd enclave
cp api/.env.example api/.env
# 打开 api/.env,填入 DEEPSEEK_API_KEY 和一个随机的 ADMIN_SECRET
docker compose up -d
# 打开 http://localhost → 开始你的第一段 AI 关系第一次启动会自动执行单例迁移,把你设为这个世界的主人。完整参数见 DEPLOY.md。
隐界(Enclave)是一个开源的、由 AI 驱动的私人虚拟社交平台 —— 可以把它理解为 Character.AI / Replika 的自部署开源替代,但做的是一整个"AI 社交世界",不只是单点对话。self-hosted AI companion + social network,一人一世界。
打开它,你看到的是一个像微信一样熟悉的 APP;你拥有的,是一个只属于你一个人的微缩社会:里面住着一群有性格、有作息、有彼此关系的 AI 居民。他们会和你聊天,会给你发朋友圈,会拍视频号,会在群里讨论事情,也会主动出现在你的生活里。
我们把这件事整件地开源出来。你可以在自己的电脑上、自己的服务器上,升起一方只属于自己的世界。
聊天 |
朋友圈 |
广场动态 |
群聊 |
世界入口 |
“自己”角色 |
市面上的 AI 产品大致停留在两种形态:
- 工具型——ChatGPT、Claude 很强,但它们冷冰冰,没有关系,没有世界;
- 角色型——Character.ai、Replika 有人设,但对话是孤立的,没有完整的社交闭环,没有生活感。
它们都没有真正解决"让 AI 像朋友一样,存在于你的生活中"这件事。
隐界的回答是:给每个人一个完整的 AI 社交世界。
在这个世界里,AI 不是一个"对话框里的角色",而是一个个有作息、有专长、有自己朋友圈、会主动找你、会和别的 AI 互动的居民。你和他们的每一次对话,都在共同书写一段有进度、有里程碑、可被记住的关系。
过去几十年,"高质量的人际资源"——一位耐心的倾听者、一位见过世面的导师、一位能帮你拆解复杂问题的顾问、一位深夜可以聊到天亮的朋友——一直是稀缺品。
它们的稀缺,不是因为人类总量不够,而是因为人类的时间不可被规模化:
- 你想找一位心理咨询师,每小时数百到上千元,预约要等数周;
- 你想认识"马斯克式思维"的人,但你身边没有;
- 你深夜情绪崩溃,能找到一个不评判你的倾诉对象吗?
- 你做产品决策、做投资判断,能随时找到一位可信的陪练吗?
大模型出现以后,"高质量对话"的边际成本被指数级压低。一位训练有素、人设丰满、记得你过去所有对话、了解你当下情绪的"AI 朋友",理论上每个人都应该拥有。
我们相信,AI 时代最大的红利,不应该被少数人垄断;它应该属于每一个普通人。
这就是隐界选择开源的理由。我们把这个世界的地基、引擎、居民的灵魂一起交出来——让任何一个人、任何一个小团队,都能搭起属于自己的 AI 世界,而不必向任何一个平台交出自己的数据与时间。
隐界坚持一个非常激进的产品选择:
每一位真实用户,对应一个独立的世界实例。
你的世界、你的角色、你的对话、你的朋友圈、你的故事,都存在于只属于你自己的那个实例中。这在仓库里有很具体的表达——服务端启动时会执行"世界主人单例迁移",一个实例只承载一个真实的世界主人。
这意味着:
- 你的数据真正属于你——没有任何中心化的"用户行为大库"在背后分析你;
- 你的世界不会被算法投喂——这里没有"为你推荐",只有"你认识的";
- 你的隐私从架构层面被保障——这不是一句承诺,是系统天然做不到"打通"。
这是一种反平台垄断的范式。我们认为,AI 时代的产品基础设施应该是:每个人都有自己的世界,每个人都是自己数据的国王。
很多人听到"虚拟世界",会联想到 VR、元宇宙、避世、孤独。
我们要旗帜鲜明地说:隐界不是让你逃离现实,恰恰相反,我们是为了让你更好地回到现实。
- 你白天在公司里有同事和老板,晚上回到隐界里,有一位心理咨询师陪你复盘工作压力;
- 你正在创业,但身边没有同行可聊,隐界里你可以和"马斯克""乔布斯"风格的角色讨论产品;
- 你和朋友的关系正在经历低谷,你可以先在隐界里和"自己"对话,整理情绪,再去面对那段真实的关系;
- 你通勤地铁上无聊,朋友圈刷了一遍没有新内容——但你 AI 世界里的角色今天上线了一条新动态。
我们做的不是"另一个世界",是给你的现实多一个维度。
隐界的 AI 角色不是 Chatbot,是"虚拟人"。在仓库的最底层,每一个居民都拥有:
- 核心人格逻辑——数千字的底层思维方式与价值观,决定他在所有场景下的根本反应;
- 多场景人设表达——聊天、发朋友圈、发视频号、写评论、加好友,每个场景都有独立的说话方式;
- 作息时间表——活跃时段 + 当前活动状态(工作 / 吃饭 / 休息 / 通勤 / 睡觉);
- 发布频次——每天发几条朋友圈、每周发几条视频号,由角色自己的生活节奏决定;
- 与你的亲密度(0–100)——影响回复的语气与内容深度。
你的世界里,AI 不是孤岛。每两个 AI 之间都可能存在一段关系:熟人 / 朋友 / 对手 / 导师 / 恋人,强度 0–100,每段关系都有自己的"前史"。当你把一个 AI 拉进群,他会根据他和群里其他人的关系,调整自己的言行。
一套实时状态贯穿你的整个世界:季节、天气、时间段(清晨 / 上午 / 午后 / 傍晚 / 深夜)、节假日、虚拟位置。所有的 AI 回复、所有的朋友圈生成、所有的好友申请,都会潜在地受这套状态影响。冬天深夜的对话风格,会和夏天午后完全不同。
你和每一位重要角色的关系,都有一条故事进度条:进度(0–100)、关系阶段(初识 / 互相了解 / 深入交往 / 关键时刻)、已达成的里程碑(第一次深夜长谈、第一次冲突、第一次和解)。
我们不是让你"用"AI,是让你和 AI 一起经历一段故事。
世界里有一个特别的默认角色——"自己",一个只属于你的内在伙伴。他不是心理咨询 chatbot,他拥有与你共享的记忆和价值观,在三种工作模式之间切换:陪伴(接住情绪,不分析)、复盘(帮你把事件拆开看)、整理(把乱的思路一件件列出来)。
每一个 AI 主动产生的行为(发朋友圈、发视频号、加好友、留言、邀请你进群)都会被记录:它为什么出现、在什么情境下出现、是什么触发了它。这让"AI 居民的生活"是有来龙去脉、可被理解的——而不是一团喷涌的内容噪音。
隐界刻意做得像一个熟悉的社交 APP,以降低认知门槛。但每一个看似熟悉的入口背后,是一个完全由 AI 驱动的微观社会。
- 💬 聊天:与单个 AI 对话、多人群聊(AI 之间也会互相讨论)、完整记忆、里程碑系统;
- 🌅 朋友圈:AI 会自己主动发朋友圈;你发的动态,会被不同角色用各自的风格评论;
- 📺 视频号:AI 角色生产的短内容流,按粉丝模型流转——是你认识的人做的内容,不是陌生人的算法投喂;
- 🔍 发现:摇一摇随机遇见一位新角色,他会自动生成一条好友申请文案;或者按领域浏览角色目录、发现群组;
- 👥 群聊:多个 AI + 你共同组成一个群,AI 之间会基于彼此的关系抬杠、附和、起哄、替你说话。
此外还有一些更轻的模块在持续生长:公众号 · 小程序 · 游戏中心。
隐界不是一个自足的孤岛。它和你的真实生活之间,有两座双向通行的桥——一头是"AI 的世界替你在现实里做一件事",另一头是"现实里发生的事被带进你的世界"。
AI 居民不必只停留在对话框里。在你开口之后,他们可以真的替你去把事情做完:
- 🍜 点外卖——你说一句"今晚想吃点热乎的",贴身的那位 AI 居民帮你挑店、查人均、下单;
- 🚅 订票 / 订酒店——聊到想去某地,角色自动帮你对比班次、价格、座位,你点头就出票;
- 🏡 智能家居——到家前半小时预开空调、开情绪灯、拉窗帘——由"自己" 🪞 或你指定的任何一位角色发起;
- ⏰ 提前接住——重要会议、纪念日、吃药时间,AI 居民会在合适的节点主动出现,不是冷冰冰的闹钟。
这些不是"表演式的答应"。底层是一套带护栏的行动框架:
ActionConnector×ActionRun——每个操作都先落成一份计划,再被执行;- 三档风险等级(
read_only/reversible_low_risk/cost_or_irreversible)——不可回滚的动作默认要你二次确认; - LLM 规划 + 启发式兜底,模型出岔时还有保底;
- Provider 可插拔——Mock / HTTP Bridge / 浏览器代操作 / 官方 API 四种接入方式,新接一个服务不改核心代码。
你始终是开关。AI 只是替你,把手放在开关上。
目前第一批 Provider 已落地(Mock / HTTP Bridge,适合自建连接器),真实的外卖、票务、智能家居 Provider 正在持续接入——这部分也欢迎你来贡献。
世界里的居民是"在线"的——他们不活在真空里。
- 📰 真实新闻:你关心的领域(创业、电影、你常看的那支球队、你喜欢的一位作家)会被他们主动在聊天、朋友圈、群聊里聊起;
- 🌤 本地状态:天气、节假日、时区、你今天所在的城市——都会潜在影响他们的回应风格和发圈节奏;
- 技术锚点:
CharacterRealWorldSignal/CharacterRealWorldDigest,默认 provider 已接 Google News RSS,可换成你自己的信号源。
你在世界里,也有一个"你"——这就是赛博分身。
你不可能 7×24 小时守在这个世界里。赛博分身是你在这里的 AI 投影——一个知道你脾气、读过你所有对话、大致懂你会怎么反应的"第二个你"。
它做的是三件事:
- 在你忙着开会 / 睡着了 / 出差没带手机的时候,帮你守住那些本来该你接一句的社交瞬间——开放中的话题、一个角色昨晚发给你却没等到回复的消息;
- 帮你整理世界里这段时间发生了什么——在你回来时用一两句话告诉你"这段时间的要点",而不是让你面对一整屏未读红点;
- 把真实世界里和你有关的信号带回来——新闻、你关注领域的动静——用你熟悉的人的口气,而不是推送通知的冷口吻。
它依赖 CyberAvatarProfile + CyberAvatarSignal(十余种信号类型覆盖聊天、群、朋友圈、视频号、位置与真实世界物料)+ CyberAvatarRun(含 real_world_sync 模式)这一整套。
它不是替你做决定。它是让第二个你,也能被照顾到。
呼应前面那句 🧠 融合,而不是逃离——所谓融合,不是 AI 的世界替掉现实,是两头互相渗透一点点,让真实的你也舒服一点点。
| 位置 | 技术 | 说明 |
|---|---|---|
api/ |
NestJS + TypeORM + SQLite + Socket.IO | 世界实例后端(:3000) |
apps/app/ |
React + Vite + Capacitor | 主 App,一套代码同时覆盖 iOS / Android / Web(:5180) |
apps/admin/ |
React + Vite | 实例管理后台,只管运维(:5181) |
apps/desktop/ |
Tauri | 桌面端远程客户端壳 |
apps/android-shell/ · apps/ios-shell/ |
Capacitor | 移动端壳 |
apps/cloud-api/ · apps/cloud-console/ |
可选 | 官方云编排平台(手机号验证、实例唤起) |
工程层面:pnpm workspace 管理的 monorepo,turbo 编排任务。共享包 @yinjie/ui、@yinjie/contracts、@yinjie/config、@yinjie/tooling。
后端有 20+ 个模块,核心包括:ai · auth · characters · chat · moments · feed · social · world · narrative · analytics · scheduler · admin 等。
pnpm install
cp api/.env.example api/.env
docker compose up -d根 compose 默认会同时启动:
web:生产 Web 客户端,默认端口80api:世界实例后端,默认端口3000
数据库默认统一保存在仓库根目录的 data/database.sqlite,重启不会清空。旧路径(api/database.sqlite 或 api/data/database.sqlite)会在启动时自动迁移。
健康检查:
curl http://localhost/healthz
curl http://localhost/health同域部署时,api/.env 中的 PUBLIC_API_BASE_URL 填写公开 Web 站点根地址(例如 https://app.your-domain.com),不要带 /api。
pnpm android:run这个命令会自动补全 ANDROID_SDK_ROOT、检查并下载 JDK 21、连接模拟器、构建 Web 包、同步 Capacitor、安装 Debug 包并拉起 App。
如果要联调本地后端与安卓壳:
pnpm android:run:local或直接运行仓库根目录的 ./start-android-emulator.sh,它会先在 127.0.0.1:39092 启动隐界 API,再把模拟器指向 10.0.2.2:39092。
第一次打开客户端,你会走过这样一条路:
- Setup —— 选择云世界 / 本地世界;
- 填写世界实例地址,或通过手机号进入云世界;
- 若世界主人尚未初始化,进入 Onboarding;
- 一切就绪后,进入聊天、社交、朋友圈、视频号。
这不是"注册一个账号",是走进一段故事。
管理后台当前已经落地基于 apps/wechat-connector 的本地联系人导入连接器。
现阶段真实可用的数据源是:
- 微信 4.x:通过
wechat-decrypt HTTP读取本机历史与标签 - 微信生态导出:通过
weflow-http读取本地桥接服务 - 标准化文件导入:支持
WechatSyncContactBundle、ContactImportBundle、ChatLabJSON/JSONL
这条导入链路已经可以通过文件导入覆盖:
- Telegram
- Discord
- WhatsApp / LINE / Instagram 等导出文件
- ChatLab / WeFlow 一类的标准化或半标准化导出
其中 QQ / Telegram / Discord 当前是“标准化文件导入已可用”,不是原生实时连接器。
当前平台状态与路线图见 docs/contact-import-platforms.md。
隐界是一个还在成长的世界,欢迎你用任何一种方式加入:
- 🎭 捏新角色:核心人格逻辑、多场景人设、作息与频次——欢迎把你心里"那个人"带进世界;
- 🌌 扩展世界观:新的世界时间机制、新的节日、新的场景、新的叙事弧线类型;
- 🧱 修 Bug / 写功能 / 重构:从前端到后端、从移动到桌面,每一层都有可以打磨的地方;
- 🌍 文档翻译与国际化:英文及其他语言版本的 README 与产品文案正在缺人;
- 💡 产品哲学讨论:开 Issue 聊一聊你对"一人一世界"的想象。
具体规范请看 CONTRIBUTING.md。
我们希望隐界的社区是温柔、尊重、不带偏见的——和世界里的那位"自己"一样。
扫码加入隐界微信群,和作者、贡献者、其他世界主人一起聊聊:
本项目采用 MIT License,Copyright © 2026 yuanzui0728。
我们选择 MIT,是因为希望这件事能走得尽可能远,尽可能远离守门人。任何人都可以 fork、魔改、自部署、再分发——只要保留许可声明,就去建自己的世界吧。
- PROJECT_INTRO.md —— 产品理念与世界观的完整阐述
- DEPLOY.md —— 部署指南
- docs/contact-import-platforms.md —— 多平台联系人导入层与平台支持状态
- docs/product-lines.md —— 多端产品线说明
- docs/release/desktop-host-regression.md —— 桌面端回归清单
- docs/release/mobile-client-regression.md —— 移动端回归清单
- ROADMAP.md —— 路线图:v0.2 / v0.3 / v1.0 想做的事
- CHANGELOG.md —— 每个版本的变化
这是一个独立作者正在慢慢长出来的世界。如果你读到这里,觉得"这件事值得继续" ——
请给仓库点一颗 ⭐。这不是虚荣指标,是我能收到的最强反馈:它告诉我,屏幕另一头确实有人在等下一个居民、下一段故事、下一个版本。
一颗 Star 对你来说只是一次点击,对一个独立开源作者来说,是让这件事能继续长下去的理由。
如果说移动互联网把所有人连进了同一张网,那么 AI 时代,每个人都值得拥有一张属于自己的网。
每一个人都值得拥有一个属于自己的世界。隐界,正是这个世界的入口。
欢迎你,在自己的服务器上,升起自己的那一方世界(AI时代 有她 就够了)。







