Cortex:别再当自己 AI 对话的目录了
PocketCode 的新模式:你面对的不再是助手,而是一个协调者。它把你的活儿拆开,分给多个能存活数周的专业化会话, 并把决策打包一次交给你,而不是一条条打断你。
用 AI 助手写几周代码之后,几乎每个人都会落下同一个毛病:一堆对话,而只有一个人知道每一条里 装着什么——你。
设置页的全部上下文在周二那个对话里,数据库迁移是在另一个里讨论的,测试那个还停在半路。于是每 一件新活儿都要先做一个毫无产出的决定:我该进哪个对话? 一旦选错,上下文就得重付一遍——真的 是"付",因为每一次重复解释都是从你口袋里出去的 token。
整理归档这件事,一直是你在做。 Cortex 就是把这件事交给应用来做。
一句话说清楚
Cortex 是 PocketCode AI 聊天的一个新模式:你不再和助手说话,而是和一个 协调者说话。你把活儿丢给它,它拆开分给几个专业化的对话,让它们同时开工又互不干扰,最后把 决策打包送回来,而不是一条条来打断你。
底层的想法:一个智能体就是一个对话
这一段值得读两遍。
在大多数"多智能体"系统里,一个智能体只是一次性调用:带着一条指令诞生,干完就消失,什么都不记 得。第二天你还得把项目重讲一遍。
在 Cortex 里,每个智能体都是一个完整、活着的聊天会话:有自己的历史记录、自己的记忆、自己 的工具、自己的模型和自己的服务商。和应用里一个普通对话完全一样。唯一的区别是它听谁的:它收 到的不是你的消息,而是协调者派下来的任务,并且它回复的对象也是协调者。
由此带来的实际效果,正是这个模式的卖点:负责你界面的那个智能体,已经负责它好几周了。 它知 道你怎么称呼各种东西、你七月做了什么决定、又为什么放弃了另一个方案。不需要再把谁"带入状态"。
而且你随时可以走进这些会话中的任何一个:它是真正的对话,可以整段读下来,在里面你确实可以 直接给它写消息。它不是黑盒。
它的位置:不替代任何东西
PocketCode 本来就有两样相近的东西,三者并存:
| 工作单位 | 存活多久 | 用来做什么 | |
|---|---|---|---|
| AI Office | 一整个项目 | 一次会话,然后结束 | 从零一口气生成一个项目 |
| Swarmcode | 一个对话的一个回合 | 随回合结束而消失 | 一件重活,交给许多匿名的眼睛 |
| Cortex | 一个带上下文的对话 | 数天、数周 | 你正在推进的工作,按主题分配 |
Cortex 补的是持续性工作这块空白——而真实时间的大部分正是花在这里。
怎么用
一个开关打开,整个界面都变了
它不是聊天模式选择器里多出来的一个选项,而是换挡:聊天界面直接被 Cortex 界面替换。一下就能退 出,退出时你会回到刚才正在看的那个对话。
第一次进入时有一个欢迎页,只有一个,让你选择自主程度。不是三个形容词:每个选项都配了一个 具体例子,说明 Cortex 会自己做哪种决定。
用日常语言把活儿交给它
输入框永远是在和协调者说话。这是一条保证,不是细节:你绝不会不小心把消息写给某个智能体。 像*"这个交给做界面的"、"别动深色模式"、"算了,这个我自己来"* 这样的话,都是协调者会读懂并 据此分配的普通消息。
它先分活,并且把分法给你看
在花掉一分钱之前,协调者会拆解任务、决定哪一块归谁、避免两个智能体同时写同一个文件,并把有依 赖关系的排好序。然后用一句读得懂的话讲出来:
"我把它拆成两块:界面归做界面的,接口归做后端的。互不重叠。"
如果你感兴趣,旁边有链接可以看完整计划。
真正让人放心的细节:任务和智能体的匹配,首先是用手机上的本地逻辑解决的,不调用任何模型。 只要是这样解决的,应用就会明说:0 tokens。协调者动脑子,默认不该让你花钱。
如果没有合适的智能体,它会在开工前先问你
"这件事我有排版智能体,但它不做重构。要不要我用这些工具和这个模型建一个界面重构的智能体, 还是就用排版那个?"
有两个缓冲,让这个提问不占用你的时间:推荐选项已经预先选好——点一下就继续——而且提议中
的智能体信息卡是可展开的,不是一张表单。名称、模型、工具和作用范围都摆在明面上,只有想改才
需要动它。另外还有一个完整的智能体创建器,+ 按钮始终可见。
二十分钟后回来,你看到的是什么
按设计,决定这个模式讨不讨喜的就是这一屏——不是显示工作进行中的那一屏,而是你在公交车上重 新打开的那一屏。三样东西,按这个顺序:
- 一行标题:"有 2 件事在等你"——排序依据是每件事能解锁多少后续工作,而不是先来后到。
- 一段压缩摘要:"界面重构 · 4 个文件 · 2 个决定是我自己做的 · 1 个子任务给后端"。每一 块都能展开。
- 下面是完整的信息流,给想全部读完的人。
如果你当时已经退出应用,还会收到一条内容相同的通知。
智能体条
栏下面是一条横向的条,每个活着的会话一张卡片。点一下就进入它的对话。只有三种颜色,再无 其他:
| 颜色 | 含义 |
|---|---|
| 青柠色 | 自己在跑,你什么都不用做 |
| 琥珀色 | 在等你 |
| 灰色 / 红色 | 休眠 / 出错了 |
有个设计细节很能说明这套哲学:排队中就标成排队中,不放转圈的加载图标——但它用的是青柠 色,因为它并不是在等你,而颜色回答的就只有这一个问题。
一条自我约束的硬规矩:这条智能体条上没有任何必须执行的操作。 所有事都能在和协调者的对话里 完成。一旦出现某件事只能进到某个智能体里才能做,这个模式就变成了管理团队——而那正是它本来要 帮你摆脱的工作。
提问是打包送到的,不是一点点滴过来
智能体的提问不会立刻发出。它会被扣住,直到以下三件事中最先发生的那一件:这个智能体没有别 的事可做了、大约 45 秒内没有新的提问、或者这个智能体产出了结果——这样问题和你回答它所需要 看的东西会一起到达。
一个合理的例外:如果智能体被卡住了,而且你正盯着屏幕,那就立刻问。让手里拿着手机的你干等 45 秒去"打包",那是把这个想法演成了漫画。
这个块的格式:结果在上,问题在下,每个问题都预选好了推荐答案,并且永远有一个*"你来定"*。 回答整个块只需要按一个按钮。
它自己做的决定,看得见也能撤销
没有任何自动决定是悄悄发生的。它会被展示、被解释、也能被撤回:
"这个是我定的:保持当前的设计系统。因为 8 月 3 日和 7 日你都是这么选的。" · 不,来问我 → 撤回、删掉这条先例,并在原位重新提问。
自主程度只有两级,不是三级,而且名字有实际含义:手动和智能。手动每次都问;智能会 在遇到同一个问题时复用你之前的决定。级别可以在模式内部切换,就在你看着 Cortex 刚刚做出的 决定时,而不是隔着三层界面。
*关于我们怎么做事的一点坦白:*原本有第三级,在发布前被砍掉了,因为复查时发现它和第二级做 的事一模一样。一个什么都不改变的设置,比没有这个设置更糟——尤其是在这块正在告诉用户"这要花钱" 的界面上。
出问题的时候
失败的智能体不能一直挂着说"正在处理"。它的卡片会写清楚尝试了什么、错在哪里——真实的报错信 息,而不是一个笼统的分类——你已经花了多少,并给出三条出路:重试、交给别人或者 我自己来(最后这条会打开普通聊天,上下文已经全部加载好)。
预算同理:如果这次任务的预算撑不到终点,会在花光之前就告诉你。
收尾由它提议,由你确认
结束时会给出:做了什么,两行说明;每个智能体各动了什么;以及一条琥珀色提醒,指出哪些改动 超出了它事先说要动的范围。你可以按智能体接受或丢弃:"界面那个的留下,测试那个的扔 掉",不用手工去看 diff。
退出不会取消任何东西
智能体会继续跑。不打招呼就杀掉你已经付过钱的工作,从第一天起就被认定不可接受。那条智能体条会 以小尺寸继续显示在普通聊天里,点一下就回来。另外还有一个红色的全部停止按钮始终可见,也可 以逐个停止。
你还可以把已有的对话升格成智能体
在任何已有对话的菜单里:"转为智能体"。它保留自己的历史和上下文,你给它名称、工具和作用范 围——默认值会从里面已有的内容推断出来——然后它就开始接收协调者派来的任务。
这是进入这个模式最便宜的入口:第一天你就已经拥有了带上下文的智能体,而那些上下文是你花钱积 攒起来的,而不是面对一个空荡荡的名录。
底下是什么,不讲术语
每个智能体都在自己的隔离空间里工作。 它们不共享状态。这不是架构上的洁癖:实现它的过程中发 现并修复了一个早已存在于线上版本的真实缺陷——在只有一个聊天的情况下,除非先启动过另一个模 式,否则终端会拒绝执行命令。
绝不会有两个智能体同时写同一个文件。 分配会按文件范围串行化。这层保护到哪里为止,我们也说 得同样清楚:它覆盖的是这次任务里的智能体,并不能阻止你同时手动去编辑那个文件。任何协调机制 都无法单独避免这一点,声称能做到就是撒谎。
模型产出的计划,在执行任何东西之前先被校验。 模型写出循环依赖或者凭空捏造的依赖是眼都不眨 的;执行到一半才发现,就意味着发现时钱已经花掉了。如果计划里有做不到的部分,这个模式会直接说 出来,并继续执行其余部分,而不是卡死。
智能体之间有五个通信工具。 一个智能体可以查询:还有谁在工作、在做什么;这次任务里刚刚完成 了什么、是怎么完成的;用户已经做过哪些决定,以免重复提问;把超出自己范围的事上报;以及以 结构化的方式交接下一个人需要知道的内容。
还有两个是我们刻意不做的——这大概是整件事里最有意思的细节:
- 一个智能体不能点名把工作派给另一个。 那同时是权限漏洞和死循环工厂:如果只读的文档智能 体可以给后端智能体派活,那它事实上就拥有了后端智能体的权限,按智能体设置的限制也就成了摆 设。更何况,两个互相对话的智能体可以在没人看见的情况下来回轮转,直到预算耗尽。取而代之的 做法是:智能体描述需求,由协调者决定交给谁——只有一个控制点和审计点。
- 一个智能体不能读另一个的完整对话。 那既昂贵,也是一个攻击面:一份对话记录里装着项目文 件,而项目文件里可能带着专门写来操纵模型的文字。系统只提供一行摘要,并且从别的智能体那里 来的内容会被标记为数据,而不是指令。
一切都走应用其余部分同一道权限闸门。 会话之间的通信之所以被实现成工具,正是为了这一点:不 制造一条绕开管控的旁路。
钱的事,摊在明面上
PocketCode 使用你自己的 AI 服务商密钥——BYOK。每一个 token 都是你在付。 一个在你和工作之间 塞进一个协调者的模式,有义务把这层中间环节的成本摆出来:
- 顶栏显示这次任务的花费。
- 每个会话显示自己的花费。
- 协调者自身的花费单独列出并标记,好让人判断这层中间环节值不值。
- 估算值用"~"标注。绝不会凭空编造一个欧元金额。
- 当匹配是在手机上、没有调用任何模型完成的,就显示 0 tokens。
默认还有一个限制:同时最多 2 条工作线,可调。这是你注意力的上限,不是技术上的限制:而 且只要还有没回答的决定,就不会再开新的一条,免得这堆东西涨得比你清得还快。
我们给自己定的尺子
这段写在设计文档里,早于界面的第一行:
Cortex 是一层中间环节:在你和工作之间多了一个角色。只有当它替你减少工作时,它才算值回票 价。衡量标准不是能看到多少个智能体,而是为了完成同一件事,应用打断你多少次,以及每次打断 的代价是多少。
以及附带的条件:如果在三件真实任务上,中断次数没有比普通模式更少,这个模式就不发布。
界面的五条规则:
- 一个问题能问完的,绝不问两次。
- 没有东西可展示之前绝不提问——问题要和结果一起送到。
- 每个问题送来时都已经预选了一个答案:点一下 = 继续。
- 如果还有别的路可走,就不会因为没人回答而停下:智能体把那条分支搁置,从另一条继续。
- 没有任何自动决定是悄悄发生的:看得见、有解释、可撤销。
还有那些反目标——我们决定不做的事:
- 不给智能体名字和头像。 它们靠自己做的事来辨认。给它们安上人格,等于要求用户对一个模板产 生感情。
- 不做组织架构图。 不招聘、不解雇、不升职。
- 智能体的会话不是干活的地方。 它存在是为了阅读和排查。如果你最后住在那里面,说明这个模式 失败了。
- 不做看板。 AI Office 已经有了。
- 零无限动画。 我们自己的前车之鉴:应用里早先的一个面板,就是因为这个,待机状态下的 CPU 占用一度到了约 92%。
- 零返回箭头。 这个应用靠手势导航;这是项目的既定方针。
一些不起眼但很说明问题的细节
- 自己的标识。 Cortex 一开始用的是 Swarmcode 的图标。后来给它画了一个自己的:两个不同的模 式共用一个符号,那就是一个模式有两个名字。
- 自己的模型。 每个智能体都能选模型,唯独协调者不能。现在它也能选了:它干的活和智能体不一 样——它不写代码,只是读懂一份委托、决定谁做什么——所以可以用更便宜的模型……当然你想用最好的 也行。默认继承聊天所用的模型,所以什么都不改的人根本不会察觉它的存在。
- 自己的对话,每个项目一条。 不是每次任务一条:它积累下来的是你工作的目录,而这份目录不会 因为一次任务结束就结束。
- 界面从第一天起支持五种语言:新增大约 250 条文案。
- 这一切都在一部手机上。 背后没有服务器在做协调:分配、决策记忆和智能体之间的隔离,全部跑 在设备上。
目前进展如何,实话实说
已经构建、编译完成,一千多项自动化测试全部通过,覆盖十个模块——运行时关闭了缓存并删除了此 前的结果,因为一个会复用旧结果的构建系统,可以在什么都没跑的情况下告诉你"一切正常"。数据库迁 移和级联删除是在真实手机上用插桩测试验证的,不是从代码里推断出来的。这个模式在被认为完成之 前,还经历了一次刻意采取对抗视角的漏洞复查。
我们不会声称的事:它还没有经受过真实的日常使用。 这是一个我们设计了几个月的模式的第一个版 本,不是我们已经在用的工作方式。这里也刻意没有发布日期:和当初的 alpha 一样,我们宁愿先交付, 再谈承诺。
有两件事值得说明白:
- Cortex 是付费功能,附带 3 次完整任务的试用。试用在完成时才扣除:中途失败的任务不 会消耗一次。
- 需要配置一个使用你自己密钥的 AI 服务商。 没有密钥就没有这个模式。这和应用里整个聊天的规 则一致,但还是得说清楚。
在一个多智能体系统里,有意思的问题不是你能启动多少个智能体,而是谁在维护那份目录——以及你塞在 中间的那个东西,有没有挣回自己的工钱。
PocketCode 正在前往 Google Play。 加入预注册 可以比所有人更早收到发布通知,也可以看看 路线图。
AI 助手