SuperAPI AI 工具集

tool

智能体与模型

查看项目

更新于 10-15 20:10

技能介绍

用途:在拥有该目录的 AIDA 项目中安装或运行单个工具。框架如何操作由插件外的 recipe 决定,技能本身不知道工具名与框架习惯。

主要能力与动作:首个参数为 install、run、show 或 require。前三个的第二个参数是小写工具名(如 phpunit、phpstan、playwright、pytest)。run 可在 -- 后附加参数;install 与 show 不接受参数,传入会被拒绝。所有调用运行 tool-actions.sh,该脚本在本技能授权内可免批准执行,其他 Bash 命令仍需批准。

run 模式:先读取当前任务的运行模式,无任务或未声明则为 interactive。只有任务声明时才传 --run-mode autonomous。install 需要人工,autonomous 下脚本以退出码 70 拒绝且不执行任何步骤。run 与 show 在两种模式下行为一致,show 不运行任何命令,run 运行 recipe 中的一条命令并把命令与输出写到项目 records/ 下。

退出码:0 表示工具已运行,输出见 output: 指定文件;1 表示无项目拥有此目录;2 表示该工具无 recipe;3 表示脚本无法完成工作;4 表示命令运行后失败。命令失败时先读 first: 行,工具缺失则安装后重试;真实失败(如测试未通过)属结果而非故障,报告即可,不重复安装或运行。

无自动化测试的任务:若任务契约 alignment.json 中 automatedTests: false 且工具用于跑测试(如 phpunit、pytest、playwright),则不安装也不建议安装,可用 /aida:scope 修改;非测试类工具(如编码规范检查器)仍可安装。

安装:执行 install <tool>。安装会先写入 recipe ## Files 下的文件,安装后保留且不提交,需人工提交后再进入下一步。交互模式下先运行 show <tool> 打印命令与文件并等待明确同意;autonomous 模式下因安装需人工而停止。安装退出码 0 成功、70 需人工、2 无 recipe、3 命令被拒或无安装步骤或文件不一致或传入 -- 参数、4 某步骤失败。步骤失败时不要手动安装。

无 recipe:退出码 2 时先询问目录,携带 tooling: <tool>、框架与项目文件夹,返回路径则以 --tooling <tool>=<path> 重新调用;返回 no-recipe、listing-unreachable、fetch-failed 等词时,一句话说明工具、已尝试的框架和该词后停止,不得凭记忆安装。

require 动作:处理进程 recipe 的 requires_tooling: 与 requires_tooling_with_tests:。后者仅在任务有自动化测试时需要。脚本以“Run a tool”方式逐一检查,每个工具打印一条 TOOLING: 行或 REQUIRES: none,不安装。退出码 127 视为缺失,其他退出码视为存在。--advisory 总是退出 0;--only <tool> 只检查指定工具。退出码 0 全部存在、4 有缺失、2 未知、1 无项目或任务无效、3 路径或列表无效、79 工作树位置不符。退出 2 优先于 4,缺失仍需安装,autonomous 下安装会以 70 停止。

限制:本技能从不记录工具已安装(每次运行即验证)、不编辑 recipe、不通过 shell 运行 recipe 提供的命令。关于进程 recipe 读取规则,见 references/reading-a-recipe.md。