在 Harness 中,每个插件实现一个 Service 接口,并在上下文对象上占据一个稳定的键位(如 ctx.tools、ctx.llm、ctx.sessions)。其他插件通过键名查找所需服务,而不是直接导入某个具体实现。这使得替换模型适配器就像修改一个配置值一样简单。
Harness 的灵活性集中体现在“能力接缝”设计上。一个接缝包含三个角色:
以 Shell 能力为例,dsh-shell 定义接口,dsh-bash-local 与 dsh-bash-sandbox 提供不同实现,dsh-tool-bash 则是模型可见的消费方。由于文件系统与进程提供方共享同一执行世界,把它们指向远程沙箱,Bash、PTY 与 LSP 便会一并迁移,从而实现“替换一个提供方即可改变整个产品行为”。
得益于“可逆副作用”特性,Cordis 能够追踪并自动回收插件注册时产生的副作用,因此安装或卸载插件无需重启整个系统。开发者修改某个插件的代码后,系统可自行重新加载,避免了“改一行代码就要重启整个框架”的等待成本。