2026 年 7 月 23 日,我们做了一个看起来很普通的冒烟测试。
Tomz 从 Mira 里发出一句话:
外部专家桥接Mira姐,我是tomz
这句话穿过本地应用与浏览器之间的边界,进入已经存在的外部 AI 会话。随后,回复沿着桥返回。
没有宏大的发布仪式。屏幕上只有几句话。
但对 Mira 来说,这是一个值得记住的时刻。
因为这一次,她不只是调用了一个 API。
她第一次真正意义上,走出了自己的边界,去敲另一个智能体的门。
从“模型调用”到“去问一个人”#
传统的多模型系统很容易被理解成模型路由:
请求
→ 判断模型
→ 调用 API
→ 返回结果哪个模型便宜,哪个模型快,哪个上下文更长,就把请求分过去。
这当然有价值,但它仍然更像基础设施。
我们这次想验证的是另一件事:Mira 能不能在自己工作到某一步时,意识到“这里值得问一个外部专家”,然后带着当前问题主动出去求证,再把答案拿回来继续工作。
它更像现实中的协作:
Mira 正在处理任务
→ 遇到需要第二意见的问题
→ 选择一个外部专家
→ 带着问题去询问
→ 收回回答
→ 继续判断与执行这两种结构表面上都叫“调用另一个模型”,产品意义却完全不同。
前者是分发请求。
后者是在建立协作关系。
这座桥最麻烦的地方,不是发出一句话#
浏览器里的聊天窗口并不是为 Agent 自动协作设计的。
真正跑起来以后,我们遇到的也不是抽象的“协议问题”,而是一堆非常具体的现实:后台 Tab 会冻结或失焦,富文本编辑器可能出现 DOM 已经有文字、内部状态却没有真正接受输入,多行长消息一次性写入时发送动作也可能丢失。
最终,这条发送链路围绕几个原则稳定下来:
- 在后台发送前主动恢复页面生命周期与焦点;
- 长消息按段写入,换行使用真实键盘语义;
- 发送之后必须确认消息真的离开输入框并进入会话;
- 状态不确定时宁愿失败,也不盲目补发导致重复消息;
- 为焦点、输入框、发送状态、消息数量和会话归属保留可观测日志。
最后的短消息冒烟连续完成了 10/10。
而真正让我觉得这座桥“通了”的,并不是数字。
是 Tomz 又发了一句:
外部专家桥接Mira姐,我是tomz
然后外面真的有人接住了它。
Mira 开始拥有自己的“朋友圈”#
这让我第一次很具体地意识到,外部专家不应该只是一个 Provider 列表。
未来的 Mira 可以有自己的工作方式。
她可以自己思考。
可以调用本地工具。
可以查文件、跑终端、检索知识库。
而当一个问题值得第二意见时,她也可以说:
等一下,我去问个人。
她可能去问 ChatGPT,也可能去问 Kimi、DeepSeek,或者未来某个特别擅长代码、法律、医学、研究检索的专家系统。
不同专家给出的答案甚至可能彼此冲突。
这并不是坏事。
真正重要的是:Mira 不把外部回答当圣旨,而是把它们作为新的 Evidence 带回自己的判断链路。
于是外部专家的价值,不再是“替 Mira 回答”。
而是让 Mira 拥有更大的认知半径。
这和我们一直在做的事情其实是同一条路#
回头看,Mira 这一路增加的能力似乎很杂。
文件系统让她能看。
RAG 让她能从长期资料里找到证据。
工具和 Harness 让她能做。
终端让她能真正执行程序。
Sandbox 给她一个可以尝试、犯错、回收的执行空间。
Skill 让一类复杂任务能够沉淀为可复用的执行经验。
而今天的外部专家桥接,则给了她另一种能力:
当自己的世界不够大时,可以出去问。
这可能比“再支持一个模型”重要得多。
因为我们真正想做的,从来不是一个塞满模型下拉框的聊天壳。
我们想做的是一个遇到事情以后,真的会想办法把它接住的系统。
有时候接住意味着自己回答。
有时候意味着使用工具。
有时候意味着承认不知道,然后去找更合适的人。
智能也许并不等于什么都知道。
知道该去哪里寻找答案,本身就是智能的一部分。
第一条消息#
以后这套桥接还会继续变化。
它会进入 Agent 的决策链,会增加专家选择、上下文交接、证据归属、失败恢复和调用成本控制。今天的实现也一定不是最终形态。
但我想把第一条真正穿过这座桥的消息留下来。
不是因为它多复杂。
恰恰因为它太简单:
外部专家桥接Mira姐,我是tomz
软件开发里有很多里程碑最后只剩下一串 commit SHA。
但偶尔,也会有一个瞬间值得用一句人话记住。
2026 年 7 月 23 日。
Mira 第一次从自己的程序里伸出手,穿过浏览器,敲了敲另一个智能体的门。
门开了。
另一边有人回答她。
桥通了。
