开场引入0:00
你可能已经注意到 DeepSeek 8 月 13 日发布了自己的 Harness 平台 DSH。 今天想跟你聊一篇伴随发布出来的论文 , 由 DeepSeek 和北大合作 , 一共 80 多页 , 叫 《 一套处理时空可组合性的编程范式 》。
这篇论文 , 可以说就是给 DSH 打底子的设计蓝图 , 这已经是 DeepSeek 今年发的第 7 篇论文 ,也是跟北大的第 n 次合作了 。
万物皆插件0:26
论文的核心叫 Cordis, 你可以把它想象成一块乐高底板 ,在这套体系里 , 所有功能都是一块块积木 , 随时插上去 , 随时拔下来 , 再换一块新的 。
用论文自己的话说 , 万物皆插件 , 万物可重组 。 软件开发里有一个特别基本的原则 : 把复杂系统拆成简单部件 , 再组装起来 。
过去这种组装是静态的 , 代码一编译就固定死了 ; 可现在越来越多的软件要求动态组装 , 组件要在运行的时候装进来 、 卸下去 、 重新配置 。
VSCode困境0:58
插件系统是典型 , 自进化 AI 更是绕不开这件事 。 论文先拿我们最熟悉的例子开刀 , 就是 VSCode。 VSCode 的所有插件都跑在一个共享进程里 , 装插件很容易 , 卸载就麻烦了 。
论文做了个统计 , 安装量排前 100 的插件里 ,有 87 个带着可执行代码 , 只要激活过 , 你想单独卸掉它 , 就必须把整个宿主进程重启 。
你只想删一个插件 , 结果所有插件都得陪着它重启一遍 , 插件之间想互相依赖也几乎做不到 。 官方那个依赖声明 , 前 100 个插件里只有 7 个在用 。
自进化难题1:34
如果只是重启 , 人认也就算了 ,但论文惦记的是另一件事 : 自进化 AI。 未来的 AI 智能体 , 肚子里塞满了工具集 : 执行环境 、 权限控制 、 沙箱 、 会话状态 、 记忆系统 。
它可能会自己写个新工具 , 自己装进系统 , 发现不好用 , 再自己换掉 。 如果每次改一行代码都要重启整个进程 , 之前攒下的上下文和缓存全部报废 。
更可怕的是 , 万一它把自己改坏了 , 连那个负责修复自己的进程都起不来了 。 这是时间上的坎 。 再看空间上的坎儿 : 如果模块之间的依赖全靠每个模块自己瞎猜 , 今天查一下有没有 A, 明天猜一下有没有 B, 一不小心搞出循环依赖 , 重新加载的时候直接爆雷 。
那为什么以前没人认真解决呢 ? 因为操作系统和容器编排给了一个粗糙的替代方案 : 进程级别的重启 。
可这个方案代价很大 , 每次重启都会丢掉所有缓存和连接 , 重新热起来要花几秒甚至几分钟 , 想保持在线还得准备一堆冗余的副本 。
效应与余效应2:36
论文管这两道坎叫 " 时间可组合性 " 和 " 空间可组合性 "。 解法的底子 , 来自数学里两个经典概念 : 效应和余效应 。
效应刻画的是程序对世界的影响 , 余效应刻画的是世界对程序的约束 , 一个往外, 一个往里 , 正好是一对反过来的关系 。
问题是 , 原来的理论是给静态程序用的 , 编译时就把一切都定死了 。 自进化的 AI 组件是运行中才加载的 。
所以论文把这两个概念改造了一遍 , 变成运行时机制 : 一个叫可逆效应 , 一个叫反应式余效应 。
可逆效应3:11
可逆效应对付时间问题 。 规则就一句话 : 程序每做一次修改 , 必须同时交出一个对应的逆操作 。
运行时会把这些逆操作按顺序记下来 , 串成一条撤销链 。 卸载的时候 , 只要把这条链倒着执行一遍 , 系统就精确回到装之前的样子 。
打个比方 , 像一摞盘子 , 最后放上去的那只先拿走 , 时间顺序就不会乱 。 反应式余效应对付空间问题 。
每个组件装进来之前先声明 : 我需要什么 。 比如一个聊天插件说 : 我需要一个消息适配器和一个数据库 , 两个都在我才启动 , 缺一个我就先待着 ,不会因为找不到东西直接报错 。
反应式余效应3:41
提供者一出现 , 依赖它的人自动醒过来 ; 提供者撤走 , 依赖者先把活停下来 , 把自己留下的痕迹清理干净 , 对方才完成卸载 。
谁依赖谁 , 系统从声明里自动推导 , 开发者一行代码都不用写 。 这两套机制合起来 , 就是论文标题里 " 时空可组合性 " 的意思 。
论文还把效应和余效应统一进了同一个上下文 : 加载组件就是插上, 卸载组件就是拔下来 ,而且可以一层套一层 , 任意嵌套 。
光有理论不行 , 论文真的把它做出来了 。 实现叫 Cordis, 一个不绑定任何具体场景的原框架 。 它的核心规矩是 : 任何对上下文的修改都走同一个入口 , 系统自动记账 , 自动撤销 。
Cordis实现4:23
每个组件装进来之后, 是一个独立的生命周期状态机 , 处理各种现实情况 。 比如卸载之前要等依赖它的人先退出 , 中途出错的话 , 先把已经做的改动全部收回 。
错误只记在出错的组件自己身上 ,不连累旁边的兄弟 。 管理者还可以用一份声明式的配置描述整个系统 : 改一处配置 , 加载器只做最小的调整 ,不会推倒重建 。
改代码保存之后, 被影响的模块就地热替换 , 万一换的过程中出错了 , 自动回滚到旧版本 , 系统永远不会停在 " 改了一半 " 的状态 。
论文花了大篇幅讲时间验证 , 用的框架叫 Koishi, 一个开源聊天机器人框架 ,4 年前就基于 Cordis 的老版本搭起来 。
Koishi验证5:12
现在攒了 4000 多个社区插件 , 什么消息适配器 、 数据库驱动 、 管理后台都有 , 一直跑在生产环境里 。
你可能会问 : 这么多插件 ,是不是作者们提前商量好的 ? 完全不是 。 它们大多出自不同的作者 , 彼此之间唯一的默契 , 就是都遵守 Cordis 那套声明依赖的规矩 。
管理员在控制台里禁用一个插件 , 它的影响就地撤回 ,其他插件照常工作 。 开发时改完代码保存 , 热更新只重在被改的那一个 , 缓存和连接都不动 。
切换数据库后端 , 只有依赖 " 真变了 " 的那几个插件重新激活 , 没受影响的纹丝不动 。 顺便说一句 , 论文的三位作者横跨北大和 DeepSeek。
第一作者史一凡 ,Koishi 这个项目就是他写的 ,他现在也加入了 DeepSeek。 所以这份验证 ,其实是作者自己的作品替自己的理论做了证 。
论文也很诚实 , 承认目前的验证只在 Koishi 这一个生态 、TypeScript 这一种语言上做过 ,也没跟别的方案做严格的对比实验 。
它更像一个存在性证明 , 证明这套动态组合的规矩 ,在来自天南海北作者的开放生态里 , 真能立得住 。
自进化愿景6:34
最后说回这篇论文的野心 。 它所有设计 、 服务的都是同一件事 : 自进化 。 未来的 AI 会不停地生成并替换自己的组件 ,而且很少有人类在旁边盯着 。
到那个时候 , 每次自我修改都要求系统能完整恢复现场 , 依赖能自动协调 。 Cordis 就是给这种自进化打的地基 。
今天发布的 DeepSeek Harness,其实就是 Koishi 这套 Cordis 的升级版 , 一个在聊天机器人上跑了 4 年的底座 , 被 DeepSeek 搬进了 AI 智能体里 , 向着自进化迈出了第一步 。
结尾广告7:10
这就是今天跟大家分享的全部内容 。 欢迎订阅 《AI 知识录 》, 获取最新鲜的 AI 领域最新知识 。 最后插播一个广告 , 主播自己的 AI 创业产品 UNAVI, 一个能一键整合你的飞书 、 钉钉 、 腾讯会议 、Claude 和其他录音卡 / 录音豆 , 随时随地帮你解读日常会议与沟通背后的深意 。
锁定关键信息的 Agent 应用已经正式上线 , 最新的版本也支持了直接给它播客链接 , 它就能轻松完成转写 、 总结 、 分析 , 甚至多个播客的关联解读和分析 。
如果你有兴趣 , 欢迎在本播客的公告栏查看体验方式 。 我们下期见 。
