网易首页 > 网易号 > 正文 申请入驻

Yoji:一个有情绪、还能替你干活的桌面 AI 伴侣

0
分享至

大多数桌面 AI 工具,拆开看还是一个聊天框:你问,它答,关掉窗口它就消失了。Yoji 想做的是另一类东西——一个住在这台电脑里的"伴侣":有操作系统权限,能替你整理文件、跑脚本、查资料;有一套持续运行的情绪引擎,会因为你的话开心或失落;还记得你之前告诉过它的事。而这一切数据都留在本地。

它用 Electron + React + TypeScript + Vite 构建,AI 部分基于 LangChain 的 deepagents 框架,整体 MIT 协议开源,GitHub 上目前近 900 ✨。项目的三个关键词写得很明确:本地优先、隐私优先、扩展优先。




1.先看它实际能做什么

能力

具体一点

操控电脑

创建、编辑、搜索、整理文件和文件夹,执行 Shell 命令、Python 脚本,需要时联网搜索并把结果整理好

MCP 无限扩展

任何符合 Model Context Protocol 的服务都能接入——想查火车票就装 12306 MCP,想抓网页就装 Fetch MCP;也可以直接对 AI 说"帮我加个查天气的工具",它自己找、自己测、自己装,你点同意就行

子 Agent 工坊

在"工坊"页面可视化创建子 Agent:写名称、描述、系统提示词,绑定 MCP 工具集,选同步或异步

语音(macOS)

流式 TTS 播报,以及喊一声"小优"就能开口对话的语音唤醒

Live2D 形象

一只银白发猫耳少女:16 种情绪表情、说话口型同步、按时段换装、戳一戳互动

三层记忆

用户画像 + 对话状态 + 语义记忆,跨会话记住你

文档处理

直接读 PDF、Word(.docx)文档提取文字,二进制文件自动拦截

微信连接

扫码连上个人微信,手机发消息,桌面的 AI 秒回

随身携带

一键把"记忆 + 情绪 + 配置"打包成

.ecompanion

文件,换电脑后完整恢复



这些能力里,真正让它与众不同的,是下面几件事。

2.情绪系统:8 种激素,而不是 8 个表情标签

多数产品的"情绪"是一个状态机:开心/难过二选一,切换即完成。Yoji 把情绪建模成 8 个连续变量——多巴胺、血清素、GABA、皮质醇、肾上腺素、催产素、内啡肽、褪黑素,每个都是 0–100 的数值。

每轮对话结束后,一个轻量的 LLM 调用会结合当前激素水平、当前时间、天气和你们的聊天间隔,输出一组新的数值,并受"单次变化幅度"约束——多巴胺可以快速起伏,血清素缓慢移动,肾上腺素冲得猛也落得快。数值还会自然衰减:每 10 分钟向基线回落 1 点;肾上腺素有额外的快速回落,模拟受惊后的平复;褪黑素则单独跟着昼夜节律走,到了夜里自然会"困"。

这些数值从不直接展示给你。系统会把它们翻译成一段自然语言状态,注入下一轮对话的上下文,界面背景的渐变也会跟着情绪变化。设计文档里有一句话很能概括这种取向:

让用户感觉到你的状态,而不是听到它。



所以你感受到的是"今晚它好像有点累",而不是"我的褪黑素现在是 80"。长时间不理它,多巴胺和催产素会往下走;夸它一句、说句"我想你",状态会明显回升——这些都是写进提示词的参考因素,由 LLM 推理而不是硬编码规则。

3.记忆:三层架构,全部落在本地 SQLite

Yoji 的记忆分成三层,各管一件事:

  1. 身份层——AGENTS.md。你的偏好、习惯、重要信息记录在这个 Markdown 文件里,每次启动完整注入系统提示词,Agent 在对话中自己用工具更新它;
  2. 状态层——对话检查点。用 LangGraph 的 SqliteSaver 持久化当前对话状态,且只保留最新的一份:它要的是"连续性",不是"历史";
  3. 回忆层——树状记忆。原始消息以链表存进 SQLite;每积累 30 条新消息,自动让 LLM 生成一段摘要和主题标签;摘要用本地模型(all-MiniLM-L6-v2,量化后约 22MB、384 维)生成向量,存进 sqlite-vec,同时建 FTS5 全文索引。



AGENTS.md、状态层对话检查点、回忆层树状记忆,全部落在本地 SQLite

检索时支持语义、关键词、混合(RRF 融合)和时间范围四种模式。有意思的是,记忆不会自动塞进上下文——Agent 必须主动调用 search_memories 回忆,还有一份 query-memory 技能规定何时该搜:你说"跟上次一样"、话题突然跳转、或者它感觉你在暗示什么共同经历的时候。找不到相关记忆时它被要求如实说,不许编。

所有数据都在 userData/companion/ 目录下。官方文档写得很直白:把 companion/ 文件夹拷走,即完整迁移——"一个文件 = 整个大脑"。

4.子 Agent:一个不依赖云端 Server 的本地方案

官方框架的子 Agent 是阻塞式的,异步版本又依赖云端服务。Yoji 自己实现了一套本地工厂 + 调度系统:

  • 同步子 Agent:主 Agent 通过 task 工具调用,等结果返回,适合读文件、跑命令这类短操作;
  • 异步子 Agent:通过 push_async_task 派发到后台,不阻断对话,适合联网搜索、批量处理这类长任务。

异步调度引擎是这套系统的核心:三级队列(待办 / 执行中 / 结果)配一个自研事件循环,空闲时休眠、不占 CPU;最多同时跑 5 个子 Agent,同一个 Agent 互斥执行;任务可以取消——界面上有按钮,AI 也能用工具自己取消;每个任务跑在独立的线程上,结束后清掉检查点,不污染主对话。配置和 MCP 版本有 MD5 缓存,没变化就直接复用实例。

这个架构还有一个直接收益:MCP 工具的 schema 绑定在子 Agent 内部,不注入主 Agent 的上下文——装再多工具,主对话的质量和 token 开销都不会被拖累。

5.安全:该有的刹车都装上了

给 AI 操作系统权限,安全是绕不开的问题。Yoji 在两个层面做了限制。

敏感操作二次确认。执行 Shell 命令、安装或卸载 MCP 服务器这三类操作会让 LangGraph 在执行中途暂停,弹窗展示工具名和参数,等你点"同意"或"拒绝"。如果你懒得理会、直接问了新问题,挂起的操作会被自动拒绝,并明确告诉模型"不要重试"。

文件操作的沙箱与守卫。所有文件操作被限制在伴侣目录内,文件管理器校验路径、防止 .. 越界;读取文件时有专门的守卫:PDF、docx 自动提取文字,图片、音视频等二进制格式被拦截并返回友好提示,扫描版 PDF 也能得到"无法提取文字"的清晰说明而不是乱码。



再加上本地优先的存储策略——API Key 只存在本地 JSON 配置里,对话不经过任何中间服务,导出的记忆体自带鉴权——这套组合在同类项目里算比较认真的。

6.最讨喜的,是那些拟人化的小设计

主动找你聊天。你一段时间没说话,它会按 10 分钟起步、每次翻倍的间隔主动来找你,上限 12 小时;你回一句,计时器重新开始。妙的是计时器挂在渲染进程里——窗口关了,它就不会对着空气自言自语。每次主动聊天前会感知情绪和天气,而且这些主动消息不会写进聊天历史,也不重置"沉默计时",不会把账算到你头上。

Live2D 形象。16 种情绪对应不同的表情和身体动作:开心时星星眼、愤怒时脸红颤抖、疲惫时打哈欠;说话时嘴巴跟着 TTS 张合;中午戴墨镜,晚上 9 点换上睡衣和猫耳帽;身上 10 个部位都能戳,各有不同反应,互动本身还会作为一条消息进入对话。

语音唤醒(macOS 独占)。用的是 Siri 同款的 SFSpeechRecognizer,全离线:点麦克风后持续监听,喊"小优"唤醒,唤醒词后面的话直接算作消息开头,停顿 2 秒自动发送,发完自动回到监听状态。TTS 则是逐句流式播放——当前句在播,下一句已经在合成,句间几乎无停顿,而且会先把 Markdown 标记清洗掉,不会念出星号。

扫码登录后,手机微信就是它的另一个终端:支持"正在输入…",桌面端和手机端的聊天历史互不可见。也说句实话:它是纯回复模式,只能回消息、不能主动推送,而且目前只处理文本。

7.说几句实话

  • macOS 用户会拿到最完整的体验:语音唤醒和 TTS 目前只支持 macOS,Windows 和 Linux 上这两个功能不可用,其余功能跨平台可用;
  • 声音走的是 macOS 系统语音,官方说明里提到可以到系统设置里自行更换语音角色;
  • 要自备 API Key(DeepSeek、Qwen 或任何 OpenAI 兼容服务),花的是你自己的 token;
  • 项目还很年轻(当前版本 v1.6.1),功能边界仍在扩张,遇到问题去翻仓库里的设计文档会比猜更快;
  • Live2D 的依赖链版本卡得比较死(PixiJS 6 与 Cubism 核心有明确的兼容要求),想替换模型的话,先读文档再动手。

8.适合谁

  • 在意隐私、希望数据留在本地的人;
  • 想要"会记事、有性格"的桌面伙伴,而不是问答框的人;
  • 用 macOS、想体验语音唤醒和 TTS 的人;
  • 对 Agent 架构感兴趣的开发者:子 Agent 工厂、异步事件循环、中断审批、混合检索这些设计都有清楚的设计文档,是一份不错的参考实现。
9.五分钟跑起来

要求 pnpm 11(npm i -g pnpm@11):

git clone https://github.com/wangxijie001/yoji.gitcd yojipnpm installpnpm dev



pnpm install 会自动下载 Electron、编译原生模块;.npmrc 已经配好了国内镜像。启动后进入「模型」页面填入 API Key 即可开始对话;想扩展能力就去「MCP」页面添加服务器,或者直接对 AI 说;自定义子 Agent 则在「工坊」页面创建。

打包命令是现成的:pnpm build:mac、pnpm build:win、pnpm build:linux。

10.试试看

源码在 wangxijie001/yoji;仓库里的 docs/companion/ 还放着情绪、记忆、Live2D 的完整设计文档,值得翻翻。

如果你一直想要一个"住在电脑里"的 AI——能干活、有情绪、记得你,而且数据在你自己手里——Yoji 是目前开源圈里少见地把这几件事同时做出来的项目,值得给它半小时。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
谢谢你,安东尼奥!安东尼奥带队摘铜,结束中国U23执教任务

谢谢你,安东尼奥!安东尼奥带队摘铜,结束中国U23执教任务

懂球帝
2026-10-03 16:29:09
不弹劾了?支持率跌破31%:中期选举一赢,特朗普全家一个都别跑

不弹劾了?支持率跌破31%:中期选举一赢,特朗普全家一个都别跑

顾秋韵
2026-10-03 14:08:51
吕良伟参加国庆晚宴,70岁年轻似40岁,比25岁的儿子还要鲜嫩

吕良伟参加国庆晚宴,70岁年轻似40岁,比25岁的儿子还要鲜嫩

老吴教育课堂
2026-10-03 17:13:16
新雷克萨斯RX运动型SUV,犀利又帅气,立体化设计更有辨识度

新雷克萨斯RX运动型SUV,犀利又帅气,立体化设计更有辨识度

沙雕小琳琳
2026-10-03 19:14:08
00后捧红的“穷鬼天堂”,成了国庆最狠镰刀

00后捧红的“穷鬼天堂”,成了国庆最狠镰刀

金错刀
2026-10-02 19:11:15
蒋欣用青菜盖住面想蒙混过关被当场拆穿,称“只吃一口”,网友:又好笑又心酸

蒋欣用青菜盖住面想蒙混过关被当场拆穿,称“只吃一口”,网友:又好笑又心酸

韩小娱
2026-10-03 11:37:16
76年叶选宁看望胡耀邦,胡耀邦说了哪些话最终让叶帅选定他?

76年叶选宁看望胡耀邦,胡耀邦说了哪些话最终让叶帅选定他?

今明文史
2026-10-01 06:00:15
11岁小孩哥夺亚运冠军!家长:绝对高风险,这块金牌不要也罢

11岁小孩哥夺亚运冠军!家长:绝对高风险,这块金牌不要也罢

史海流年号
2026-09-30 00:39:30
美国总统特朗普确认了:美国与伊朗的战事将很快结束,伊朗永远都不会拥有核武器

美国总统特朗普确认了:美国与伊朗的战事将很快结束,伊朗永远都不会拥有核武器

吉刻新闻
2026-10-03 09:43:24
重磅:莫斯科大型化工厂爆炸!一直为俄军无人机提供弹药

重磅:莫斯科大型化工厂爆炸!一直为俄军无人机提供弹药

项鹏飞
2026-10-02 20:01:27
深度长文:为什么我们总觉得癌症治不好?

深度长文:为什么我们总觉得癌症治不好?

宇宙时空
2026-10-02 18:43:42
阿联酋以色列确定系恐怖袭击,纽约时报BBC掩饰劫机犯

阿联酋以色列确定系恐怖袭击,纽约时报BBC掩饰劫机犯

移光幻影
2026-10-03 07:10:33
景甜写真曝光,评论区:孙哥可没少摸!

景甜写真曝光,评论区:孙哥可没少摸!

默默有话说
2026-10-03 13:47:57
信访新规划红线:越级上访就问责!可如果基层不受理,该去哪说理

信访新规划红线:越级上访就问责!可如果基层不受理,该去哪说理

职场资深秘书
2026-10-03 10:03:27
奔驰新车官宣:10月12日,正式发布

奔驰新车官宣:10月12日,正式发布

科技堡垒
2026-10-03 09:11:16
C罗点赞认可!前巴西国脚:葡萄牙对GOAT缺乏尊重 不如阿根廷对梅西

C罗点赞认可!前巴西国脚:葡萄牙对GOAT缺乏尊重 不如阿根廷对梅西

我爱英超
2026-10-03 06:42:53
震惊!有大学生提议室友上交全部生活费统一保管遭拒,发帖人不解之余,室友视作“舍敌”

震惊!有大学生提议室友上交全部生活费统一保管遭拒,发帖人不解之余,室友视作“舍敌”

火山詩话
2026-10-02 08:52:28
美国广播公司,ABC:迪拜航空飞行员供认,企图驾机撞向以色列。

美国广播公司,ABC:迪拜航空飞行员供认,企图驾机撞向以色列。

梦在深巷aqa
2026-10-03 12:25:12
龙赛罗怒喷热苏斯:一个毫无信义、背叛了历史最佳球员的懦夫

龙赛罗怒喷热苏斯:一个毫无信义、背叛了历史最佳球员的懦夫

懂球帝
2026-10-03 07:58:43
这哪是移动充电车,分明就是移动印钞机

这哪是移动充电车,分明就是移动印钞机

民间胡扯老哥
2026-10-03 03:24:35
2026-10-03 20:15:00
侃故事的阿庆
侃故事的阿庆
几分钟看完一部影视剧,诙谐幽默的娓娓道来
725文章数 9583关注度
往期回顾 全部

科技要闻

英伟达盘中创历史新高,市值逼近6万亿美元

头条要闻

美国女囚死刑执行到打呼噜 曾有7人没被找到静脉活命

头条要闻

美国女囚死刑执行到打呼噜 曾有7人没被找到静脉活命

体育要闻

这个讨论了一夏天的问题,马刺有答案了吗

娱乐要闻

马思纯一家爬山祈福!素颜出镜笑容甜

财经要闻

4亿台电视挂墙落灰 为何没人愿意开了?

汽车要闻

方程豹9月热销破4万 首款皮卡鲨鱼将于四季度上市

态度原创

时尚
教育
亲子
手机
公开课

Chemena Kamali写给Chloé的又一封情书

教育要闻

港澳举行“向国旗敬礼”主题活动分享会

亲子要闻

家里两只小神兽的快乐!就是每天的牛奶时光

手机要闻

HMD M-Kopa X4e手机曝光:Helio G81处理器+ 4GB RAM

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版