現(xiàn)Agent循環(huán)無人值守運(yùn)行)
loop-engineering CI/CD部署指南用GitHub Actions與loop-action實(shí)現(xiàn)Agent循環(huán)無人值守運(yùn)行【免費(fèi)下載鏈接】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.項(xiàng)目地址: https://gitcode.com/gh_mirrors/lo/loop-engineeringloop-engineering 是一個(gè)面向 AI 編碼代理AI coding agents循環(huán)工程的開源項(xiàng)目提供成熟的模式庫(kù)、起步套件與 CLI 工具。其中的loop-action復(fù)合 Action 可以安全地在 GitHub Actions 的 CI/CD 流水線中執(zhí)行 AI Agent它自動(dòng)完成就緒審計(jì)、Token 預(yù)算熔斷和隔離工作樹讓 Agent 循環(huán)真正具備無人值守運(yùn)行的條件。本指南帶你用不到 10 分鐘把 Agent 循環(huán)接入自己的 CI/CD 部署流水線。為什么需要把 Agent 循環(huán)放進(jìn) CI/CD傳統(tǒng)做法是CI 失敗了人去翻日志、手動(dòng)修復(fù)、手動(dòng)重跑。循環(huán)工程的思路是設(shè)計(jì)一個(gè)系統(tǒng)讓它自動(dòng)發(fā)現(xiàn)工作、派發(fā)給 Agent、驗(yàn)證結(jié)果并持久化狀態(tài)而不是你親自敲下一條條提示詞。官方給出的循環(huán)結(jié)構(gòu)Anatomy of a Loop如下調(diào)度觸發(fā) → 分診技能 → 狀態(tài)記憶 → 隔離工作樹 → 實(shí)現(xiàn)/驗(yàn)證子代理 → 人工關(guān)口把這個(gè)結(jié)構(gòu)搬到 GitHub Actions 中正是loop-action解決的問題。loop-action一個(gè)步驟封裝三重安全防線loop-action是一個(gè)官方 GitHub Composite Action源碼見 action.yml你不需要再手寫復(fù)雜的 shell 腳本來實(shí)現(xiàn)熔斷和隔離——它按順序執(zhí)行四步就緒審計(jì)loop-audit檢查倉(cāng)庫(kù)是否具備循環(huán)所需文件STATE.md、gate.yaml、約束文件等電路斷路器loop-context循環(huán)陷入失敗循環(huán)或耗盡每日 Token 預(yù)算時(shí)立即中止并升級(jí)給人工安全寫入命令腳本command通過環(huán)境變量傳遞并原樣寫入臨時(shí)文件避免引號(hào)、管道符被 YAML 二次解析執(zhí)行 Agent 命令開啟沙箱時(shí)經(jīng)由loop-sandbox在臨時(shí) git worktree中運(yùn)行改動(dòng)被捕獲為可審查的.patch文件主工作樹保持干凈否則直接在主樹上執(zhí)行。整個(gè)循環(huán)工程由五大原語(yǔ)支撐調(diào)度、工作樹、技能、MCP 插件與狀態(tài)記憶環(huán)環(huán)相扣快速上手第一個(gè) Agent 循環(huán)工作流在倉(cāng)庫(kù)根目錄先完成腳手架初始化無需克隆本項(xiàng)目npx cobusgreyling/loop init . --pattern daily-triage --tool claude npx cobusgreyling/loop doctor .然后在工作流中加入loop-action一步。下面是精簡(jiǎn)版的每日分診工作流完整版見 daily-triage.ymlname: Daily Triage Loop on: schedule: - cron: 0 8 * * 1-5 # 周一至周五 08:00 UTC workflow_dispatch: # 支持手動(dòng)觸發(fā) permissions: contents: read issues: read jobs: triage: runs-on: ubuntu-latest steps: - uses: actions/checkoutv7 - name: Invoke Triage Agent uses: cobusgreyling/loop-engineering/tools/loop-actionmain with: pattern: daily-triage level: L1 sandbox: false command: | # 替換為你自己的 Agent 調(diào)用命令例如 # npx grok-cli run --skill .grok/skills/loop-triage/SKILL.md echo Run loop-triage skill. Update STATE.md. Report only. 第一周鐵律只做報(bào)告report-only。不自動(dòng)修復(fù)、不自動(dòng)合并先讀完循環(huán)產(chǎn)出的狀態(tài)文件再逐步放開權(quán)限。5 個(gè)輸入?yún)?shù)詳解參數(shù)必填默認(rèn)值說明pattern?—循環(huán)模式名如ci-sweeper、daily-triage必須與loop-budget.md中登記的模式一致command?—Agent 的調(diào)用命令支持多行command: |塊以bash -eo pipefail執(zhí)行l(wèi)evel?L1自主級(jí)別L1 只讀報(bào)告 → L2 輔助 → L3 無人值守用于預(yù)算校驗(yàn)sandbox?false設(shè)為true時(shí)經(jīng)loop-sandbox在臨時(shí) worktree 中隔離執(zhí)行sandbox-shell?falseloop-sandbox的兼容選項(xiàng)常規(guī)使用無需修改完整說明見 tools/loop-action/README.md。為不同場(chǎng)景選擇合適的觸發(fā)策略項(xiàng)目為每種模式都提供了 schema 完整的參考工作流目錄examples/github-actions/按觸發(fā)事件分為兩類參考工作流觸發(fā)方式適用模式典型場(chǎng)景daily-triage.yml工作日 Cron 手動(dòng)Daily Triage每天早上匯總 CI 與倉(cāng)庫(kù)健康狀況ci-sweeper.ymlworkflow_run失敗事件CI SweeperCI 一掛Agent 自動(dòng)定位并嘗試修復(fù)issue-triage.yml每 2 小時(shí) 新 Issue 事件Issue Triage自動(dòng)歸類、打標(biāo)簽、評(píng)估優(yōu)先級(jí)post-merge-cleanup.ymlPush 到 main 夜間Post-Merge Cleanup合并后清理臨時(shí)代碼與技術(shù)債dependency-sweeper.ymlCronDependency Sweeper定期升級(jí)依賴并驗(yàn)證以 CI Sweeper 為例它的觸發(fā)條件非常簡(jiǎn)潔main 分支上任意 workflow 失敗即喚醒 Agent見 ci-sweeper.ymlon: workflow_run: workflows: [*] types: [completed] branches: [main] jobs: sweep: if: ${{ github.event.workflow_run.conclusion failure }} steps: # checkout、記錄失敗上下文后調(diào)用 loop-action - uses: cobusgreyling/loop-engineering/tools/loop-actionmain with: pattern: ci-sweeper level: L2 sandbox: true command: | # 接入你的 Agent分類失敗、在 worktree 修復(fù)、驗(yàn)證、開 PR從 L1 到 L3無人值守的三步升級(jí)路徑不要一開始就無人值守。loop-engineering 的推薦路徑是逐級(jí)放開L1 只讀報(bào)告第 1 周level: L1Agent 只寫狀態(tài)文件、只提建議。人工審閱輸出是否符合預(yù)期。L2 輔助修復(fù)第 2 周起level: L2sandbox: true。Agent 可在沙箱中嘗試修復(fù)產(chǎn)出.patch供審查驗(yàn)證器verifier連續(xù)一周表現(xiàn)正確后再升級(jí)。L3 無人值守最后預(yù)算、運(yùn)行日志與人工關(guān)口齊備后才開啟。此時(shí)熔斷器是關(guān)鍵防線——loop-context會(huì)在連續(xù) 3 次相同錯(cuò)誤、連續(xù) 5 次失敗或觸頂 Token 預(yù)算時(shí)退出并升級(jí)給人工詳見 tools/loop-context/README.md。上線前先算清楚成本npx cobusgreyling/loop cost --pattern ci-sweeper --level L2 --cadence 15m并在loop-budget.md中為每個(gè)循環(huán)登記每日最大運(yùn)行次數(shù)與 Token 上限參考本倉(cāng)庫(kù)的 loop-budget.md。安全要點(diǎn)無人值守不等于失控最小權(quán)限工作流只申請(qǐng)必要的permissions如contents: readpull-requests: writeGITHUB_TOKEN權(quán)限寧小勿大命令注入防護(hù)嚴(yán)禁把 Issue 標(biāo)題、PR 描述等外部不可信內(nèi)容直接拼接進(jìn)command——它將以 shell 腳本權(quán)限執(zhí)行正確做法是先驗(yàn)證/轉(zhuǎn)義或?qū)懭胛募?Agent 讀取合并門禁通過 gate.yaml 定義 denylist**/.env、**/auth/**等永不自動(dòng)改動(dòng)的路徑由loop-gate機(jī)械強(qiáng)制執(zhí)行沙箱不等于容器loop-sandbox提供 git worktree 級(jí)隔離進(jìn)程仍保留 OS 級(jí)文件與網(wǎng)絡(luò)訪問應(yīng)用 patch 前務(wù)必人工檢查。完整的安全與護(hù)欄模型見 docs/safety.md常見失敗模式與反模式見 docs/failure-modes.md。延伸資源資源路徑5 分鐘快速上手docs/QUICKSTART.mdloop-action 使用文檔tools/loop-action/README.md全部 GitHub Actions 示例examples/github-actions/README.md循環(huán)模式庫(kù)patterns/起步套件starters/安全護(hù)欄規(guī)范docs/safety.md按照「L1 報(bào)告 → L2 輔助 → L3 無人值守」的節(jié)奏配合loop-action的三重安全防線你的 CI/CD 流水線將從「人盯著 Agent 跑」進(jìn)化為「Agent 自己跑人只審關(guān)口」——這才是 CI/CD 部署 Agent 循環(huán)的正確打開方式?!久赓M(fèi)下載鏈接】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.項(xiàng)目地址: https://gitcode.com/gh_mirrors/lo/loop-engineering創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考