首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >Cordis >Cordis 的 inject 声明如何决定插件的加载顺序?

Cordis 的 inject 声明如何决定插件的加载顺序?

词条归属:Cordis

Cordis 抛弃了传统依赖注入框架中侵入性强的装饰器,转而采用声明式依赖,插件通过一个 inject 字段声明自身所需的服务。

1. 依赖就绪后才启动

插件声明 inject: ['llm', 'tools'] 后,Cordis 会等待这两个服务全部就绪才执行插件的启动逻辑,无需手写轮询或启动顺序编排。加载顺序完全由依赖图决定,与代码的书写顺序无关——开发者可以随意调整 ctx.plugin() 的调用次序,插件何时真正启动只取决于它的依赖是否到位。

2. 依赖消失时自动卸载

依赖的监听不是一次性的。运行过程中如果某个被依赖的服务被卸载,依赖它的插件的 Fiber 会自动进入卸载状态并清理资源;当依赖重新出现时(例如热重载),插件又会自动回到挂起状态并重新加载。这保证了依赖始终指向当前正在生效的实现,而不是插件启动瞬间捕获的旧对象引用。

3. 反应式的最小化重启

当某个服务的底层实现被替换时,Cordis 只会重载真正声明依赖该服务的插件,依赖未发生变化的插件纹丝不动。在拥有成百上千个独立作者插件的开放生态中,这套声明式规则是它们之间唯一的协调机制,却能让依赖变化被精确地局部化。

相关文章
WordPress 技巧:如何设置插件的加载顺序
默认的情况下,WordPress 的插件是按照插件的字母顺序加载的,比如 a/a.php 是比 b/b.php 先加载的,那么我们需要更改插件的加载顺序如何操作呢,由于激活的插件是存在 active_plugins 的 option 里面,我们只需要激活或者停用插件的时候,系统更新 active_plugins 这个 option 值之前 hook 它就可以。
Denis
2023-04-15
9810
Cordis 插件引擎拆解:DeepSeek Harness 如何用 5 个事件模式实现无限扩展
系列:DeepSeek Harness 源码实战 | 进度 2/16 原文仓库:https://github.com/deepseek-ai/deepseek-harness
怕浪猫
2026-09-11
2300
Cordis:从开源 QQ 机器人内核到 DeepSeek Harness 平台底座
假设你写了一个聊天机器人,最初逻辑都在一个文件里。功能变多后你开始拆模块,但模块化只解决"代码怎么组织",解决不了另外四件事:
Lss233
2026-08-18
2.2K1
拆解DeepSeek Harness(二):Cordis 元框架与可组合性
在 LLM Agent 系统中,模型只提供生成能力,真正决定系统能否稳定运行的,是围绕模型构建的执行框架:它需要管理 Prompt、工具、上下文、策略、评测与运行流程。Deepseek Harness 正是这样一层用于组织、执行和实验的“执行壳”。但当模型、工具与任务不断增多时,简单的拼接方式很快就会遇到复用难、扩展难、回放难的问题。因此,Harness 需要一种更高层的抽象,把各类能力统一定义为可注册、可组合、可运行的对象。这正是 Cordis 元框架要解决的问题。
用户11320522
2026-08-19
5050
解读 Cordis:dsh 一切皆插件背后的运行时设计
上一期「dsh 拆解系列 Vol.01:没有固化内核的 Agent 运行时」最后留下了一个问题:插件可以挂进运行时,卸载时又怎么把它带来的变化清理干净?
七牛开发者
2026-08-25
4340
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券