2026 年 9 月 8 日,我们继续讨论 Mira。
上一篇草案停在 Agent、工具、触界、MCP、Mobile 和外部世界。那时我们已经意识到,Mira 正在长出越来越多可以接触现实环境的能力,但很多东西还没有被放到合适的位置。
这一次讨论没有继续往 Agent Runtime 的节点、Planner 或 Tool Schema 里面钻,而是有意停留在产品和架构边界上。
我们重新问了几个更基础的问题:
Mira 拥有什么能力?
Tool、MCP、微应用和 Agent 分别应该是什么?
当 Agent 真正开始替用户持续工作以后,那些工作又应该存在于哪里?
有些问题这次已经出现了相对清楚的方向,也有一些被明确放进了“需要继续调研”的小本本。
这仍然不是版本规划,也不是已经可以直接施工的架构合同。
它只是第二次草案。
审批不应该成为 Agent 每走一步都要敲一次门#
Mira 当前高风险操作的审批体验仍然比较重。
如果 Agent 连续执行一个工作任务,用户可能反复面对网络请求、文件操作、Shell、删除等授权。单次看,每一次确认都有安全理由;连续看,它却很容易把 Agent 重新变成一个必须由人逐步遥控的工具。
所以我们提出了一个新的方向:
审批对象应该从“这一次动作”,逐渐升级为“这一类能力在什么边界内可以自主执行”。
例如,用户第一次允许 Mira 在当前工作空间执行普通 Shell 命令以后,只要操作仍然处于相同的风险边界,就不应该每一条命令重新询问。
真正值得重新审批的,是边界发生变化:
同一种能力
+ 相同作用域
+ 相同目标性质
+ 相同副作用边界
→ 不重复询问
作用域 / 目标 / 风险发生变化
→ 重新审批我们暂时把高风险能力粗分成三类:
- 首次授权后可持续使用;
- 作用域或目标变化时重新授权;
- 即使已经授权,仍然保留强确认的不可逆操作。
但这一部分没有定案。
尤其是删除、外部数据发送、凭据使用、跨工作空间访问、远端资源修改,以及什么操作应该永远保留强确认,都需要专门做一轮安全与产品调研。
因此这条目前的状态很明确:
方向暂定,特别调研。
我们不准备因为嫌弹窗烦,就草率地把安全边界拆掉。
每个 Agent 对话应该先拥有一块自己的地方#
审批问题很快把我们带到了另一个更基础的问题:Agent 到底在哪里工作?
第二次草案提出了一条很具体的产品方向:
每一个默认 Agent Conversation,都应该拥有自己独立的小文件夹。
它不是一个用户需要主动创建的“项目”,更像这条对话天然拥有的工作空间。
Agent 可以在那里保存:
- 用户交给它处理的文件;
- 临时产物;
- 下载内容;
- 中间结果;
- 脚本;
- 最终 Artifact;
- 为这条任务链生成的其他文件。
这块独立目录也天然提供了一条权限边界。
在自己的 Conversation Workspace 内,Agent 可以拥有相对自由的文件操作空间;一旦它需要访问用户其他目录、另一个项目,或者系统级路径,再进入更高一层权限判断。
这比简单地给一个 Agent “文件系统权限”更符合 Mira 想做的事情。
Agent 不是获得整台电脑。
它先获得一块属于当前工作的地方。
能力不应该继续由工具名字定义#
讨论 Mobile 调用 Desktop 能力时,我们最初尝试了一套很直觉的分类:
感知
看
读
搜
增
删
改这套语言非常容易理解,但很快暴露出一个问题:它混合了不同层级。
“截图以后读文字”到底属于看还是读?
“搜索文件然后打开结果”到底属于搜还是读?
“网页请求”既可能只是获取公开信息,也可能把本地文件发送出去。
因此第二次草案更倾向于先把 Mira 的行动能力收敛成几个更稳定的一级概念:
感知
获取
变更
执行
外联其中:
获取
├─ 看
├─ 读
└─ 搜
变更
├─ 增
├─ 改
└─ 删“执行”被单独拉了出来,因为 Shell、脚本、CLI、应用操作和自动化都无法自然塞进 CRUD。
“外联”也被单独拉了出来,因为访问互联网和向外部世界发送东西,在风险上完全不是同一件事。
这套 Capability 分类主要回答:
Mira 能做什么?
审批系统则回答:
这种能力在什么边界内可以执行?
两者不应该继续混成一个 taxonomy。
这也会影响 Mobile。
未来手机端不应该理解 Desktop 上到底安装了多少 MCP Server、多少 Tool、多少 Provider。
它更应该看到:
这台桌面 Mira 现在能提供哪些能力?
实际由哪个 Tool、MCP、浏览器 Runtime 或本地程序完成,是 Desktop Runtime 内部的事情。
Tool 不应该是 MCP Tool 的别名#
能力分类继续往下讨论时,我们发现了另一个历史理解可能需要纠正的地方。
Mira 当前有相当一部分内部工具体系围绕 MCP 组织,这在早期非常方便,因为 MCP 提供了现成的 Schema、发现和调用协议。
但它也容易产生一个错误印象:
Tool 必须先成为 MCP Tool,才能成为 Mira 的能力。
第二次草案现在更倾向于反过来理解:
Tool 是 Mira 自己的能力执行单位。MCP 是这些能力可能采用的一种互操作协议。
因此未来更自然的结构可能是:
Agent
↓
Capability
↓
Tool Runtime
├─ Native Tool
├─ MCP Adapter
├─ Browser Runtime
├─ Remote Capability
└─ 其他 ProviderMCP 仍然非常重要。
Mira 仍然可以作为 Host 消费第三方 MCP Server,也可以把自己的精选能力通过 MCP 暴露给 Mobile 或其他客户端。
但 Mira 内部的工具不应该为了“能够被 Agent 使用”,先包装成 MCP。
否则权限、生命周期、可见性、调用和能力路由都会逐渐被一个外部协议反向定义。
这部分还需要结合当前代码进一步判断实际耦合程度。
如果现状只是“统一接口借用了 MCP Tool Schema”,问题不大。
如果 Tool 只有挂进 MCP 才能存在,那就真的需要重构。
微应用开始从“一个设置页里的大筐”变成真正的平台概念#
上一篇草案里,我们曾经尝试把 MicroApp 收缩成“拥有独立 UI 的领域能力”。
这一次,我们走得更远了一些。
首先确定的是:
微应用首先是一个长期存在的小产品。
它不是 Agent 完成一次任务以后临时长出来的 UI,也不从属于某一条 Conversation。
它应该拥有:
- 自己的 UI;
- 自己的状态;
- 自己的数据;
- 自己的生命周期;
- 独立运行能力。
随后我们又做了一个更大胆的判断:
微应用是独立可执行程序。
它不一定必须经过 Mira 主 Tool Runtime 才能做任何事情。
一个微应用理论上可以拥有自己的:
- 文件能力;
- 网络能力;
- Shell;
- MCP;
- 模型调用;
- 甚至自己的 Agent Runtime。
这意味着 Mira 对微应用的定位不再只是“一个页面容器”。
我们选择了:
Mira 是微应用平台。
平台应该提供一层尽量轻的 Contract,例如应用标识、入口、生命周期、UI、能力声明、权限声明和版本信息;但平台不应该把微应用内部每一次执行都收编进 Mira 主 Runtime。
这里的原则更接近:
Mira 管平台边界,微应用保持程序自主性。
人可以打开微应用,Agent 也可以#
我们没有把微应用变成一个只给人使用的“应用中心”。
也没有把它降级成只有 Agent 才知道的隐藏 Tool。
第二次草案明确选择了双入口:
User
──→ Micro App
Agent
──→ Micro App用户可以主动打开一个微应用,把它当一个长期存在的小产品使用。
Agent 也可以根据当前任务主动发现并唤起它。
微应用自己声明支持:
foreground
background
both有些任务适合后台运行,例如批量整理、转换和索引;有些任务需要立即打开 UI;还有一些可以先后台工作,真正需要用户介入时再拉起界面。
微应用内部理论上也允许拥有自己的 Agent Runtime。
但它不是微应用的必备条件,只是一种高级形态。
微应用之间不应该长成一张硬依赖网#
我们还讨论了微应用之间如何协作。
最后没有选择 App A 直接调用 App B。
更倾向于:
Micro App A
↓
Agent
↓
Micro App B微应用保持独立。
跨应用协作由 Agent 完成发现、选择、上下文传递和任务协调。
这样可以避免 Mira 最终长成一张复杂的应用依赖图。
同时,微应用向 Agent 暴露的也不应该只是几十个底层 Tool。
我们选择了更产品化的一层:
微应用向 Agent 暴露“服务 / 意图”。
例如:
整理录音
分析表格
编辑图片
生成演示文稿Agent 需要知道的是:
这个应用能替我完成什么?
至于内部最终使用 Tool、MCP、Workflow 还是它自己的 Agent,是微应用自己的实现。
这也意味着 Mira 需要某种 Micro App Registry。
但 Registry 不应该把全部微应用描述每轮都塞进模型上下文。
更合理的是:
Micro App Registry
↓
任务相关候选筛选
↓
少量能力渐进式披露
↓
Agent这部分和我们之前对 Tool 渐进式发现的方向很相似。
但“微应用是不是插件体系”没有讨论出结果#
这里我们停住了。
一个很诱人的方向是:
Mira 的微应用最终可能承担插件体系。
因为它已经具备 UI、独立执行、能力扩展、Agent 调用和长期存在这些特点。
但继续往下推以后,又会遇到反例:
- 纯 Skill 没有 UI;
- 一个 MCP Server 未必是应用;
- Connector 可能只有授权配置;
- Headless Tool Provider 也可能扩展 Mira;
- 浏览器扩展有自己的产品形态。
因此目前存在两个候选方向。
一种是:
Mira 一级扩展能力
└─ Plugin System
├─ Micro App
├─ Skill
├─ Tool Provider
├─ MCP
└─ Connector另一种则更激进:直接让“微应用”成为 Mira 插件体系本身。
这次没有结论。
我们明确把它留在第二次草案的小本本里,而不是因为其中一个结构看起来漂亮,就提前把产品命名钉死。
浏览器能力可能会吞掉一批现在看起来必要的专用能力#
我们也重新提到了 News Hub 和网页搜索。
现在回头看,很多所谓“网络能力”其实可能只是浏览器能力尚未成熟时的过渡形态。
例如:
- 查新闻;
- 搜索网页;
- 查某个网站;
- 阅读论坛;
- 获取登录后页面;
- 操作 SaaS;
- 上传与下载。
未来它们未必值得分别拥有一个专用 Tool。
更自然的方向可能是:
Web 世界优先收敛到 Browser Capability。
浏览器能力本身则可以包含:
看网页
读网页
搜网页
操作网页
使用登录态
提交
上传
下载于是“查新闻”只是浏览器能力的一次任务。
“搜索 GitHub”也是。
“进入某个后台检查状态”仍然是。
这不意味着所有外部能力都会被浏览器替代。
邮件、IM、API、系统服务、企业集成等场景,专用协议依然可能更加稳定、高效和可治理。
但我们不应该因为一种 Web 场景今天还不好做,就不断创造新的长期 Tool 名称。
浏览器很可能成为 Mira 连接数字世界的一块基础能力。
Mira 不能只有行动能力,还需要认知能力#
讨论到这里,我们又碰到一个看起来很性感的词:
洞见。
一开始很容易把 Insight 当成一个高级 Tool。
但继续想下去以后,我们发现它和“获取、执行、外联”不是同一种东西。
行动能力回答的是:
Mira 能做什么动作?
洞见回答的是:
Mira 从已经拥有的信息里看出了什么?
它可能来自:
- 对话历史;
- 用户文件;
- 浏览器环境;
- 微应用数据;
- 项目状态;
- 邮件;
- 日程;
- 长时间积累的事件变化。
最后形成的不是简单总结,而可能是:
这几个需求其实指向同一个问题。
这个项目最近的执行节奏出现了异常。
用户几次看似无关的修改,实际上都在绕同一项技术债。
两条原本分开的信息,应该被放在一起重新判断。
这让我们开始尝试把 Mira 的一级能力分成两组:
行动能力
├─ 感知
├─ 获取
├─ 变更
├─ 执行
└─ 外联
认知能力
├─ 记忆
├─ 上下文
└─ 洞见其中:
Memory 负责沉淀。
Context 负责在当前任务里调度什么。
Insight 负责从这些信息中发现新的关系、趋势和判断。
这目前只是概念层。
但它带来了一个很重要的变化:
Mira 不再只是拥有越来越多“手和脚”。
她开始需要一个真正持续工作的认知底座。
Agent 不再是一个模式,而是 Mira 的行动主体#
第二次草案最后回到了 Agent。
我们这次没有继续讨论 Agent Loop 的节点,而是重新定义了产品层的 Agent:
Agent 是 Mira 的行动主体。
它不是一个聊天里的高级开关,也不是某个特殊任务才进入的模式。
聊天、Tool、Browser、MicroApp、Memory、Insight 等能力,最终都可以由 Agent 根据当前目标进行协调。
但产品上,Agent 又可以表现为不同的个体。
我们暂时把它理解为:
Agent 是继承 Mira 统一 Agent 架构的个体化行动主体。
不同 Agent 可以拥有自己独立的:
- 人格;
- Tool 可见性;
- 特殊 Skill;
- 领域知识;
- 工作方式;
- 行为偏好。
一个代码 Agent、一个研究 Agent、一个更偏生活协助的 Agent,可以明显不同。
但它们不需要复制一整套 Runtime。
它们继承同一个 Agent 架构。
短期我们不准备一上来做一个复杂的“Agent 工厂”。
先做我们认为真正靠谱的少量 Agent。
但长期来看:
Agent Definition 必然需要向用户开放。
用户应该拥有定义自己 Agent 的能力。
开放的是人格、能力、Skill 和工作方式,而不是让普通用户重新实现 Planner 和 Runtime。
Agent 做出的工作不能最后只剩在聊天记录里#
这一轮讨论里,我们还定了一条非常产品化的原则:
Agent 做出的工作,需要进入看板。
这并不意味着每句话、每次 Tool Call 都要变成一张卡。
真正需要进入看板的,是形成了持续工作价值的对象:
- 任务;
- 工作包;
- Artifact;
- 需要用户确认的结果;
- 尚未完成的工作;
- 已完成但值得继续管理的成果。
因此聊天和看板承担不同职责。
聊天更像:
理解、讨论、委托、协调。
看板则承接:
任务、状态、产物和持续工作。
一个 Agent 不能每次聊完以后,工作事实就重新埋进 Conversation History。
如果 Mira 真正开始长期替用户工作,她必须拥有一个用户可以重新找到、继续管理和接管这些工作的地方。
Forge 已经展示出一条很初级、但真实的流水线#
讨论看板时,我们重新看了已经进入 Mira Desktop 的淬行 / Forge。
它目前已经存在一条比较清晰的工程闭环:
Project
↓
Main Thread
↓
Repository Task
↓
Dispatch
↓
Builder
↓
Review / Fix
↓
Result Handoff同时它拥有 Batch、Runtime Task、Dispatch、Session、Review、Runtime Event 和 Handoff 等执行期状态。
这意味着 Forge 已经不只是“一个代码 Agent”。
它开始形成一种更长期的生产关系:
工作对象被创建,进入执行,经历状态变化,由不同角色接力,最后形成可追踪的结果。
这和我们刚刚讨论的 Agent 看板很接近。
因此第二次草案出现了一个新的判断:
Forge 可以被看作 Mira Agent 工作流体系的第一个专业化样本。
但我们不准备把 Forge 的全部结构抽成 Mira 的通用 Agent 模型。
Builder、SHA Review、Task Card、工程 Branch 等很多东西都属于软件开发领域。
普通研究、写作或生活任务不应该被强迫套进一条软件流水线。
真正值得继续观察的,是 Forge 已经表现出来的四个抽象:
工作对象
→ 状态流转
→ Agent / 能力接力
→ 产物落板如果未来 Mira 真的形成更一般的工作流能力,Forge 可能不是那个通用系统本身。
它更像第一个证明:
Agent 的工作可以从一次聊天,成长为一个持续存在的生产过程。
还有哪些事情没有讨论完#
这次比上一篇走得更远,但远没有结束。
审批模型#
首次同类授权、风险签名、跨作用域重新审批和强确认到底怎么定义,需要专项调研。
这是安全边界,不适合靠产品直觉拍板。
微应用 Contract#
我们已经形成产品定义,但还没有研究最小 Manifest、运行承载、进程隔离、数据目录和生命周期协议。
微应用权限#
既然微应用可以是独立执行程序,它自己的 Shell、网络、文件操作与 Mira 主审批系统之间是什么关系,需要单独设计。
微应用的数据边界#
微应用有自己的长期数据,Conversation 有自己的 Workspace。
两者怎样交换文件、引用 Artifact 和转移工作,还没有讨论。
Desktop 与 Mobile 的微应用关系#
手机是否能发现桌面微应用、遥控后台任务、进入部分 UI,Mobile 自己是否也拥有微应用平台,这一轮没有展开。
微应用与插件体系#
没有结论。
这是明确保留的问题,不应该被当前任何一版示意图提前定案。
洞见#
Insight 很吸引人,但它如何产生、何时主动出现、怎样避免成为一个不断“自作聪明”的提醒系统,还需要非常克制地讨论。
通用 Agent 看板与工作流#
我们只确定 Agent 的持续工作需要落板,也发现 Forge 已经具有初级流水线特征。
但 Mira 是否需要一套通用工作流,以及它应该薄到什么程度,这一轮没有继续设计。
第二次草案暂时走到这里#
和上一篇一样,我们没有准备马上把这些方向全部变成任务卡。
今天最值得留下来的,不是某一个具体 Schema,而是几个逐渐变清楚的层级:
- 审批应该面向能力边界,而不是无限重复确认单次动作,但安全规则需要专项调研;
- 每条默认 Agent Conversation 应该拥有自己的独立工作空间;
- Mira 的行动能力可以先按感知、获取、变更、执行、外联理解,风险审批使用独立维度;
- Tool 应该是 Mira 自己的能力执行单位,MCP 是其中一种互操作协议,而不是所有 Tool 的根;
- 微应用正在从一个混合的 Settings 大筐,重新被定义为真正独立、可执行、有 UI、可以被人和 Agent 使用的小产品;
- 微应用向 Agent 暴露的应该是“它能完成什么服务”,而不是一堆内部 Tool;
- 微应用与插件体系之间的关系暂时没有结论;
- Web 世界里的很多专用能力,未来可能逐渐收敛到 Browser Capability;
- Mira 除了行动能力,还需要记忆、上下文和洞见这样的认知能力;
- Agent 是 Mira 的行动主体,不是一个特殊模式;不同 Agent 共享统一架构,但可以拥有自己的人格、工具、Skill 与工作方式;
- Agent 形成的持续工作不能只留在聊天历史里,而应该进入看板;
- Forge 已经展示出一种初级但真实的长期工作流水线,它可能成为未来通用 Agent 工作流的重要参考,而不是通用模型本身。
如果上一篇草案在问:
Mira 怎样真正把手伸向外部世界?
那么这一篇更像是在问:
当 Mira 已经拥有越来越多手、眼睛、工具和工作台以后,她要怎样把这些东西组织成一个真正会持续工作的自己?
答案还没有完成。
但至少,很多原来堆在一起的东西,开始慢慢回到属于自己的位置。
