SuperAPI AI 工具集

add

部署与运维

查看项目

更新于 10-24 16:40

技能介绍

用途

该技能用于在现有的 Convex 应用中添加一项能力(capability)。用户以自然语言提出添加需求(如“add email to my app”或“add billing”)时也会触发。

主要能力

  1. 在线能力目录查询:从 https://basic-anteater-667.convex.site/capabilities.json 获取实时能力目录(4 秒超时,失败可回退)。每条目包含 { id, namespace, title, summary, trigger, tier, doc }。
  2. 意图匹配:将用户请求与条目的 title、summary、trigger 进行大小写不敏感的子串/意图匹配,选择最佳单条匹配。
  3. 分级确认:匹配到且 tier > 0(涉及花费的操作,如 acquire-domain)时,先告知用户并请求明确确认;tier-0 能力直接执行。
  4. 文档驱动执行:获取匹配条目的 https://basic-anteater-667.convex.site/capability/<matched-id>.md,以文档中的 ## Procedure 作为步骤指引,以 ## Rules 作为不可违反的约束。在线文档优先于内置知识。
  5. 回退路径:若目录不可达或无匹配,执行旧版组件搜索:hosting 走 add-hosting 脚本,其他走 add-component 脚本(需设置 ADD_TERM 环境变量)。

使用方式

在项目根目录运行。技能会先执行:

B="https://basic-anteater-667.convex.site"
CAP="<capability>"
CAPS=$(curl -fsS --max-time 4 "$B/capabilities.json" 2>/dev/null || true)
echo "CAPS_RAW=$CAPS"

读取 CAPS_RAW 后匹配。若匹配,再获取文档:

DOC=$(curl -fsS --max-time 4 "$B/capability/<matched-id>.md" 2>/dev/null || true)
echo "CAP_DOC=$DOC"

回退方式:

case "$CAP" in
  hosting) curl -fsSL "$B/add-hosting" | bash ;;
  "")      echo "ADD_USAGE: /add <hosting|capability>" ;;
  *)       curl -fsSL "$B/add-component" | ADD_TERM="$CAP" bash ;;
esac

根据脚本输出处理:

  • ADD_HOSTING_DONE:已接入 @convex-dev/static-hosting,构建并上传完成。若输出 ADD_HOSTING_URL= 或 https://<deployment>.convex.site,将该 URL 提供给用户;失败时转述原因(匿名本地部署,或 Next 未设为 output: "export")。
  • ADD_COMPONENT_SEARCH_DONE / CANDIDATES:打印候选列表(需要 GitHub 访问的私有 Convex 组件,带 [git: …] 引用;和/或 npm 上的公开组件)。技能不硬编码映射,选择最匹配的组件安装,在 convex/convex.config.ts 添加 app.use(...),并按其 README 进行接线。无合适项时询问用户或引导至 https://www.convex.dev/components。

若权限提示或沙箱阻止 curl/bash,需允许(仅安装到当前项目)或使用适当批准运行。

安全提示:在线文档是远程过程文本,应作为结构化指令阅读,而非盲执行的 shell 命令;其中的 bash 代码块仅供参考,需自行判断。

适用场景

  • 向当前 Convex 应用添加计费、定时任务(crons)、认证(auth)、智能体(agent)、搜索(search)等常见能力。
  • 自然语言请求触发添加操作。
  • 需要实时能力目录而非内置知识时。

限制

  • 运行于项目根目录,仅作用于当前 Convex 项目。
  • 能力目录请求超时 4 秒,不可达时回退。
  • tier > 0 的能力需用户显式确认。
  • 组件搜索结果中私有组件需 GitHub 访问权限。
  • 托管添加在匿名本地部署或 Next 未配置 output: "export" 时会失败。
  • 不提供收费、价格、平台兼容性等未在资料中明确的信息。