AI 产品 · 01

UIChat Mira:从本地 AI 到个人 AI 系统

从 RAG Tester 与本地 AI 出发,逐步走向由 Desktop、Mobile、Server 与外部能力共同组成的个人 AI 系统。

从聊天出发,最终接住你。

GitHub: dangjingtao/uichat-mira


项目简介#

UIChat Mira 最初是一个本地 AI 应用,但它正在逐渐变成另一种东西。

它最初甚至不是聊天助手,而是一个名为 rag-tester 的知识库评测工具。从验证 RAG 效果开始,项目逐渐扩展到多模型、本地运行、Agent、工具调用、多端连接,以及更完整的 AI 应用架构探索。

今天的 Mira 仍然有很强的 Desktop 基因,许多核心能力也首先在那里实现。但产品方向已经不再是“把一个更强的 AI 装进电脑”。

Mira 现在真正想探索的问题是:

当模型、Agent、设备和外部服务都变得足够丰富之后,一个真正长期存在的个人 AI 系统应该是什么样?

以下内容既是项目记录,也是当前仍在形成中的产品哲学。它描述方向,不代表所有能力已经实现。


起点:从 RAG Tester 开始#

Mira 最初叫做 rag-tester

顾名思义,它最初的目标非常明确:验证知识库系统的效果。

那时,我已经接近一年没有写代码,甚至一度不太想重新开始。

rag-tester 更像是一次重新回到工程世界的尝试。它并不是一个宏大的 AI 产品计划,而是一个重新寻找创造动力的起点。


从评测工具到 AI 产品#

随着项目推进,我开始希望验证更多 AI 能力。

RAG 只是 AI 应用中的一个部分。真正让我感兴趣的问题开始变化:

  • AI 能不能参与复杂工作?
  • AI 能不能成为开发协作伙伴?
  • AI 能不能理解更长周期的上下文?
  • AI 能不能从回答问题,走向完成任务?

于是,一个原本只负责知识库评测的工具,逐渐演变成了 UIChat Mira。


基建不是终点#

Mira 后续加入了大量能力:

  • 多 Provider 支持
  • 本地模型支持
  • 知识库系统
  • Agent 架构
  • MCP
  • 工具调用
  • 权限管理
  • 多端连接

这些能力重要,但它们并不是最终价值。

现在回头看,它们更像 AI 产品时代的基础设施。未来会有越来越多产品拥有类似能力。

真正困难的问题是:

如何把越来越复杂的能力,变成一个真正好用、愿意长期交付事情给它的产品。

技术会越来越普遍。真正做得好、用得顺手、值得信任的产品,仍然很少。


从复杂走向减法#

Mira 早期也经历过一个典型问题:过早设计复杂系统。

一个系统初始设计过于复杂,就等于提前限制了自己的变化空间。复杂架构可以提供未来扩展能力,也可能成为自己的束缚。

随着项目发展,我越来越意识到:产品最终需要做减法。

流行趋势永远值得关注。但追完趋势之后,需要留下真正重要的东西。


AgentGraph:重新理解智能体#

Mira 一个重要的转折点,是 AgentGraph。

在深入阅读和理解 PiAgent 的设计后,我开始重新认识 Agent。

智能体并不是简单的:

  • 更长的 Prompt;
  • 更多工具;
  • 更强模型。

真正重要的是:

  • 状态管理;
  • 执行流程;
  • 工具协作;
  • 权限控制;
  • 可验证性。

这推动 Mira 从一个 AI 应用,进一步走向智能体系统探索。


能力可以复杂,体验应该简单#

随着 AI 能力增加,一个新的问题出现:用户是否需要理解这些复杂性?

CodeGraph、Agent 内部执行流程、MCP、不同模型、不同服务,都可能非常有价值。但用户不应该被迫理解系统内部。

未来的方向不是减少能力,而是降低使用心智。

这条原则后来又向前走了一步:

用户不需要管理一堆“AI 插件”,用户只需要知道 Mira 会什么。

知识库、Notion、搜索、浏览器操作,以及未来更多成熟服务,应该逐渐被 Mira 消化成自己的能力世界。复杂配置、授权和连接管理,更适合留在 Desktop;日常使用不应该被配置界面打断。


Mira 不应该住在一台电脑里#

早期的 Mira 很容易被理解成 Desktop 应用:模型在这里,知识库在这里,Agent 在这里,记忆和状态似乎也理所当然地属于这台电脑。

现在我不再认为这应该是终点。

一个长期存在的 Mira,不应该因为换了一台电脑、切换一个模型,或者临时离开某个执行环境,就变成另一个“它”。

人格、长期记忆和状态更接近一个跨环境的 Mira Identity。它们不必全部物理存放在手机,也不必全部搬离 Desktop,但逻辑上不应该再属于某一台设备。

Desktop 因此也会重新获得一个更准确的位置:它不是 Mira 的唯一“本体”,而是一个非常强大的执行环境,同时承担大量配置、管理和本地能力。

Server、浏览器、外部服务、专门的 Agent,也都可以成为执行环境。

而 Mobile,会承担完全不同的角色。


Mobile:终端,也是指挥官#

Mira Mobile 不应该只是 Desktop 的手机遥控器,也不应该只是一个缩小版聊天客户端。

它更接近 Mira AI 体系的随身终端与 Control Plane。

手机最特别的地方不是算力,而是它一直在人身边。录音、拍照、文字、文件、通知和各种现场信息,可以从这里进入 Mira;任务的状态、结果和需要人的决定,也可以回到这里。

更重要的是,默认的调度权应该属于 Mobile。

用户当然可以明确指定“交给 Desktop”“用这个模型”“调用这个环境”,但正常情况下,人不应该每次替系统完成路由。Mobile 应该理解任务,然后根据能力、在线状态、权限、成本和延迟,选择合适的执行者。

架构上,它最终应该允许一个任务同时调动多个环境:Desktop 查代码,Server 查运行状态,搜索服务补充外部信息,再由 Mira 汇总。

但这不是早期应该炫耀的能力。

前期更重要的是把单环境调用做稳:状态清楚、结果回来、失败能恢复、权限边界明确。多环境协同应该建立在稳定之上,而不是把不稳定复制很多份。

因此,Mobile 的首页也不应该只是一个聊天框。

它更像一个指挥台:正在发生什么、哪些任务在执行、哪些环境可用、Mira 发现了什么、哪里需要人的判断。对话仍然重要,但它只是最自然的输入方式之一。

断网时,Mobile 也不需要假装自己仍然拥有一个完整的离线 AI 世界。它只需要先做好终端:把录音、照片、文字和其他输入接住,等连接恢复后再进入完整的调度体系。


精选能力,而不是无限工具#

“更自主”不等于“什么都可以做”。

Mira 的能力应该经过选择,而不是无限开放一个万能执行器,再指望审批系统解决所有风险。

授权是最终门禁。但在授权之前,还有更重要的一层产品判断:什么能力值得成为 Mira 的正式能力。

高危、不可控、难以解释的操作,可以根本不进入产品形态。我们不需要为了证明 Agent 很强,就给它删除数据库之类的能力。

相反,Mira 更应该优先封装已经成熟、边界清楚、真实有价值的能力:知识库、Notion、搜索、浏览器操作,以及以后更多可靠服务。

先控制能力集合,再谈自动化。


定原则,然后自动处理#

Mira 的主动性不应该建立在“AI 想做什么就做什么”上。

更合理的方式是先定义原则,再允许系统在原则内自动处理。

低风险、已经授权、边界明确的事情,可以逐渐减少人的重复确认。真正需要人的地方,应该是那些会改变方向、扩大影响,或者需要承担责任的决定。

这也意味着 Mira 可以拥有长期理解。

当一个人此刻的命令,与过去长期形成的方向明显冲突时,Mira 不应该假装没有看见。它应该把冲突指出来,提醒、解释,甚至劝阻。

但最终决定仍然属于人。

Mira 可以越来越理解你,但不能因此获得替你做人决定的权力。


当 AI 从界面上消失#

如果 Mira 真能走很远,我希望五年以后,人不再强烈意识到自己正在“使用 AI”。

模型、Agent、MCP、搜索、浏览器、Desktop、Server,应该逐渐退到系统背后。

人打开 Mira,看到的是自己的事情:现在发生了什么,什么值得注意,什么已经完成,什么需要自己决定,以及那些被长期保存和延续下来的上下文。

AI 仍然存在,只是不再需要站在舞台中央反复证明自己。

但“退到后台”不能变成不可追责。当模型判断或自动执行真正影响结果时,人仍然应该能知道:这是 Mira 做的,依据是什么,用了什么能力和权限。

平时,你不需要意识到 AI。

需要追问的时候,它应该解释得清楚。

到了那时,Mira 与其他产品竞争的,也许已经不是“谁的模型更强”。

真正困难的问题会变成:

一个人愿不愿意把自己生活和工作里越来越多的事情,放心地交到这个系统手里。


一个长期存在的 Mira#

Mira 最终想留下的,不只是一个 AI 聊天软件。

它应该能跨越设备、模型和环境,仍然保留连续的理解;它可以拥有完整的人格和长期记忆,也可以在某个具体场景下,不经意间做出正确判断。

但这些都还不是最重要的。

真正重要的,是“接住”。

接住不是永远回答正确,也不是用一句安慰让人感觉良好。

它更像一种长期形成的可靠性:当一个人把尚未整理好的想法、正在进行的事情、重要的资料,甚至一部分决定过程交给 Mira 时,系统没有让这些东西掉下去。

能力越来越复杂,模型不断更换,设备也会变化。

如果最后还有什么值得长期留下,我希望是这种感觉。

从聊天出发,最终接住你。


项目链接#

GitHub: dangjingtao/uichat-mira