菜单
小墨

小墨

DSH架构深度解析:一切皆插件的设计哲学与实现原理

在AI Agent快速发展的今天,如何构建一个灵活、可扩展且易于维护的Agent运行框架,成为业界关注的核心问题。DeepSeek Harness(以下简称DSH)提出了一个颇具启发性的设计理念——"一切皆插件"。这不仅仅是一个营销口号,更是一套经过深思熟虑的运行时架构体系。本文将深入剖析DSH的核心设计,探讨其如何通过Cordis运行时系统与Session事件流的协同工作,实现真正的组件级动态组合。

从配置到运行时:DSH的双系统架构

DSH的核心架构可以理解为一个由两条主线交织而成的系统。Cordis负责维护一张运行时插件图,这张图描述了当前有哪些能力可用、它们之间的依赖关系、在哪个作用域生效,以及卸载时如何正确清理资源。与此同时,Session维护着一份追加式事件流,记录一次Agent工作过程中的所有实际发生事件,并从中投影出模型上下文、UI轨迹以及恢复与分叉所需的数据。 Agent loop则位于这两条主线之间——它从插件图获取模型、工具、提示词和会话服务,再将执行过程写回事件流。这种设计的精妙之处在于:Cordis回答"系统现在由什么组成",Session回答"系统刚才做过什么",两条线合起来才构成完整的DSH主体。

Cordis运行时:超越传统插件系统

真正让Cordis区别于传统插件系统的,是它同时处理了五个通常彼此分离的问题:能力可见性(一个插件在当前位置能看到哪些能力)、依赖等待(必需能力尚未出现时插件是否应该启动)、作用域隔离(同名service能否在不同会话中解析到不同实现)、清理责任(插件退出时谁负责清理注册项、监听器、进程和句柄),以及配置到运行时的转换(静态配置如何变成可更新和检查的运行时插件树)。 Cordis通过Context、Service、Fiber与effect这四个核心概念来维护这些关系。Context通过Proxy包装提供service解析边界,子Context默认继承父级service,isolate()则可以为某项service建立独立的realm。Fiber是插件在特定Context下的一次运行实例,它保存了父Context、插件配置、inject依赖、解析到的service实现、生命周期状态以及运行期间登记的清理函数。

Cordis把依赖关系收进运行时模型,而不是继续给注册循环增加条件分支。

“架构设计原则”
积墨 AI 核心产品

积墨 AI 智能体开发平台

快速搭建具备商业价值的 AI 智能体,支持复杂工作流编排、50+ 主流模型接入与私有化部署。

Effect机制:资源管理的范式升级

在传统插件系统中,资源的注册与清理往往分散在activate()和deactivate()两个独立方法中,随着系统迭代,这种方式容易出现资源泄露或清理逻辑失效的问题。Cordis采用的effect机制则将资源获取和释放写在同一个effect中——插件在创建资源时同时登记对应的disposer,当Fiber卸载时,这些disposer会按逆序自动执行。 这种设计的优势在于:effect与其inverse始终保持配对,不会随着功能迭代而失配。更重要的是,effect的所有权归属于创建它的Context,这意味着每个插件的副作用都能明确归因,不会散落在全局单例或service locator中。

Append-only事件流:可观测性与可恢复性

DSH将Session设计为append-only log,所有turn/step边界、原始流式chunk、最终模型消息和工具往返都有连续序号。架构文档明确了一条核心约束:"Model-visible means logged"——凡是进入模型请求的输入,都必须能从规范日志重建。这种设计为系统带来了三个重要特性:可审计性(任何时刻都能追溯完整的执行历史)、可恢复性(系统重启后可从日志重建完整状态)、以及可分叉性(同一状态可分叉出多个执行路径)。 值得注意的是,append-only设计增加的是存储和隐私成本,而非模型请求的token消耗。deriveMessages()会从日志中智能投影所需消息,assistant/chunk保留流式回放细节但不与最终消息重复进入模型历史,compaction通过追加replacement节点遮蔽旧消息而非直接修改。这些细节体现了设计者对"完整记录"与"高效推理"之间平衡的深思熟虑。

如有侵权,请联系删除。

#AI架构#插件系统#Agent框架#Cordis#DeepSeek
分享文章

相关文章推荐

试用咨询
企业微信二维码

扫码添加企业微信