← 返回 Research
AIDAX / RESEARCH NOTE
AiDaX 研究解读约 8 分钟阅读

CORDIS:让 Agent 组件可插拔、也能完整退场

解读 DeepSeek Harness 背后的 Cordis 论文:为什么动态 Agent 系统不仅要能加载组件,也要能让组件干净退场。

“万物皆插件”之下的难题

一个 Agent Harness 往往由模型适配器、工具注册表、权限策略、会话存储、界面和扩展组成。演示新增一个能力并不难,真正的系统问题是:撤掉它以后,事件监听、配置和注册是否会留下残余。Cordis 论文把这视为“组件如何组合”的问题,而不是功能清单的问题。

论文希望一个组件能进入运行中的系统、参与工作,再在离开时不扰乱无关组件。作者称之为时空可组合性:时间维度问的是组件能否撤回自己的影响;空间维度问的是运行时能否理解它依赖什么、何时该激活。

两条生命周期规则,而非一个万能插件接口

面对时间维度,论文提出可逆 effect。一次对上下文的变换会带着运行时保留的逆操作,组件移除时可按路径撤销,而不是要求每位插件作者记住所有清理步骤。这个主张先在单个组件范围内成立:它应能逆转自己登记的影响。

面对空间维度,论文提出 reactive coeffect。组件声明依赖,运行时再依据上下文变化判断是否激活或停用。它不只是“谁先 import”的顺序问题,而是把依赖是否可用变成能被观察和协调的运行时条件。

Context 把两类规则放进同一张图

Cordis 将 effect 和 coeffect 的上下文统一为一种 context。论文把由此形成的约束称为 context paradigm:所有 effect 与 coeffect 都经由同一个上下文协调。作者的形式化结果讨论的是,在其定义的观察等价下,独立组件的影响可以交错而不互相扰乱。它是对该演算的论证,不是“任意插件组合都安全”的承诺。

论文所述的 Cordis 实现包含 effect 追踪、coeffect 解析、声明式组件加载、配置协调和热模块替换。这些机制用于表达和管理这套模型,但不会替开发者完成服务正确性、权限边界或资源所有权的设计。

DeepSeek Harness 如何让它落到实际架构

DeepSeek Harness 将自己定义为基于 Cordis 的开源 Agent Harness,并采用“everything is a plugin”架构。其官方架构文档说明,模型适配器、工具注册表、会话日志和 Agent 循环都以插件参与,共同向一个 context 提供服务、类型化事件和可逆 effect。Cordis primer进一步说明,inject 用于声明依赖,注册可在重载或卸载时被撤销。

这让 Cordis 不只是语言理论。模型供应商、审批策略和工具集成在 Agent 产品里并非互不相干:它们会影响启动顺序、事件流、清理和替换。清晰的生命周期模型让构建者可以追问:什么能力出现了?什么改变了共享上下文?扩展卸载时又有什么必须消失?

AiDaX 关注:可配置,也要可解释

AiDaX 关注的是,Agent 系统越可配置,能否越容易被人理解。“万物皆插件”若没有约束,也可能变成“任何东西都能影响任何东西”。Cordis 给出的方向是:依赖要声明,注册要有生命周期,运行时变化要有可回退的路径。这有助于让扩展系统更可检查、更可推理。

边界同样重要。该论文是 arXiv 预印本,不是关于 Harness 可靠性、延迟或安全性的基准测试;DeepSeek Harness 在其官方仓库中也标为 developer preview,并提示会有破坏兼容性的变化。一个可逆注册本身不能撤回不可逆的外部操作,不能验证模型判断,也不能替代授权策略。真正值得继续观察的是:真实插件能否公开依赖、清理资源,并在改变在线 Agent 系统时留下清晰的人类复核点。