Skip to content

场景间依赖

场景可以依赖其他场景,复用已有功能。

声明依赖

scenario.json 中声明依赖:

json
{
  "dependencies": [
    {
      "scenarioId": "document-parser",
      "version": ">=1.0.0"
    },
    {
      "scenarioId": "code-formatter",
      "version": "^2.0.0"
    }
  ]
}

版本范围

支持 semver 范围语法:

语法说明示例匹配
>=1.0.0大于等于1.0.0, 1.2.0, 2.0.0
^2.0.0兼容版本2.0.0 - 2.x.x
~1.2.0约等于1.2.0 - 1.2.x
1.0.0精确匹配仅 1.0.0
*任意版本所有版本

依赖解析

  1. 场景激活时,检查依赖是否已安装
  2. 如果依赖未安装,自动安装
  3. 如果依赖版本不满足,提示更新
  4. 依赖场景数据可在当前场景中访问

使用依赖场景的工具

依赖场景安装后,其工具和数据可在当前场景中使用:

typescript
// 在工具中访问依赖场景的数据
executor: async (args, context) => {
  const parserData = context.getSharedData('document-parser:result')
  // 使用 parserData
}

最佳实践

  1. 最小依赖:只依赖真正需要的场景
  2. 版本范围:使用宽松的版本范围(^ 和 ~)
  3. 循环依赖:避免循环依赖
  4. 文档说明:在描述中说明依赖关系

AweeClaw AI 应用构建平台