SuperAPI AI 工具集

query

数据与分析

查看项目

更新于 10-26 18:53

技能介绍

用途:该技能面向需要跨多个数据提供方取数的场景。它指导编写或运行 kind = "query" 的查询计划,把一组相互独立的 GraphQL 步骤交给 bro CLI 并发执行,最终输出一份以步骤 id 为键的合并 JSON 文档,键顺序按声明顺序而非完成顺序。

主要能力:计划是 TOML 列表,每个步骤包含 id、provider、graphql 及可选的 vars。bro plan run 在并发上限下将步骤分发到各连接器;bro plan query <file> 一步完成校验与运行;bro plan validate <file> 只做校验而不执行。计划可设置 concurrency,默认值取自配置 query.concurrency。

使用方式:provider 指定连接器(github、gitlab、atlassian 等),不能写 providers[] 条目;省略时依次回退到 connectors.queries 固定配置与自动检测。计划必须只读,mutation/subscription 文档在校验阶段即被拒绝,且关键词嗅探按设计会过度拒绝。计划中不得写入密钥,env 是字面叠加层,写入的令牌会作为明文提交;认证来自被调用 CLI 自身的登录(gh auth、glab auth、atlassian auth)或操作者继承的 process.env。执行形态相关变量(ATLASSIAN_API_URL、PATH、HOME)会被直接拒绝,端点固定应通过配置 query.env 完成。vars 对 github/gitlab 为标量(string/number/bool),序列化为 -f k=v 命令行字段;atlassian 则把表作为 JSON variables 正文原样传入。

失败处理:单个步骤失败会记录 { provider, error }(传输层)或 { provider, data?, errors? }(GraphQL 响应),不会中止兄弟步骤;任一失败则退出码为 1,但结果仍会打印。输出为原始数据,不做条目归一化,需要 title/status/url 等行时需自行编写 jq。

适用场景:适合一次计划内跨 GitHub、GitLab、Atlassian 等连接器并行获取 GraphQL 数据,替代 N 次串行 CLI 调用,并以合并文档作为交付物。

限制:仅支持只读查询;计划内不得携带密钥与执行形态变量;输出不做归一化;失败步骤需按 key 读取 error/errors 后单独重试。