LAYER 01 · 建立全局直觉

为什么一切都是插件

不是为了追求插件数量,而是让每项副作用都有所有者、每项能力都有替换点

13 min2 处源码锚点upstream@47f9438
行为 = 插件 + 契约 + 生命周期
本章要解决的问题

如果 Session、工具甚至 Agent Loop 都是插件,系统还剩下什么“核心”?

先建立直觉

传统框架像一艘焊死舱室的船:改动力系统要切开船体。Cordis 插件树更像标准化航天舱段:每段声明接口、连接点和分离程序,组合方式改变,任务形态就改变。

MECHANISM

机制拆解

Cordis 的最小内核负责 Context、插件挂载、服务注册、事件分发与 effect 回收;具体 Agent 行为都由树上的插件贡献。

扩展的正确姿势是监听既有事件或注册服务,而不是在 agent-loop 中新增 provider 特判。

第 1 步 / 共 4 步

挂载插件

插件获得一个 Context 和配置。

INVARIANTS

无论怎么扩展,都不能破坏

  • 官方能力与第三方能力遵循同一种插件契约
  • 插件卸载后不得留下监听器、服务或后台任务
  • 扩展依赖公开的 service/event,而不是具体 loop 实现
FAILURE MODES

最容易踩中的坑

  • ×把插件理解为 UI 市场里的第三方小组件
  • ×注册副作用却没有 disposer
  • ×依赖加载顺序的偶然行为而不声明依赖
VERIFY IN SOURCE

不要相信结论,去源码里复核

以下链接固定到官方 deepseek-harness@47f9438;查看当前上游时请留意后续 breaking changes。

KNOWLEDGE CHECK

先停十秒,再揭晓答案

为什么“可卸载”与“可安装”同样重要?

为什么下一章紧接在这里

理解“全是插件”后,需要先画出整棵系统的六个平面,才能知道每个插件应该落在哪里。

Learn DeepSeek Harness

独立教学项目。解释力来自源码,判断边界以官方仓库为准。