用户只需要面对一个助理。它理解你说的话,记得你,决定什么时候开口;真正的活交给一群异构 Agent 去做,可以并行,也可以协作。
自上而下只有四层。用户永远在最上面那一层,只看到一个对话。
不是只有一个对话,而是三件事各自只有一个。
缺任何一条,系统就会退化成多个助理,而不是一个助理有很多只手。
Worker 只执行,不决定「这件事值不值得告诉用户」。否则三个 Worker 各自主张打扰,就是三路噪音。
人侧一个收件箱,严格串行,连发消息合并成一轮;Worker 侧各自排队,可以并行。
Worker 的产出只能走 report → Router → Outbox。不能自己发消息、开通知、回 IM。
画像、偏好、长期指令只归 Router。常驻助手有自己的事项记忆,跨任务的经验由 Router 提炼后写入。
你批准的是「这类事可以做到什么程度」。Router 把它变成 Worker 的委托边界,执行点自查,不再逐个弹审批。
Router 自己做的、Worker 做的,都留痕并进入索引:做了什么、用了什么、结果如何。回答「它最近在做什么」靠它。
边界按能力类别切,不按单个工具切。这样新增工具时能自动归类。
read:*跨项目、任务、日程、知识库、记忆orchestrate:*派工、挂接、查状态、回复、管理助手self:*记偏好、设提醒、跟进定时器、暂停write:*文件、shell、浏览器写、改仓库external:*对外发送、第三方写操作一个可以写进提示词的判断:如果需要向你解释「我先做了 A,又做了 B,然后做了 C」,这件事就不该由 Router 做。
常驻助手解决「某个事项和负责它的 Agent 更聚焦」,临时 Worker 解决「做完就散」。
| 常驻助手 Standing | 临时 Worker Task | |
|---|---|---|
| 来源 | 用户创建,或 Router 提议、用户确认 | Router 派工,或常驻助手再派工 |
| 身份 | 有名字、职责范围、事项记忆 | 无身份,属于某张工单 |
| 上下文 | 独立且长期 | 一次性,随工单归档 |
| 能否对话 | 能 | 不能,只看日志 |
| 生命周期 | 长期,可暂停、改名、换模型 | 任务结束即结束 |
| 主动消息 | 经 Router 投递 | 不可能 |
两个合同:Router 只持有助手的索引(名字、职责、状态、最近结论),细节按需读取;用户和助手聊完后,结论要回写索引,否则 Router 对全局失明。
对外只有三个词。Skill、MCP、知识库、模型选择都是内部实现。
任务类型、来源、项目、助手职责,把候选从几百缩到十几个。
给出选择理由;运行时可以补。
写进 Assignment,执行期间不变。行为可复现、可审计。
三个体验:可解释(为什么用了这个连接)、可纠正(以后别用,沉淀成偏好)、可固化(同类任务稳定后建议变成常驻助手)。
「把上周会议纪要整理成周报,发到团队群」
要对外发送,命中副作用,交给 Worker。
有对口的常驻助手就派给它,没有就开一个临时 Worker。
会议纪要连接、文档技能、IM 连接。你没配过,推断得到。
Worker 产出草稿;发送前查委托边界,超范围才回到 Router 审批。
Router 决定发什么,Outbox 发一条:「周报已发到团队群」。
每条都要有可测条件,不靠「看起来对了」。
实现前拍板,不影响上面的架构。