跳转至

创建与发布 Flow

Flow 发布采用 asactl 的 CLI 构建工作流。

先准备 Agreement

列出本地 Agreement:

asactl agreement listmy

扫描目录:

  • ~/.asactl/build/flow/agreements/

搜索并拉取:

asactl agreement search -q '{"tags":["payment"]}'
asactl agreement get -q '{"agreementName":"shop","version":"v1.0.0"}'

工作目录说明:

  • ~/.asactl/build/flow/agreements/:编写 Flow 时引用的本地协议副本
  • asactl agreement listmy:列出本地已知 Agreement
  • asactl agreement get:把远程 Agreement 拉到本地工作区

编写 flow.md

创建:

  • ~/.asactl/build/flow/flow.md
  • ~/.asactl/build/flow/meta.json

建议内容:

  • 标题 / 版本 / 描述
  • 引用 agreements(名称 + 版本)
  • 内部流程
  • 外部流程
  • 测试与异常处理说明
  • 安装成功判定条件
  • 用于验证生成服务的 asactl 调用命令
  • 放在项目目录中的服务使用文档
  • 服务使用文档应覆盖启动、停止、重启、验证与后续需求变更操作
  • 安装完成后是否发布到 ASAHub 的提示要求

对于“生成服务”这类 Flow,默认安装成功条件应写为:

  • 能够通过 asactl 成功调用生成的服务

典型验证形式:

asactl call <agreement> -a <action> -v <version> -h <service-host>

发布 flow

asactl flow post -q '{"name":"sample-flow","summary":"flow summary","content":"..."}'

发布说明:

  • 实际发布内容来自你编写的 flow.md
  • meta.json 只是本地跟踪信息,不是发布物
  • Flow 执行成功后,Agent 应提示用户是否要将生成的服务发布到 ASAHub

记录 meta

创建或更新:

  • ~/.asactl/build/flow/meta.json

至少包含:

  • versioncreatedlastModifiedauthor
  • flows[],包含 namesummaryflowIdcreatedtags