l8r Twats Library

@Michaelzsguo

Post

Post 1 of 2

今天 DeepSeek 发布了他们的 Harness。如同当年 R1 的创新带给业界的震动一样,这一次他们又选择了一条和其他人完全不同的路。当大家都在做 Agent Harness 的时候,DeepSeek 却基于一句很特别的理念来设计自己的系统: "框架即插件,插件即框架。" Everything is a Plugin。模型是插件,Tools 是插件,Session 是插件,Sandbox 是插件,甚至 Agent Loop 自己也是插件。这套设计一发布,就吸引了很多开发者开始拆解 DeepSeek Harness 的架构。 但今天我们不谈技术,我们来讲讲这个 Harness 的前世今生,从另外一个角度理解它为什么会长成今天这个样子。 如果你打开 DeepSeek Harness 的 GitHub Repo,会看到 README 里特意写了一句话:DeepSeek Harness is powered by Cordis。那么,Cordis 又是什么? 故事要从一个叫 Shigma 的中国开源开发者讲起。Shigma 是他长期使用的网名,在 GitHub、npm 和 Koishi 社区里都是这个名字,他在 Bilibili 上还有另外一个中文网名:"孤梦星影"。甚至 Koishi 论坛上还发生过一个很好玩的故事:有人介绍他说"Shigma,本名孤梦星影",Shigma 本人看到以后回复了一句"痛失网名。"因为孤梦星影当然也只是他的网名。我没有找到可靠公开资料确认他的真实姓名,不过他自己的 Bilibili 简介倒很有意思:"北大本/研,程序员,东方众,音游狗,响指区up主"。也就是说,他本科和研究生阶段都和北大有关,更重要的是,他其实已经在开源世界里折腾了很多年。 大约从 2017 年开始,Shigma 就进入了中国的 Chatbot 开源生态。那时候的大语言模型还远没有今天这么火,所谓 AI Agent 更是不存在,中国开发者当时玩的,是 QQ 机器人。而 Shigma 做出来的第一个重要项目,就是 Koishi。Koishi 最开始可以理解成一个 QQ Bot Framework,但后来它不断扩展,逐渐成为一个跨平台 TypeScript Chatbot Framework,可以支持 QQ、Telegram、Discord、Slack、LINE、微信等大量平台,今天 Koishi 的插件生态已经有超过 1000 个插件。 但真正重要的,不是 Koishi 最终有多少用户,而是 Shigma 在这个过程中开始不断思考一个更底层的问题:一个复杂的软件系统,究竟应该怎样扩展?今天加一个 QQ adapter,明天加一个 Telegram adapter,再加数据库、命令系统、权限系统、中间件、插件、Session、事件系统……如果所有东西互相 import、互相依赖,系统很快就会变成一团无法维护的代码。于是 Koishi 开始越来越 Plugin 化。 然后 Shigma 又继续往下抽象,他做了另一个项目:Satori。如果 Koishi 还是一个 Chatbot Framework,那么 Satori 开始把"消息平台"本身抽象出来。QQ、Telegram、Discord 看起来不同,但其实背后都有:用户、频道、消息、事件、发送、接收。把这些共同能力统一成一套抽象之后,上层应用就不用关心下面到底是什么平台。这一步,已经开始从"做机器人"变成"做基础设施"。 但 Shigma 还没有停,他继续把 Koishi 里面最核心的架构思想再往下拆,最后出现了:Cordis。Cordis 已经和 Chatbot 没有太大关系了,它想解决的是一个更加通用的问题:软件里的不同组件,怎样可以自由加入、退出、替换和组合,而不把整个系统耦合在一起?于是 Cordis 开始围绕几个核心概念构建:Plugin、Service、Dependency Injection、Event、Lifecycle、Reversible Effect、Dynamic Composition。 简单说就是:一个插件加入系统的时候,可以注册自己的能力;它离开的时候,所有注册过的东西都可以自动撤销。一个插件需要另外一个 Service,不需要知道是谁提供的,只需要声明"我需要这个能力",谁来实现,可以随时替换。慢慢地,这形成了一套非常彻底的 Plugin Architecture。Shigma 后来把这套理念总结成一句很漂亮的话:框架即插件,插件即框架。 这句话放在 Chatbot 时代,看起来可能只是一个很 geek 的框架设计理念。但几年以后,大语言模型和 Agent 出现了,突然之间,这套架构变得异常合适。因为一个 Agent Harness 恰恰就是一个极其动态的软件系统:Model 可以换,Tool 可以换,Memory 可以换,Sandbox 可以换,MCP 可以换,LLM Provider 可以换,Session Store 可以换,Permission Policy 可以换,甚至 Agent Loop 本身都应该可以换。 于是故事来到了 DeepSeek。从公开的 GitHub 信息来看,Shigma 后来加入了 DeepSeek。而 DeepSeek 在开发自己的 Agent Harness 时,并没有重新发明一套传统的 Agent Framework,他们直接把 Cordis 放到了整个系统最底层,甚至不是简单 npm install 一下,DeepSeek Harness 直接把 Cordis 的核心代码 vendoring 到自己的代码库里,因为 Agent Loop 的生命周期、插件卸载、事件分发这些关键行为,都依赖 Cordis 的底层语义。 于是:Koishi 当年为了管理 QQ Bot 插件而发展出来的架构思想,一路经过 Satori,再被抽象成为 Cordis,最后变成了 DeepSeek Harness 的底座。你再回过头看 DeepSeek Harness 今天最核心的设计, Everything is a Plugin,突然就不觉得它是一次偶然的架构选择了。这其实是一条已经走了接近十年的技术主线:从 QQ Bot,到跨平台 Chatbot,到消息协议抽象,到通用 Plugin Runtime,最后走到了 AI Agent。 表面上看,它们是几个完全不同的开源项目。但背后其实一直在解决同一个问题:如何让复杂的软件系统保持可组合、可替换、可扩展。以前被组合的是 Bot Plugin,今天被组合的是 Model、Tool、Memory、Sandbox 和 Agent。技术浪潮变了,但那个最底层的问题,其实一直没有变。 某种意义上,DeepSeek Harness 并不是突然创造出来的。它只是 Cordis 这套思想,在 Agent 时代终于找到了最适合自己的舞台。 Image from X post Image from X post Quoted post by DeepSeek (@deepseek\_ai) 🧩 DeepSeek Harness v0.1 is now available in Developer Preview!

🔹 We’re opening it up to developers building agent harnesses worldwide and open-sourcing the codebase in MIT license. 🔹 Powered by the Cordis meta-framework, DeepSeek Harness is an agent harness built around one core idea: Everything is a plugin. Models, tools, skills, sessions, sandboxes, filesystems, loops, orchestration, and UI are ALL implemented as plugins, and can be mixed, matched, replaced, and extended.

Try it now! https://github.com/deepseek-ai/deepseek-harness Open quoted post on X

Post 2 of 2

DeepSeek Harness 把所有东西都做成了 Cordis 插件,所以要实现能够互相发消息协作的 Bot (像Grok Bot),本质上只要去组合这些插件就行了,而不是写代码, 很容易实现。 https://x.com/Michaelzsguo/status/2088109025875444161?s=20 Quoted post by Michael Guo (@Michaelzsguo) Implement Grok Bot (@bot ) with Deepseek Harness in 30 mins: Video thumbnail from X post Video thumbnail from X post Watch video Open quoted post on X

Explanation

What it says: DeepSeek’s new open-source Harness v0.1 is built on Cordis around the unusually strong rule “Everything is a Plugin”: models, tools, skills, sessions, sandboxes, filesystems, orchestration, UI, even the agent loop itself are replaceable plugins.

document

The thread argues this architecture was not invented for LLM agents: it descends from Shigma’s work on Koishi, then Satori, then Cordis, progressively generalizing plugin composition, dependency injection, lifecycle management, reversible effects, and dynamic composition.

document

Context: The through-line is roughly QQ bot framework → cross-platform chatbot framework → messaging abstraction → general plugin runtime → AI-agent harness. Cordis lets components declare capabilities/dependencies without tightly coupling to particular implementations, and automatically undo registrations when plugins disappear. That maps naturally onto agents, where models, tools, memory, MCP, sandboxes, providers, policies, and loops may all change dynamically.

document

Why it matters: If the design works as claimed, DeepSeek Harness is closer to a composable runtime for agents than another opinionated agent framework. The second post claims this makes Grok-style communicating bots mostly an exercise in composing plugins, demonstrating one in ~30 minutes.

document

The historical claims about Shigma/Cordis are the thread author’s account and are not independently verified here.