第 04 章 约 8 分钟

核心架构:一切皆插件

Cordis 插件内核、插件层与配置层的三层架构。

DeepSeek Harness 基于 Cordis 插件系统构建。理解它的三层架构,是读懂“一切皆插件”和后续插件开发的关键。

一句话概括

模型是灵魂,Harness 是让灵魂能在你电脑上“动手”的那具身体;而 Cordis 内核只做一件事——插件的加载、卸载与依赖管理

三层架构

第一层:Cordis 内核(Kernel)

Cordis 内核极简,只负责插件的加载、卸载和依赖关系管理,不承载任何 Agent 的具体能力。它的设计哲学在论文《A Programming Paradigm for Spatiotemporal Composability》中有详细阐述。

第二层:插件层(Plugins)

所有 Agent 能力均由插件实现,并通过服务与事件彼此协作:

插件类别提供的具体能力
模型DeepSeek、OpenAI 兼容端点等
工具文件编辑、Shell 执行、网页检索等
技能(Skills)可复用的专业能力
会话(Sessions)对话状态管理
沙箱(Sandbox)安全执行环境
存储(Storage)本地文件、数据库、云端
循环(Loops)自动化循环任务
调度(Scheduling)定时任务
UIWeb UI、TUI、移动端等

第三层:配置层(Configuration)

开发者通过配置文件组合上述插件,无需触碰源码。这意味着:

  • 想换模型?改配置,从 DeepSeek 切到任意 OpenAI 兼容端点;
  • 想换工具?换一个插件,不用重新编译;
  • 想换 UI?社区已有 TUI、移动端 UI 等插件可选;
  • 想换存储?本地文件、数据库、云存储,配置层切换。

配置分层:Profile / Bundle / Patch

Harness 通过“配置分层”按需组合出不同形态的运行实例,常见的形态包括:

  • web 形态:带浏览器 Web UI 的完整交互环境(base + web-app 两个 bundle 组合);
  • headless 形态:一次性执行任务的命令行智能体;
  • base 形态:共享核心层,作为所有 profile 的基础。
# 查看实际启动的完整配置树
dsh --profile web --dump-config

# 查看默认配置树(不含用户 patch)
dsh --profile web --dump-default-config
积木式差异

这种“积木式”架构,是 DeepSeek Harness 区别于其他 Agent 框架最大的差异化优势——不是“更好用的黑盒工具”,而是“完全可重组的能力底座”。

事件驱动与可观测性

插件之间通过服务与事件协作,事件驱动扩展点分为会话 / Agent / 能力三级,任何能力都可被 patch 替换。所有事件流都会被记录,成为下一章要讲的“可观测性”基础。