首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >DeepSeek Harness >DeepSeek Harness 的插件是如何实现加载、卸载与彼此通信的?

DeepSeek Harness 的插件是如何实现加载、卸载与彼此通信的?

词条归属:DeepSeek Harness

1. 服务发现而非直接导入

在 Harness 中,每个插件实现一个 Service 接口,并在上下文对象上占据一个稳定的键位(如 ctx.tools、ctx.llm、ctx.sessions)。其他插件通过键名查找所需服务,而不是直接导入某个具体实现。这使得替换模型适配器就像修改一个配置值一样简单。

2. 能力接缝(Capability Seam)

Harness 的灵活性集中体现在“能力接缝”设计上。一个接缝包含三个角色:

  • Service Definition:声明接口
  • Service Provider:提供一个或多个实现
  • Consumer:面向模型的工具(消费方)

以 Shell 能力为例,dsh-shell 定义接口,dsh-bash-local 与 dsh-bash-sandbox 提供不同实现,dsh-tool-bash 则是模型可见的消费方。由于文件系统与进程提供方共享同一执行世界,把它们指向远程沙箱,Bash、PTY 与 LSP 便会一并迁移,从而实现“替换一个提供方即可改变整个产品行为”。

3. 热插拔与热重载

得益于“可逆副作用”特性,Cordis 能够追踪并自动回收插件注册时产生的副作用,因此安装或卸载插件无需重启整个系统。开发者修改某个插件的代码后,系统可自行重新加载,避免了“改一行代码就要重启整个框架”的等待成本。

相关文章
MyBatis 的延迟加载是如何实现的
MyBatis 的延迟加载(懒加载)特性允许在需要使用关联对象数据时才进行加载,而不是在执行主查询时就加载所有相关数据。这种机制可以提高应用程序的性能,特别是当关联数据庞大或关联层次较深时。我们将通过以下几个方面来深入了解MyBatis的延迟加载实现机制。
阿珍
2024-07-17
1.3K0
从架构层面解读 DeepSeek Harness:一款"一切皆插件"的 Agent 运行时
摘要:2026 年 8 月 13 日,DeepSeek 开源了它的第一款 Agent 产品 Harness v0.1(MIT 协议)。它不是又一个大模型,而是位于模型之上的"运行时层"。本文从架构设计原则出发,解析它最核心的主张——"一切皆插件(everything is a plugin)",以及支撑这一主张的三块地基:可逆副作用、服务/事件协作、作用域与预设复用。文中所涉信息均基于公开资料,观点为个人技术分析,供交流参考。
Archive
2026-08-17
8520
DeepSeek的Harness,有一套新世界观
8 月 13 日,DeepSeek端上了一道新菜DeepSeekHarness,但这道菜初看让人有点摸不着头脑。
小腾资讯君
2026-08-17
8000
Java 是如何实现线程间通信的?
正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。
BUG弄潮儿
2023-09-02
6370
Java 是如何实现线程间通信的?
正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。
一行Java
2023-09-04
6480
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券