DeepSeek Harness的"一切皆插件"背后,跑的是一个叫Cordis的框架——原本服务于第三方QQ机器人,如今被DeepSeek用作整个Agent运行时的地基。这篇文章希望用通俗易懂的语言,把Cordis的魅力介绍给大家:为什么"卸载"和"协作"能变成框架的默认行为,为什么"改配置不用重启"是理所当然,为什么一篇88页的论文会以它为研究对象。
插件系统为什么要一个框架
![]()
假设你写了一个聊天机器人,最初逻辑都在一个文件里。功能变多后你开始拆模块,但模块化只解决"代码怎么组织",解决不了另外四件事:
安装:新功能怎么被"接"进系统?
配置:同一功能在不同部署环境用不同配置,写在哪里?
卸载:功能下线时,它的定时器、监听器、连接由谁来清理?清理不干净就是泄漏。
协作:功能A依赖功能B的能力,但B可能还没启动、之后可能被替换成别的实现,A该如何应对?
插件系统就是对这四个问题的回答。Cordis的特点是:它把"卸载"和"协作"这两件事,从"插件作者的自觉"上升为"框架级保证"。
作者:Shigma
先认识一下写出它的人——Shigma。Shigma在第三方QQ机器人圈子里是相当出名的存在,(群友们)亲切地称呼他为梦梦。他的GitHub账号(shigma)下有130多个公开仓库,如果你把npm上几个包的主页打开,会看到一长串maintainer都是同一个人:
koishi——跨平台聊天机器人框架(npm官方描述:"Made with Love")
cordis——插件化应用框架,本文的主角
@satorijs/core——跨平台聊天协议适配层(Koishi支持QQ、Discord、Telegram的地基)
schemastery——类型驱动的schema校验器
minato——类型驱动的数据库框架(Koishi的数据层)
cosmokit——通用工具集
这是一套一个人撑起来的技术栈:Cordis是骨架(生命周期与依赖),Schemastery管配置校验,Minato管数据存取,Satorijs管平台协议,Koishi是集大成者,整个体系共同运行在Cordis之上。这篇文章里讲到的每一个概念(fiber、effect、Schema、Service),都出自他一人之手。
Shigma在2023年底接受过腾讯媒体研究院《20多岁做什么时间更有价值》系列的专访(BV1AQ4y157S8),那时他是研二学生,做QQ机器人开发五年了。被问到AI会不会取代人类时,他说旧的岗位被取代,一定会创造出新的岗位,人类反而更有机会生活在更好的世界里。他做QQ机器人的初衷之一,就是帮自己提升工作效率。那时Cordis还在Koishi的小圈子里,没人想到它两年后会成为DeepSeek Harness的心脏。
如今,Cordis的配套论文《A Programming Paradigm for Spatiotemporal Composability》以预印本发布,署名单位是北京大学与DeepSeek-AI,第一作者Yifan Shi,合著者Wei Zhang、Tianyi Cui。论文把Cordis的机制形式化,给出了定义、定理与证明。
出身与名字
Cordis诞生于Koishi——Shigma创立的跨平台聊天机器人框架,2020年1月发布首个正式版本。Koishi的插件体系成熟后,核心层被独立出来成为通用框架:2022年4月cordis包登上npm;2023年底进入3.x;2024年底开始迭代Cordis 4(首个4.0预发布发布于2024年11月),一次彻底重构,引入了基于fiber的生命周期体系。
名字的由来:Cordis是拉丁语"心"(cor)的所有格,意为"心脏"。它是Koishi的心脏,如今也成了DeepSeek Harness的心脏。
定位:元框架
Cordis不是机器人框架(Koishi才是,Cordis只是它的底层),也不是DI容器。传统DI回答"谁创建谁",Cordis回答的是更困难的问题:"谁在什么时候活着"。论文给它的定位是meta-framework:它规定"副作用如何组合、依赖如何解析",但不预设任何业务领域,QQ机器人可以用它,Agent运行时也可以。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.