loop-action:在 GitHub Actions 中安全执行自治 Agent 的 Composite Action 实战指南
人工智能AI AgentAgent 工作流CLI研发协作AI 技能MCP 服务【免费下载链接】loop-engineeringPractical patterns, starters CLI tools for loop engineering with AI coding agents. Design systems that prompt and orchestrate agents (inspired by Addy Osmani and Boris Cherny). Includes loop-audit, loop-init, loop-cost.项目地址https://gitcode.com/gh_mirrors/lo/loop-engineering点击查看免费下载loop-action 是 loop-engineering 仓库提供的官方 GitHub Composite Action用于把loop-audit就绪度审计、loop-context熔断器与loop-sandbox临时工作树隔离整套安全护栏一次性接入 CI/CD 流水线。阅读本文后你将掌握该 Action 的全部输入参数、底层五步执行流程、command的安全传递语义bash -eo pipefail与临时脚本机制以及如何在真实工作流中规避命令注入风险。为什么需要 loop-action自治 AgentAutonomous Agent被调度进 CI/CD 之后最怕的不是干活而是失控反复重试同一失败动作烧光 token 预算、在主线工作树上直接产生不可追踪的修改、缺少就绪度审计就盲目进入自动修复。若用纯手工 bash 脚本去实现这些护栏往往要同时维护熔断逻辑 就绪度检查 工作树隔离三套互不相关的胶水代码既脆弱又难复用。loop-action 把整套 Loop Engineering 安全套件包装成一个独立的 YAML 步骤通过pattern、command、level、sandbox四个核心输入让 CI 工作流在运行 Agent 前自动完成审计、熔断检查与隔离执行。完整定义见 tools/loop-action/action.yml使用说明以 tools/loop-action/README.md 为规范主体。快速开始一行接入 loop-action最小用法如下来自 tools/loop-action/README.md- uses: cobusgreyling/loop-engineering/tools/loop-actionmain with: pattern: ci-sweeper command: npx grok-cli run --skill .grok/skills/ci-sweeper/SKILL.md level: L2 sandbox: true sandbox-shell: false一个典型场景是在examples/github-actions/daily-triage.yml这类定时工作流中把原来的Run agent步骤整体替换为loop-action由 Action 统一处理审计、熔断和隔离开发者只需关注command里真正要调用的 Agent 命令。输入参数全解下表完整对应 README 与 action.yml 中inputs段的定义输入必填默认值说明pattern是—要运行的 loop 模式如ci-sweeper、daily-triage必须与loop-budget.md中的模式匹配同时用于loop-context的预算解析见下文预算从模式解析command是—实际调用 Agent 的终端命令如claude、grok、aider总以 Bash 脚本形式执行level否L1预算约束校验用的自治等级L1、L2、L3sandbox否false若为true通过loop-sandbox路由执行提供临时工作树隔离安全捕获变更而不破坏主工作树sandbox-shell否falseloop-sandbox兼容选项若为true传递--shell让loop-sandbox通过自己的 shell 调用命令pattern决定审计与预算解析的对象pattern是串联整套流程的关键。它既会被 loop-audit 的审计逻辑用作模式上下文也会在loop-context熔断器步骤中被--budget-from-pattern消费从 loop-cost 的注册表数据源为patterns/registry.yaml解析出该模式的单次运行 token 预算。因此传入的pattern值必须与loop-budget.md中登记的模式一致否则loop-cost会直接报错而非静默失败。level自治等级的护栏刻度level对应 loop-engineering 的自治分级详见 docs/loop-design-checklist.md 与 loop-audit README等级含义L0草稿——仅记录意图L1仅报告型 loopreport-onlyL2带验证器的辅助自动修复L3可无人值守但保留人工闸门QUICKSTART 明确给出第一周规则从level: L1仅报告起步不自动修复、不自动合并先人工审查生成的状态输出再逐步升级。level最终会以--budget-level形式传给loop-context决定熔断器采用哪个等级对应的预算上限。sandbox 与 sandbox-shell隔离与兼容sandbox: true表示本次 Agent 执行放入loop-sandbox的临时 git worktree 中运行所有改动被捕获为可审查的.patch文件工作树随后被销毁主仓库保持干净详见 tools/loop-sandbox/README.md。sandbox-shell是loop-sandbox的兼容旋钮只控制是否额外传入--shell与command能否使用管道、、多行脚本无关——后者由临时脚本机制天然支持见下文。日常使用保持默认false即可。幕后执行流程从审计到隔离运行的五个步骤README 明确说明Action 运行时会顺序执行以下流程action.yml 给出了每一步的精确实现步骤 1loop-audit 就绪度审计npx --yes cobusgreyling/loop-audit .对仓库按 Loop Readiness 规则打分0–100检查STATE.md、gate.yaml、约束文件等是否就位。值得注意从 action.yml 的结构看该步骤没有配置continue-on-error而 loop-audit README 说明分数 40 时退出码为 2因此可以推断——当仓库尚未达到就绪基线时工作流会在第一步就失败退出这正是把审计用作 CI 闸门的预期行为。步骤 2loop-context 熔断检查npx --yes cobusgreyling/loop-context --check --ledger loop-ledger.json \ --budget-from-pattern ${{ inputs.pattern }} --budget-level ${{ inputs.level }}loop-context 在此扮演熔断器角色若 loop 陷入失败循环同一错误连续重复--stagnation次、连续失败达--no-progress次、迭代次数超--max-iterations、或累计 token 触及预算上限--check以退出码2升级escalate到人工处理退出码0表示继续。由于 Composite Action 中步骤失败即中止熔断触发会立即终止整个工作流而不是让 Agent 继续空转烧预算。--budget-from-pattern从 loop-cost 的注册表解析单次运行预算--budget-level决定按 L1/L2/L3 哪个等级取值。步骤 3写入 Agent 命令脚本这一步是command安全传递的关键实现。action.yml 的实现为- name: Write Agent Command Script id: write_command env: LOOP_COMMAND: ${{ inputs.command }} run: | script_path$(mktemp ${RUNNER_TEMP:-/tmp}/loop-action-command.XXXXXX) printf %s\n $LOOP_COMMAND $script_path echo script-path$script_path $GITHUB_OUTPUT shell: bash要点在于command是通过步骤的env:映射传递的而不是被拼接到run:脚本文本中随后用mktemp在$RUNNER_TEMP缺省为/tmp下创建临时文件将内容原样写入并把脚本路径经GITHUB_OUTPUT暴露给后续步骤。这种写临时脚本的方式保证了多行命令、引号、shell 元字符作为一个整体脚本被保留而不是被外层工作流 YAML 二次解析破坏这一设计动机可追溯至 scripts/issue-bodies/harden-loop-action-command.md 中不把inputs.command未加引号地展开进 shell的加固目标。步骤 4分支 Asandbox 隔离执行- name: Run Agent (Sandbox) if: ${{ inputs.sandbox true }} env: LOOP_SCRIPT_PATH: ${{ steps.write_command.outputs.script-path }} LOOP_SANDBOX_SHELL: ${{ inputs.sandbox-shell }} run: | if [ $LOOP_SANDBOX_SHELL true ]; then npx --yes cobusgreyling/loop-sandbox run --shell -- bash -eo pipefail $LOOP_SCRIPT_PATH else npx --yes cobusgreyling/loop-sandbox run -- bash -eo pipefail $LOOP_SCRIPT_PATH fi shell: bash在临时 git worktree 内以bash -eo pipefail执行脚本。loop-sandbox 会基于当前 HEAD 创建临时分支、把进程cwd设为隔离树、运行结束后用git diff --cached生成.patch文件并以git worktree remove --force清理。注意其隔离边界这不是容器级气隙Agent 进程仍拥有完整文件系统与网络访问权../../逃逸、.gitignore文件外的改动不会被补丁捕获——它是对 docs/safety.md 的补充而非替代。使用前需在项目.gitignore中加入.loop-sandbox/与.loop-worktrees/。步骤 4分支 B直接执行- name: Run Agent (Direct) if: ${{ inputs.sandbox ! true }} env: LOOP_SCRIPT_PATH: ${{ steps.write_command.outputs.script-path }} run: bash -eo pipefail $LOOP_SCRIPT_PATH shell: bashsandbox: false时在主工作树直接以bash -eo pipefail执行同一脚本适合 L1 报告型 loop 或暂时不需要隔离的场景。command 的安全语义临时脚本 bash -eo pipefailREADME 强调一个容易误解的点无论sandbox是true还是false也无论sandbox-shell取值如何command总是通过步骤 3 写入的临时脚本文件、以 Bash 脚本形式执行。脚本运行在bash -eo pipefail下因此任何非零退出的命令都会立即中止脚本set -e管道中任意一处的失败都会让整个管道失败pipefail而不是只取最后一段的退出码。sandbox-shell只决定loop-sandbox是否在运行bash script之前额外经由自己的内部 shell--shell路由一次——它是兼容性旋钮不是获取 shell 语法管道、、多行脚本的前提那些能力通过临时脚本天然具备。因此可以把command视同工作流里任何一个run:步骤来书写- uses: cobusgreyling/loop-engineering/tools/loop-actionmain with: pattern: ci-sweeper level: L2 sandbox: true command: | npx grok-cli run --skill .grok/skills/ci-sweeper/SKILL.md echo donecommand: |多行块被完整支持并作为单个原子脚本运行——每一行都在选定的路径沙箱或直连内执行而不只是第一行。这也在 QUICKSTART 中得到了呼应相比未加引号的多参数命令字符串推荐使用多行command: |块或单个脚本路径如scripts/run-agent.sh。安全边界永远不要将不可信输入拼入 commandREADME 给出了最严厉的一条警告属于命令注入防护红线绝不要直接把不可信输入嵌入command。不要从 issue 标题/正文、PR 标题/正文、commit message、分支名等任何外部不可信参与者可控的内容中做插值例如command: echo ${{ github.event.issue.title }}。command以作业的权限运行任意 shell 脚本无论 Action 内部如何传递字符串把不可信文本放进去都是 shell/命令注入漏洞。如果确实需要触发事件中的数据正确姿势是经由一个中间步骤先校验/转义或者把数据写入文件、让 Agent 读文件而不是直接拼进command。这与 docs/safety.md 中秘密不进提示词与日志、最小权限 GITHUB_TOKEN等护栏共同构成生产级 loop 的最低安全基线。真实工作流参考仓库内提供了可直接参考的完整示例examples/github-actions/README.md说明如何用loop-action取代手写审计/熔断脚本并给出pattern: daily-triage、level: L1的最小 YAMLexamples/github-actions/daily-triage.yml一个完整的定时调度工作流工作日 08:00 UTC其中Invoke Daily Triage Agent步骤使用loop-action并展示了sandbox-shell: true的用法同一目录下还有ci-sweeper.yml、issue-triage.yml、post-merge-cleanup.yml等模式的工作流。与整个 Loop Engineering 安全体系的配合loop-action 不是孤立的 Action而是把仓库内多个独立工具串成一条流水线就绪度审计由 loop-audit 提供分数 40 退出码为 2可作为 CI 闸门熔断与预算由 loop-context 提供其--check以退出码 0继续/ 2升级/ 1错误约定与loop-gate、loop-worktree mark --status escalated等控制脚本保持一致预算上限通过 loop-cost 从patterns/registry.yaml按模式与等级解析隔离执行由 loop-sandbox 提供底层依赖 loop-worktree 的 git worktree 与咨询锁能力——若多个定时 loop 可能触碰同一批文件可通过--lock-paths接入loop-worktree的路径级咨询锁避免并发竞争见 tools/loop-worktree/README.md 与 docs/multi-loop.md总体安全基线见 docs/safety.md路径拒绝清单、自动合并策略、人工闸门、MCP 最小权限等loop-action的level输入正与该文档中的自治等级对齐。参考Action 定义tools/loop-action/action.yml官方说明tools/loop-action/README.md配套工具loop-audit · loop-context · loop-sandbox · loop-worktree · loop-cost快速上手docs/QUICKSTART.mdGitHub Actions composite action 小节工作流示例examples/github-actions/README.md安全指南docs/safety.md赞分享人工智能AI AgentAgent 工作流CLI研发协作AI 技能MCP 服务【免费下载链接】loop-engineeringPractical patterns, starters CLI tools for loop engineering with AI coding agents. Design systems that prompt and orchestrate agents (inspired by Addy Osmani and Boris Cherny). Includes loop-audit, loop-init, loop-cost.项目地址https://gitcode.com/gh_mirrors/lo/loop-engineering点击查看免费下载相关推荐在 GitHub Actions 中一行打包网页Pake Composite Actiontw93/Pakev3全解析在 GitHub Actions 中一行打包网页Pake Composite Action tw93/Pakev3 全解析 Pake 是一个基于 Rus开发工具CLIKilo GitHub Action 实战指南在 GitHub Actions 中接入 Kilo AI 编码 AgentKilo GitHub Action 实战指南在 GitHub Actions 中接入 Kilo AI 编码 Agent Kilo GitHub Action人工智能大模型AI Agent代码智能体工具调用交互助手CLIloop-engineering CI/CD部署指南用GitHub Actions与loop-action实现Agent循环无人值守运行loop engineering CI/CD部署指南用GitHub Actions与loop action实现Agent循环无人值守运行 loop engin人工智能AI AgentAgent 工作流CLI研发协作AI 技能MCP 服务上一篇5个实用技巧用VMD让你的Markdown文档预览体验翻倍提升下一篇终极解决方案3步快速让Windows 10/11完美显示HEIC照片缩略图创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Comp AI CRM 图标设计工程指南:让图标在界面中自然安放的细节法则

Comp AI CRM 图标设计工程指南:让图标在界面中自然安放的细节法则

后端前端CRM人工智能AI Agent 【免费下载链接】crm Comp AI CRM is an open source, CRM designed for AI agents. Agentic-first CRM. 项目地址: https://gitcode.com/gh_mirrors/crm48/crm 点击查看 免费下载 本文以仓库内 .agents/skills/better-ui/icons.md 设…

2026/9/24 16:56:04 阅读更多 →
深入解析 Go 语言 YAML 处理库 gopkg.in/yaml.v3:在 wandb 中的实际应用与 API 全指南

深入解析 Go 语言 YAML 处理库 gopkg.in/yaml.v3:在 wandb 中的实际应用与 API 全指南

机器学习深度学习数据可视化可观测性 【免费下载链接】wandb The AI developer platform. Use Weights & Biases to train and fine-tune models, and manage models from experimentation to production. 项目地址: https://gitcode.com/gh_mirrors/wa/wandb 点…

2026/9/24 16:56:04 阅读更多 →
RookieAI_yolov8是什么:基于YOLOv8的FPS游戏AI自瞄工具完整入门指南

RookieAI_yolov8是什么:基于YOLOv8的FPS游戏AI自瞄工具完整入门指南

RookieAI_yolov8是什么:基于YOLOv8的FPS游戏AI自瞄工具完整入门指南 【免费下载链接】RookieAI_yolov8 基于yolov8实现的AI自瞄项目 AI self-aiming project based on yolov8 项目地址: https://gitcode.com/gh_mirrors/ro/RookieAI_yolov8 RookieAI_yolov8 …

2026/9/24 16:56:04 阅读更多 →

最新新闻

JSP+MySQL个人日记本源码运行全攻略:从环境搭建到避坑指南

JSP+MySQL个人日记本源码运行全攻略:从环境搭建到避坑指南

简介:基于jspmysql的JSP个人日记本源码,是一份面向Java Web初学者与课程设计场景的完整Web应用项目。资源以JSP作为视图层、Servlet处理控制逻辑,结合MySQL存储用户、日记与分类数据,覆盖用户登录、会话保持、日记增删改查、分类管…

2026/9/24 18:29:14 阅读更多 →
2026年AirPods全系选购指南:从AirPods 4到Pro与Max,哪款最适合你

2026年AirPods全系选购指南:从AirPods 4到Pro与Max,哪款最适合你

AirPods这个品类,现在真的有点“乱花渐欲迷人眼”了。从最初只有一款标准版,到如今AirPods 4、AirPods Pro、AirPods Max三条线并行,Plus版一般、Lite版传闻满天飞,哪怕是数码圈老手,真要下手买前不花点时间做功课&…

2026/9/24 18:29:14 阅读更多 →
结构可靠性分析:验算点法与直接抽样组合实战

结构可靠性分析:验算点法与直接抽样组合实战

简介:面向结构可靠性与安全度评估的实用算法压缩包,适合结构工程专业学生、科研人员及从事可靠性分析的工程师。资源聚焦验算点法和直接抽样法,同时涉及蒙特卡洛模拟思路,用于计算结构失效概率、评估极端荷载下的安全裕度&#xf…

2026/9/24 18:29:14 阅读更多 →
前后端分离部署实战:systemd托管Java进程+Nginx反向代理

前后端分离部署实战:systemd托管Java进程+Nginx反向代理

1. 部署方案设计与总体思路1.1 为什么是“systemd Nginx”这套组合前后端分离项目的部署,说简单也简单,说麻烦也麻烦。简单在于流程是固定的——后端打成 jar 包跑起来,前端构建出静态文件扔给 Web 服务器。麻烦在于每一个环节都有坑&#x…

2026/9/24 18:29:14 阅读更多 →
腾讯云EdgeOne免费CDN实战:接入配置与成本优化指南

腾讯云EdgeOne免费CDN实战:接入配置与成本优化指南

上个月帮一个朋友的博客站点排查访问慢的问题。他的服务器带宽只有5M,文章里全是高清截图和录屏素材,高峰期十几个人同时打开就卡得不行。我顺手看了眼他用的还是老式按量计费CDN,月底账单里光是流量费就占了一半。我说你这个站,流…

2026/9/24 18:29:14 阅读更多 →
Linux与Windows系统运维:参数查询与配置命令对照实战

Linux与Windows系统运维:参数查询与配置命令对照实战

很多时候,我们干的活儿并不是什么高深莫测的架构设计,反而是那些每天都在重复的“查一下参数、改一个配置”。尤其是当你的手头同时管着 Windows 服务器和 Linux 服务器时,这种“精神分裂”的感觉会特别明显:明明在 Windows 上用图…

2026/9/24 18:28:13 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →