用途
kibana-workflows 用于编写、验证、测试、运行和检查 Elastic Workflow YAML 定义。Elastic Workflows 是运行在 Kibana 内部的声明式自动化,可查询 Elasticsearch、设置数据、分支、循环、调用连接器、创建 case、通知外部系统以及调用 AI 步骤。当用户希望把自然语言转换为 Kibana 工作流时可以使用该技能。
主要能力
- 创作和迭代 Elastic Workflow YAML 定义。
- 通过 elastic CLI 执行 Elasticsearch 操作,而非直接调用 HTTP API。
- 提供两条编写路径:默认的 Discovery-tools 路径(platform.workflows.* 工具,Kibana 9.5+ 和 Serverless 默认注册),以及备用路径:无 agent_builder 端点或平台工具 id 时,从原始 JSON Schema 手工编写;另有 Kibana 自带生成器路径(references/generator-path.md)。
- 支持验证工作流 YAML、测试工作流图或单个步骤、保存、启用、运行以及检查执行和日志。
- 提供 Workflow YAML 快速参考,含 version、name、description、enabled、tags、triggers、steps 等结构,以及 console、elasticsearch.search、elasticsearch.esql.query、elasticsearch.bulk、kibana.request、data.set、if、foreach、wait、http、workflow.execute 等常见步骤类型。
- 支持通过 {{ ... }} 渲染文本,通过 ${{ ... }} 保留原生类型。
使用方式
- 选择编写路径:默认 Discovery-tools 路径,先探测 GET kbn:/api/agent_builder/tools,检查是否返回 platform.workflows.* id;若无则走 Schema 路径或生成器路径,并说明所选路径及原因。
- 捕获用户意图:明确触发器类型(手动/定时/告警)、运行时输入、需读取的数据源、需执行的动作和期望输出。
- 按需查询:使用 platform.workflows.get_step_definitions、get_trigger_definitions、get_connectors、get_examples 获取必要信息,避免前置加载完整步骤目录。
- 一次性起草完整 YAML:要求 name、至少一个 trigger、非空 steps 数组,使用 2 空格缩进,输出引用为 steps.<name>.output.*。
- 验证:调用 platform.workflows.validate_workflow,失败时返回错误及所引用步骤类型的定义,修复后重新验证。
- 测试、保存、运行:测试仅执行安全草稿,副作用步骤先替换为 console;轮询执行状态直到 completed、failed、cancelled 或 timed_out,并获取日志;保存副作用工作流时 enabled: false,用户授权后再启用并运行。
适用场景
- 手动 hello 工作流:日志输出问候语。
- 定时健康检查:每 5 分钟 ping 指定 URL 并记录响应。
- 告警触发 case 并 Slack 通知:Security 告警触发时创建 case 并发布到频道。
- 其他需要查询 Elasticsearch、分支循环、调用连接器或外部系统的 Kibana 内自动化。
限制与注意事项
- 该技能通过 elastic CLI 执行操作;若未安装 elastic CLI,需告知用户用途,不得猜测凭据、直接调用 HTTP API 或尝试其他绕过方式。
- 若用户仅要求草稿或解释并明确禁止真实访问,跳过连接验证,不调用 CLI 或 API,并说明草稿未针对目标部署验证。
- 若工作流 API 不可用,需报告返回的状态和消息;常见原因包括 Kibana 版本不支持、许可证或功能权限不足、目标项目未提供 Workflows。
- 测试即执行:仅在每个执行动作只读或用户授权其副作用时才测试,否则先替换写操作、通知和外部调用为 console。
- 不要猜测 connector id;不要在所有地方添加 continue: true;不要用通用 http 替代专用连接器步骤。
- 遇到 403 not available 等权限门禁应如实报告,不要静默重试或归咎于 UI 设置。
- 付费、价格、具体平台支持范围等资料未提供的信息暂未提供。