第 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) | 定时任务 |
| UI | Web 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 替换。所有事件流都会被记录,成为下一章要讲的“可观测性”基础。