SuperAPI AI 工具集

composio-cli

部署与运维

查看项目

更新于 10-16 12:01

技能介绍

Composio CLI 是一套用于操作已发布 Composio 命令行工具的技能说明,目标是在用户需要查找工具、连接账户、检查参数结构、执行工具以及订阅触发事件时提供规范操作方式。

默认工作流

当工具 slug 已知时,优先使用 composio execute <slug>。如果需要在同一时刻执行多个相互独立的工具调用,使用 composio execute -p/--parallel,并重复传入 <slug> -d <json> 组合。若 execute 提示某 toolkit 未连接,则运行 composio link <toolkit> 后重试。当参数不明确时,在猜测前先运行 composio execute <slug> --get-schema 或 --dry-run。只有在 slug 未知时才使用 composio search "<task>";search 接受一个或多个查询,因此可将相关发现工作合并为一次命令。

execute:运行工具

当 slug 已知时使用 execute。示例:composio execute GITHUB_GET_THE_AUTHENTICATED_USER -d '{}'。可在不执行的情况下查看所需输入:composio execute GITHUB_CREATE_AN_ISSUE --get-schema。安全预览:composio execute GITHUB_CREATE_AN_ISSUE --skip-connection-check --dry-run -d '{ owner: "acme", repo: "app", title: "Bug report", body: "Steps to reproduce..." }'。可从文件或标准输入传入数据:composio execute GITHUB_CREATE_AN_ISSUE -d @issue.json 或 cat issue.json | composio execute GITHUB_CREATE_AN_ISSUE -d -。上传本地文件:composio execute SLACK_UPLOAD_OR_CREATE_A_FILE_IN_SLACK --file ./image.png -d '{ channels: "C123" }'。并行运行相互独立的工具调用:composio execute --parallel GMAIL_SEND_EMAIL -d '{ recipient_email: "a@b.com", subject: "Hi" }' GITHUB_CREATE_AN_ISSUE -d '{ owner: "acme", repo: "app", title: "Bug" }'。

关键标志:--get-schema 用于在不执行工具的情况下查看必需参数;--dry-run 用于预览请求形态而不实际执行操作;--file 用于向仅暴露一个可上传文件参数的工具注入本地文件路径;--parallel 用于在同一次调用中执行多个相互独立的工具调用;--account 用于在同一 toolkit 存在多个账户时,按 alias、word_id 或 account id 选择使用的已连接账户。注意 --file 仅在工具暴露单一可上传文件输入时有效,否则应显式使用 -d JSON。

search:查找 slug

仅在工具 slug 未知时使用 search。示例:composio search "create a github issue";composio search "send an email" --toolkits gmail;composio search "send an email" "create a github issue";composio search "my emails" "my github issues" --toolkits gmail,github。可将相关发现工作合并到一次 search 调用,待正确 slug 已知后再回到 execute。

link:连接账户

当 execute 报告某 toolkit 未连接,或用户明确希望授权账户时使用 link。示例:composio link gmail;composio link googlecalendar --no-browser。关键标志:--alias 用于为已连接账户分配别名,当为同一 toolkit 创建额外账户时是必需的。连接成功后重试原来的 execute 命令。

proxy:原始 API 访问

当某 toolkit 支持原始 API 操作、且该操作比寻找专用工具 slug 更方便时使用 proxy。示例:composio proxy https://api.github.com/user --toolkit github --method GET </dev/null。

run:脚本化、LLM 与程序化工作流

对于程序化调用、循环、输出管道或任何超出单次工具调用的场景,优先使用 composio run。composio run 执行内联 ESM JavaScript/TypeScript 片段,并预注入已认证的 execute()、search()、proxy() 以及实验性的 experimental_subAgent() 辅助函数,无需 SDK 设置。串联多个工具示例:composio run ' const me = await execute("GITHUB_GET_THE_AUTHENTICATED_USER"); const emails = await execute("GMAIL_FETCH_EMAILS", { max_results: 1 }); console.log({ login: me.data.login, fetchedEmails: !!emails.data }); '。使用 Promise.all 扇出示例:composio run ' const [me, emails] = await Promise.all([ execute("GITHUB_GET_THE_AUTHENTICATED_USER"), execute("GMAIL_FETCH_EMAILS", { max_results: 5 }), ]); console.log({ login: me.data.login, emailCount: emails.data.messages?.length }); '。将工具输出送入 LLM 并取回结构化 JSON 示例:composio run --logs-off ' const emails = await execute("GMAIL_FETCH_EMAILS", { max_results: 5 }); const brief = await experimental_subAgent( Summarize these emails and count them.\n\n${emails.prompt()}, { schema: z.object({ summary: z.string(), count: z.number() }) } ); console.log(brief.structuredOutput); '。当用户只需要少量相互独立的工具调用、且不需要脚本逻辑时,改用顶层 execute --parallel。

认证

composio whoami 用于检查当前会话;若 whoami 失败,则使用 composio login 进行认证。

按需升级

如果用户卡在顶层命令,或需要降级排查命令,加载 references/troubleshooting.md。如果用户明确询问开发者项目、认证配置、已连接账户、触发器、日志、组织或项目,加载 references/composio-dev.md;composio dev 并非默认的终端用户路径。