02|空之协同:Service、inject 与响应式依赖
张嘉熙

你好,我是张嘉熙。
上一讲我们解决了“时间”维度的问题——单个插件能否安全地来、安全地走。但现实中的应用,比如 Agent 应用,往往并不只有一个插件。当几十上百个插件同时挤在一个环境里,而每个插件又有它所依赖的多个服务,一个更尖锐的问题就浮出水面了:多个插件(A、B、C)都依赖服务 Z 提供的能力,Z 突然被卸载了,这些插件应该怎么办?
Z 可能在运行中途被热替换、被动态卸载、被配置开关关掉。每一次变化,每个依赖 Z 的插件都要重新判断“我还能不能用”。纯靠手动编排,这套逻辑很容易变成一团乱麻,这正是典型的框架层应该做的事情。
今天,我想带你看 Cordis 给出的答案:你只需要声明“我依赖谁”,框架会自动决定什么时候激活你、什么时候停用你。 这就是“空之协同”——这里的“空”指的是空间维度,即组件之间的依赖与协同。
最终我们可以实现这样的效果:一个依赖网络连接服务的文件上传插件,当网络断开时它自动停用,当网络重新连接时它又自动激活,全程你一行调度代码都没写。
提供能力的 Service
我们先了解一些基本概念,在 Cordis 里,“能力”是通过 Service(服务) 提供的。所谓服务,其实就是一个具名能力——你把它注册到 ctx 上,同时提供一个服务的名字,其他插件就能通过 ctx.<服务名> 访问它。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《DeepSeek Harness 前沿工程实践》,新⼈⾸单¥59
《DeepSeek Harness 前沿工程实践》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论