Plugins

Plugin Availability

说明注册状态和 availability 的区别,以及 runtime 可用性如何判断

Plugin Availability

Plugin 当前只需要区分两件事:

  • 是否已经注册到 agent.plugins
  • 当前环境是否满足 plugin 自己的 availability() 检查

注册是可见性边界。没有注册的 plugin 对 Agent 来说不存在。

注册状态

agent.plugins.has("skill");
agent.plugins.status("skill");
agent.plugins.snapshots();

如果 plugin 已注册且启动成功,状态是 ready

如果 lifecycle 启动失败,状态可能是 error,用于诊断。普通 action 业务失败不会把整个 plugin 标成 error;例如 skill.lookup 查不到某个 skill 时,只返回这次 action 的失败结果,plugin 仍保持可继续调用。

availability()

availability() 不再表达开关。

它只回答:

在当前 Agent 上下文里,这个 plugin 现在能不能真正工作?

例如:

  • provider 还没安装
  • Python 依赖没准备好
  • 模型没下载好
  • API key 没配置
const availability = await agent.plugins.availability("skill");

返回结果仍然包含 enabled 字段,但在新模型里它表示“plugin 是否已注册”,不是项目配置开关。

最稳的理解

把它记成两句:

  • 注册 / 卸载决定 plugin 是否可见
  • availability() 决定已注册 plugin 当前环境是否可用

相关文档