Agent 协作流程
QS 面向 Agent 的默认协作路径是先理解、再生成、再审查、最后按需执行。不要把 QS 当成绕过审查的远程 shell 执行入口。
推荐流程
text
inspect repo / inspect recipe / inspect template
-> render
-> 人类或 Agent 审查生成脚本
-> run
-> last
-> 修改 recipe 或 template第一步:理解输入
先检查 recipe:
sh
qs inspect ./recipe.yaml
qs inspect ./recipe.yaml --json发现可用 template:
sh
qs inspect .
qs inspect . --json检查单个 template:
sh
qs inspect ./recipe.yaml repo-name/component/install.sh
qs inspect ./recipe.yaml repo-name/component/install.sh --jsonAgent 需要结构化解析时,优先使用 --json。人类阅读时,使用默认文本输出。
第二步:审查风险
执行前重点检查:
- recipe 使用了哪些 repo,是否来自远程 Git source。
- framework 是否来自远程来源。
- template 的
metadata.platform是否符合目标系统。 metadata.shell是否是当前可用解释器。metadata.requires是否涉及缺失命令或高权限依赖。metadata.effects是否涉及软件安装、系统文件、服务重启或用户组修改。metadata.network是否访问可信网络位置。ghx是否保持默认开启;开启时 GitHubcurl/wget常见下载会通过 QS 内置 GHX SDK 访问。- recipe 覆盖的参数是否符合预期。
当前 QS 只输出这些元数据,不自动完成环境适配校验。审查结论需要人类或 Agent 自行判断。
第三步:生成脚本
sh
qs render ./recipe.yaml -o ./quick-setup.sh审查生成脚本时,看实际 shell 内容,不只看 recipe。远程来源、sudo、系统目录写入、服务重启、包管理器操作和下载命令都应额外确认。生成脚本默认包含 GHX runtime shim;如果目标场景必须保留原始 GitHub 网络访问行为,在 recipe 中设置 qs.ghx: false。
第四步:明确需要时执行
只有用户明确要求,或任务目标必须执行时,才使用:
sh
qs run ./recipe.yaml如果需要保存到指定位置:
sh
qs run ./recipe.yaml --record-dir ./runs除非有明确理由,不建议跳过运行记录。
第五步:读取记录
sh
qs last
qs last --json根据 last 输出找到:
- 实际执行器。
- 实际脚本路径。
- stdout 日志路径。
- stderr 日志路径。
- 退出码和状态。
失败后不要只根据终端最后几行判断;优先读取运行记录中的完整脚本和日志。
远程来源协作
使用远程来源时:
- Git source 优先使用 tag 或 commit SHA。
- 使用默认分支或浮动分支时,说明结果可能随远端变化。
- 普通 GitHub 来源优先直接复制 repo/tree/blob/raw URL;需要非 GitHub Git、SSH/private repo、显式 ref 或 repo 内 recipe 路径时,再使用
git+。 - 清理资产缓存前先用
qs clean --dry-run。 - HTTP(S) file source 只作为 recipe 或 framework 文件输入,不是远程脚本执行入口。
沉淀经验
如果一次操作具备复用价值,优先把经验沉淀回 QS 资产:
- 可复用步骤写成 template。
- 共享参数和元数据写入目录
config.yaml。 - 具体场景组合写入 recipe。
- 脚本外层组织写入 framework。
不要把长期可复用的系统操作只保留为一次性终端命令。