XU YUJIE
用 AI 把想法
做成完整的成品。
- 21两个月,21 个版本独立开发的 AI 应用 House
- 3′20″独立完成的 AI MV播放 2.8 万
- 签约番茄小说签约作者连续 13 天日更

Press the shutter
House
一款在本地运行的 AI 情感陪伴应用 Local-first · Long-term memory · Persona stability
macOS · Web · Windows
个人独立项目
我负责产品定义、架构选择、交互和视觉设计、版本规划和验收。代码由 Claude Code 和 Codex 编写,我负责分配任务和检查结果。
我的专业是广播电视编导,编程是自学的。
Problems · 解决的问题
开发中遇到了四个主要问题。
长对话遗忘
对话变长以后,早期内容会被忘掉。
聊得太久的部分,整理成一段段带出处的摘录,回复前在整段对话里找相关的记忆。每条记忆都能找到原始消息。
记忆混淆
模型会把自己说过的话当成用户说的。
按说话人分开存储,用户和模型的内容不再混在一起。
情绪影响记忆
一次情绪波动会长期影响后面的对话。
情绪和事实分开存放,情绪不写入长期记录。
费用过高
对话变长以后,每轮费用跟着上涨,而且看不到明细。
优化缓存,命中率 91.8%。费用按对话和后台分开显示。







Motion · 设计与动效
开屏像折叠屏一样展开。
开屏参考了折叠屏打开的那一下:合着的磨砂屏幕先停在窗口中间,准备好以后滑到左边、右半块翻开,磨砂慢慢退掉,露出首页。页面切换、卡片和按钮也做了一套弹性动效。
等待 · 合着的磨砂屏
0.2 秒 · 右半块翻起
0.3 秒 · 翻到竖直
0.45 秒 · 落下,磨砂退去For interviewers · 技术细节
一条消息的旅程 · 记忆架构 MEMORY.md · Prompt 全透明 · 同类产品对比 · 验收单与演示版
How it works · 一条消息的旅程
从按下发送到回复出现,一条消息会经过这些地方。
按下发送
消息从聊天界面交给本机的后端。界面用 SwiftUI 重做过,发消息和接收回复仍由藏在界面下面的原网页完成。这部分逻辑已经跑稳,重做界面时没有跟着重写。
原样存档
这句话先原封不动地存进原文档案。之后的所有记忆,都记着它的消息编号。
找相关的记忆
后端在三处同时查:整个窗口的总账、用户说过的事实、最近的对话要点。限时 3 秒,超时就用本地的保底查找。
对回原话
找到的事实要和原消息逐字核对,原话的校验值也要对上。对不上的,不会带进这一轮。
拼成这一轮的提示词
系统提示、人设和历史对话每轮基本不变,放在前面走缓存;找到的记忆放在最后。这也是缓存命中率能到 91.8% 的原因之一。
发给模型
只把这一轮需要的内容发出去。House 接了 6 种模型服务,可以随时切换。回复回到聊天界面。
后台整理
回复显示出来以后,这条消息进入后台队列,整理成总账里的要点和原子事实。程序中途退出也不会丢。
Memory · 记忆是怎么工作的
这套记忆只用用户说过的原话,每一条都能查到出处。
House 记忆架构
记忆分四层存在本机。长期事实只从用户的原话里提取,每条都记着来源消息编号;回复前找到的内容会先核对原话,对不上的不会带进对话。
四层存储
| 层 | 存什么 | 谁的话 | 用在哪 |
|---|---|---|---|
| 原文档案 | 每条消息原样保存,永不修改 | 双方 | 用户要原话时直接调取,其他层都指向它 |
| 会话总账 | 边界、决定、约定、偏好等要点 | 双方,标明谁说的 | 回复前的整窗索引和最近总账 |
| 原子事实 | 一条条可核对的事实,附原话和消息编号 | 只有用户 | 回复前的事实召回 |
| 检索库 | 切好的片段、标签和向量 | 双方,角色的话权重更低 | 记忆馆搜索 |
模型看到的样子(示例)
<memory_atoms source_verified="true"> - M128 · preference · observed=2026-09-12 · 来源消息 4521 事实:不吃香菜 用户原文:我不吃香菜 </memory_atoms>
设计取舍
- 每条记忆都能对回原话
- 只在当前这段对话里查找
- 用户改口时,旧的标为失效,不删
- 不按情绪加权,也不随时间衰减
- 找记忆全在本机完成
- 主聊天不用向量检索
Transparency · 看得见的 Prompt
每一轮发给模型的内容,
都能打开核对。
我做了一个 Prompt 控制台。每一轮实际发给模型的系统提示、人设、记忆和上下文都能在这里看到,哪些被带进去、哪些被裁掉也会标出来。系统提示和人设可以直接在这里改。
服务商在接口之后自己加的规则,本机读不到,我就标成“不可见”。
少写提示词
长的人设指令在长对话里效果会变弱。我的做法是让角色自己说出身份,再用记忆系统持续提供一致的信息。这样换了模型,角色性格也能保持。
Comparison · 同类产品对比
| 维度 | 猫箱 | 星野 | 酒馆 SillyTavern | House |
|---|---|---|---|---|
| 数据归属 | ○ 平台 | ○ 平台 | ● 用户 | ● 用户,不出设备 |
| 长程记忆 | ◐ 会员权益 | ◐ 会员权益 | ◐ 手动维护世界书 | ● 整窗检索,每条可溯源 |
| 记忆可溯源 | ○ 不可见 | ○ 不可见 | ◐ 条目可见 | ● 定位到原始消息编号 |
| 状态与事实隔离 | ○ 未区分 | ○ 未区分 | ○ 摘要固化情绪 | ● 分库存放 |
| 成本可见 | 订阅制 | 订阅制 | ○ 无计量 | ● 分项实时计量 |
| 上手门槛 | ● 下载即用 | ● 下载即用 | ○ 需自行配置 | ◐ 需 Python 与自备 Key |
对比依据公开资料和个人使用体验,核对时间为 2026 年 9 月。House 的缺点是安装门槛较高,只支持单个角色。
- 34个测试文件。大部分不需要调用模型就能运行。
- 3遍验收。重要改动都检查三遍,每个版本都做自检。
- 0条数据丢失。21 个版本升级过程中数据完整保留。
- 6种模型接入,包括 OpenAI、Anthropic、Kimi、GLM、OpenRouter 和 DeepSeek。
THANK YOU FOR READING
* 未验证的功能已在文档中单独注明Validation · 验证
没有验证过的功能,
会单独标注出来。
例如 Apple Health 接口已经做好,但我没有可穿戴设备,还没有在真机上测试,文档里写明了未验证。
为了在面试时能现场演示,我从正式版整理出一个独立的演示版。
里面去掉了所有聊天记录、记忆和私密功能,也不带 API Key。它用自己的数据目录和端口,和正式版装在同一台电脑上也不会互相影响。测试全部通过,打包以后在别的电脑上解压就能运行。
- 聊天记录和私密功能
- 全部保留
- 长期记忆
- 持续积累
- API Key
- 保存在本机
- 数据目录
- Data-v16
- 本机端口
- 5176
- 怎么打开
- 用 Xcode 构建运行
《你心知肚明,
我是你幻想中的朋友》
这是南方报业和快手湾区 AIGC 创新创作大赛的参赛作品。我用可灵 AI 独立完成了全部流程。作品发布在南都 N 视频的新账号上,没有做投放,主要通过朋友圈传播,进入了大赛实时人气榜。
在南都 N 视频观看完整版 ↗

乙女游戏同人剪辑
《恋与深空》秦彻
这是我的期末作业,用游戏里的画面剪成一支同人视频。歌词字幕我设计了几种版式,有粉色手写体的英文,也有竖排的中文配拼音。
Profile
我能做的四类工作
我是广播电视编导专业 2027 届学生。我会剪辑和拍摄,也长期写作。我用 AI 工具独立完成过应用、视频和内容项目。下面按四个方向介绍。

用 Figma 独立设计了 House 的全部界面,做了三版迭代。玻璃质感在三种渲染方式上都做了实现。
用可灵 AI 独立完成了创意、脚本、生成和剪辑。成片 3 分 20 秒,播放 2.8 万。
番茄小说签约作者。16 岁时写的知乎回答阅读 15.9 万。同一内容会按不同平台重写后发布。
用 Claude Code 和 Codex 协作开发。我负责拆解需求、分配任务、验收和定位问题。两个月做了 21 个版本。
我一个人旅行去过这五个国家。
SOLOTRIPNew Zealand
SOLOTRIPSingapore
SOLOTRIPJapan
SOLOTRIPKorea
SOLOTRIPMalaysia
角色设定的三种载体
我为同一个角色做了三个可以交互的页面,分别从第三方、第一人称和游戏三个角度展示这个角色。读者可以自己翻看和判断。

人事档案
一个虚构组织的内部网站。包括个人信息、训练经历、工作记录和权限等级。用公文的写法,提供角色本人没有说过的信息。


个人终端
模拟的手机界面,有 20 个应用。页面上没有设定文字,角色的作息和消费习惯通过应用内容体现。
情境小游戏
像素风的小游戏。玩家陪角色逛超市,做出选择。四项数值会随选择变化,数值的设置也体现了角色性格。

设定里多写角色具体做的事,少用形容词。比如用“他给挑食的猫买指定的猫粮”来代替“他很细心”,模型拿到的信息更具体,长对话里角色也更稳定。
除了写角色会做什么,也写清楚他不会做什么。这样可以减少模型变成普通助手的语气。
做着玩的网页小作品
这是 2025 年 12 月期末周的课程作业。我用 Three.js 和网页技术做了几个小东西,双击就能在浏览器里打开,可以直接点着玩。

粒子圣诞树
由粒子组成的圣诞树,可以点按钮让粒子散开,或者让雪停下来。

圣诞星球
点击屏幕切换三种形态:经典圣诞树、银河、梦幻星球。

小熊塔罗
掌机造型的塔罗抽牌小游戏,按键就能抽牌、翻牌。
写作与内容运营
第一本作品通过审核并签约
我独立负责选题、人设、大纲和每日更新。会根据读者评论和后台数据调整更新节奏和剧情。也接过约稿,题材有同人、正剧和古言。
作品是一本女频古言,架空王朝背景,写一个现代人穿越成女帝的故事。开书后连续 13 天日更,发布 14 章共约 4 万字。
16 岁读高中时写的第一篇回答,也是账号唯一一篇回答,没有推广。点赞 2939,收藏 2553,评论 1068,带来关注者 1138 人。
2020 年、16 岁时写的一条乐评,点赞 21886,回复 296。
多个账号、多种题材长期创作。同一内容会按不同平台的风格重写后发布。单篇点赞微博 100 至 200 余,LOFTER 200 余。
校内社团公众号
负责选题、写稿、排版和发布安排,也负责校内多场活动的文案策划和执行。
- AI 工具
- Claude Code、Codex(需求拆解、任务下发、产出验收、缺陷定位)
Claude、ChatGPT、Gemini、Grok;可灵 AI
- 设计剪辑
- Figma、Photoshop、Premiere、After Effects、剪映
- 编导训练
- 叙事结构、视听语言、分镜与剪辑、剧本写作、摄影
- 内容
- 选题策划、长篇连载、同人二创、多平台分发、公众号运营、活动文案
- 语言
- 普通话 · 母语粤语 · 母语日语 · 自由交流英语 · 日常与文档韩语 · 基础
日语是靠日本乙女游戏《Collar×Malice》自学的,两周目通关以后可以熟练听读。高考前临时从英语改考日语,日语成绩年级第一。
没有参加 JLPT 考试,可以接受现场日语口试。
- 品类理解
- 乙女手游长期付费玩家(《世界之外》《恋与深空》《光与夜之恋》);Otomate 作品全通关;橙光、易次元累计 300 小时以上
- 趋势
- 豆瓣长期活跃;通过 Reddit、TikTok、X 关注海外内容趋势
谢谢你看到这里。