Opencode 循环工作流约束设计:为 CLI 优先的 AI Agent 配置绑定护栏(loop-constraints 实战指南)
Opencode 循环工作流约束设计为 CLI 优先的 AI Agent 配置绑定护栏loop-constraints 实战指南【免费下载链接】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-engineering 仓库的 Opencode 示例中examples/opencode/constraints-example.md展示了如何为基于 CLI 的自动化循环工作流定义简单而有效的安全护栏guardrails。本文将以此文档为骨架结合仓库中的loop-constraints技能、默认约束模板与安全基线完整讲解如何在 Opencode 中落地一套每次运行前必读、运行中绝不违反的绑定约束体系帮助你掌控自动循环的边界、降低误操作风险并让新贡献者与共享仓库的协作变得可预测、可审计。一、约束的本质让循环可预测自动化循环loop放大的不仅是产出也包括错误。约束constraints是一组绑定规则binding rules——循环在任何场景下都不得违反的边界。examples/opencode/constraints-example.md开篇即点明其定位为 CLI 优先工作流定义简单护栏并与loop-init --tool opencode初始化命令配对使用初始化完成后可以针对项目定制生成的技能附加项目专属约束。它之所以有效是因为约束在循环运行之前就被注入到 Agent 上下文中而不是在运行中途才被想起。约束使自动化工作流可预测并显著降低意外或危险操作的发生概率——这一点对新贡献者和共享仓库尤其重要。二、最小示例一个带护栏的 loop-triage 技能原文档给出的最小示例只有三行目录结构却代表了 Opencode 中约束的典型载体——技能skillskills/ └── loop-triage/ └── SKILL.mdOpencode 会自动发现仓库根目录skills/下的技能文件因此约束规则被直接写进技能文件的## Constraints小节# Loop Triage ## Constraints - Read-only during the first week of onboarding. - Never force-push to any branch. - Only modify files directly related to the assigned issue. - Request confirmation before deleting or renaming files. - Do not expose secrets, tokens, or internal URLs.这五条规则覆盖了 L1报告模式阶段最常见的风险面读写边界只读、Git 操作边界禁止强推、修改范围边界只动与任务相关文件、破坏性操作边界删除/重命名需确认以及信息泄露边界不暴露密钥与内部 URL。它们全部使用平实的自然语言书写因为约束的消费方是 LLM Agent而不是编译器。与之配套的loop-triage技能本体见 starters/minimal-loop-opencode/skills/loop-triage/SKILL.md定义了技能的执行纪律输出 High-Priority Items、Watch Items、Noise/Ignore、State Updates 四个区块并要求Be brutally concise尽量简洁、triage 阶段绝不提出架构级改造——这些自身就是一种内置约束约束与技能互相强化。三、约束技能如何运作每次运行前的强制注入仅把规则写在技能里还不够还需要一个机制保证规则每次运行都被读到。仓库通过loop-constraints技能skills/loop-constraints/SKILL.md模板见 templates/SKILL.md.loop-constraints完成这一职责。该技能的核心身份是 Loop Constraints Enforcer约束执行者其强制流程如下从项目根目录读取loop-constraints.md将每一条规则加载进工作记忆检查loop-pause-all是否激活——若激活则立即退出对后续每一个动作应用这些规则。技能会在每次运行开始时输出一行确认信息给出生效规则数量Constraints loaded from loop-constraints.md: N rules active.如果loop-constraints.md不存在技能不会静默放行而是回退到 docs/safety.md 中的默认安全规则例如永不编辑.env、.env.*、auth/、payments/、secrets/、credentials/永不自动合并到 main永不禁用测试连续 3 次修复失败后升级上报。与其他技能的协作契约约束技能并非孤立运行它与循环中的其他技能存在明确的交互契约loop-triage约束可能覆盖 triage 的优先级例如不要 push意味着不要对 CI 修复采取行动minimal-fix约束限定可被修改的文件范围loop-verifier约束定义验证器必须检查的黑名单路径loop-budget约束可能施加比loop-budget.md更严格的预算策略。四、约束文件loop-constraints.md的结构与默认集约束规则的持久化载体是项目根目录的loop-constraints.md。examples/opencode/constraints.md明确技能在每次运行开始时读取该文件把 header 之下的每一行都视为绑定规则允许注释。仓库提供的默认模板 templates/loop-constraints.md 按主题分节是开箱即用的起始约束集分节默认规则Push Merge不 push 前先告知未经人工批准不自动合并到 main先建 draft PR 供审阅后再标记 readyPaths永不编辑.env、.env.*、auth/、payments/、secrets/、credentials/未经批准不编辑基础设施配置Code提出修复前必须运行测试永不为让 CI 变绿而禁用测试不做无关重构一次运行只修一个问题单项目最多 3 次修复尝试之后升级Communication行动前先告知未经批准不关闭 issue 或 PRBudgettoken 消耗达到日上限 80% 时切换为只报告模式loop-pause-all激活时立即退出模板末尾特别注明使用平实英语添加你自己的规则。循环逐字读取。——这意味着约束的语义完全由书写者负责Agent 不会主动猜你隐含的意图。新增规则的方式在 Opencode 中追加规则有两种途径方式一通过opencode run追加让循环自己写入# 追加一条规则循环先运行一次完成读取与持久化之后每次运行都会强制执行 opencode run \ Append this rule to loop-constraints.md verbatim: Dont push before telling me. Always run tests first.方式二直接编辑文件。任何规则修改都会在下一次循环运行时生效。五、把约束放在每次循环运行之前有了约束文件和技能之后关键操作是把约束注入到每次调度运行的最前面让它先于 triage 执行。examples/opencode/constraints.md给出了可复制的运行命令opencode run Run skills/loop-constraints/SKILL.md. Then run skills/loop-triage/SKILL.md. Update STATE.md. No auto-fix in week one.这条命令的含义是先运行约束技能读取loop-constraints.md并把规则烘焙进上下文再运行 triage最后更新状态文件且第一周不启用自动修复。由于 triage 与约束运行在同一个上下文中规则已经内嵌到 Agent 的上下文窗口triage 的任何决策都会被约束实时约束。六、自动脚手架与手动拷贝examples/opencode/constraints.md提供了两种落地方式。方式一使用 loop-init 自动生成npx cobusgreyling/loop-init . --pattern daily-triage --tool opencodeloop-init会将loop-constraints.md和skills/loop-constraints/SKILL.md复制到 opencode 期望的仓库根目录布局中。方式二手动拷贝无需初始化工具mkdir -p skills/loop-constraints cp templates/SKILL.md.loop-constraints skills/loop-constraints/SKILL.md cp templates/loop-constraints.md loop-constraints.md同时examples/opencode/README.md提示当前尚未提供loop-init --tool opencode的正式支持推荐直接复制 starters/minimal-loop-opencode/ 启动包或按上述片段在 30 秒内手动完成搭建。启动包中的权限控制参考starters/minimal-loop-opencode/opencode.json.example展示了如何在 opencode 层面对 agent 施加第二道约束——权限permission{ agent: { loop-triage: { mode: primary, prompt: Read AGENTS.md, LOOP.md, STATE.md, and skills/loop-triage/SKILL.md. Run report-only triage. Update STATE.md. Do not edit source code unless the human has explicitly enabled L2., permission: { bash: ask, edit: ask } }, verifier: { mode: subagent, prompt: Review the supplied diff or worktree summary against project rules, tests, and docs/safety.md. Do not edit files. Respond with APPROVE or REJECT and concise evidence., permission: { bash: ask, edit: deny } } } }注意 verifier 的edit权限被设置为deny——验证者只能审查、只能 APPROVE 或 REJECT不能改代码。这是约束在工具权限层的物化即使上下文注入失效权限系统仍会兜底拦截。starters/minimal-loop-opencode/AGENTS.md则把关键约束固化为 opencode 每次加载的项目级规则L1 只读模式起步triage 前先读STATE.md每次运行后更新STATE.md未经人工明确开启 L2 前不修改源码永不未经批准 push 或 merge禁止编辑.env、auth/、payments/等路径每次改代码必须使用独立 git worktree单项目最多 3 次修复尝试。 这构成了技能约束 项目规则 权限配置三层防护。七、安全基线约束背后的仓库级护栏约束不是孤立的灵感仓库在 docs/safety.md 中给出了系统化的安全基线可作为书写约束时的权威参考路径黑名单**/.env、**/.env.*、**/secrets/**、**/credentials/**、**/*_key*、**/*_secret*、**/.terraform/**、**/k8s/production/**、**/migrations/**、**/auth/**、**/payments/**、**/billing/**——循环未经人工批准永不自动编辑这些路径应编码进minimal-fix与实施类技能中自动合并策略默认不自动合并。即使对琐碎循环开放自动合并也只允许注释/文档错字、测试文件内的 lint 自动修复、import 排序、白名单docs/路径下的配置依赖版本升级、lockfile 变更、任何黑名单路径一律禁止人工门禁Human Gates安全、认证授权、支付账单、基础设施/Terraform/K8s 生产环境、依赖升级供应链风险、超过 N 个文件建议 N10的改动、同一事项第三次失败、token 预算超限申请——这些场景必须有人工介入Secrets 防护调度器 prompt 中绝不粘贴 API keytriage 技能应在写入状态前对 CI 日志脱敏状态文件经常被提交STATE.md中不得出现凭证。docs/safety.md还强调loop-sync每次运行都会将上述规则与gate.yaml交叉校验报告漂移但绝不自行改写任何一侧——哪边是正确的属于人工判断范畴。八、与其他工具链的约束写法对比约束的载体随工具而变化但核心契约一致每次循环运行开始前读取并强制执行loop-constraints.md。仓库提供了多套对照实现examples/claude-code/constraints.md通过/constraints rule命令追加规则技能安装在.claude/skills/loop-constraints/SKILL.mdexamples/cursor/constraints.mdCursor 无原生/constraints命令采用技能 always-on rules Automation prompt组合并可选在.cursor/rules/loop-constraints.mdc中镜像关键规则examples/codex/constraints.md直接在 Automation prompt 中声明运行约束技能后再 triageexamples/grok/constraints.md与 Claude Code 类似的/constraints追加方式。examples/opencode/constraints-example.md建议将本文方案与 Cursor 的编辑器优先工作流示例对照阅读——两者的差别本质上是CLI 优先与编辑器优先两种循环形态下约束载体的差异。九、约束的书写纪律examples/opencode/constraints.md在 Safety 一节给出了最关键的提醒也是整个约束体系的设计哲学Constraints arebinding. If a rule can be misinterpreted, rewrite it — the loop will not second-guess, the human will.约束是绑定的。如果某条规则可能被误解就重写它——循环不会二次揣测最终承担后果的是人类。这意味着约束作者必须假设 Agent 会逐字照办因此规则要尽量单义、具体、可判定例如永不强推分支优于推送时小心并覆盖读写范围、Git 操作、破坏性操作、信息泄露等风险维度。结合docs/safety.md的路径黑名单与人工门禁清单来编写约束可以让自动化循环既高效又有清晰的问责边界。十、参考资料索引examples/opencode/constraints-example.md — 本文骨架来源的最小护栏示例examples/opencode/constraints.md — Opencode 约束完整指南templates/loop-constraints.md — 默认约束集模板templates/SKILL.md.loop-constraints — 约束技能模板skills/loop-constraints/SKILL.md — 已安装的约束技能实现docs/safety.md — 路径黑名单、自动合并策略、人工门禁与 Secrets 防护starters/minimal-loop-opencode/ — 可克隆即用的最小 L1 triage 启动包含opencode.json.example、AGENTS.md、LOOP.mdexamples/cursor/constraints.md — 编辑器优先工作流的约束对照实现【免费下载链接】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创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

3个血泪教训:手写实现老罗和他的朋友们避坑指南

3个血泪教训:手写实现老罗和他的朋友们避坑指南

3个血泪教训:手写实现老罗和他的朋友们避坑指南 看了一堆教程还是不会写项目?别急,问题往往不在你不够聪明,而在于你一直在“调包”,却从未真正理解底层逻辑。今天咱们不聊虚的,直接切入正题。以【老罗和他的朋友们】这个典型场景为例,很多开发者在…

2026/9/23 18:44:01 阅读更多 →
倒词避坑指南:3个核心差异让你秒杀高频面试题

倒词避坑指南:3个核心差异让你秒杀高频面试题

倒词避坑指南:3个核心差异让你秒杀高频面试题 版本升级后 API 全变了,是不是让你抓耳挠腮,连最基本的字符串操作都得查半天文档?别慌,这不是你的问题,是“倒词”这个看似简单实则暗藏玄机的操作,在各大语言生态里被玩出了花。这也是为什么它常年…

2026/9/23 18:44:01 阅读更多 →
LightGBM-MATLAB轻量级接口:工业级高效建模与部署指南

LightGBM-MATLAB轻量级接口:工业级高效建模与部署指南

简介:本资源是面向MATLAB用户的数据科学实践工具包,专为在MATLAB环境中高效调用LightGBM轻量级梯度提升机而设计,适用于机器学习初学者、科研人员及工程建模者解决分类与回归等大规模数据建模问题。压缩包共7个文件,含5个核心MATL…

2026/9/23 18:44:01 阅读更多 →

最新新闻

Surface Duo刷机教程:fastboot与EDL救砖全流程详解

Surface Duo刷机教程:fastboot与EDL救砖全流程详解

简介:面向不熟悉官方文档、希望给微软Surface Duo刷机却无从下手的普通用户,这份教程用口语化讲解替代复杂术语,把“小白”最常卡住的环节拆开说明。内容没有停留在转载官方步骤,而是围绕真实操作补足了细节:刷机前如何…

2026/9/23 20:41:00 阅读更多 →
AI生成代码安全审查:三条信任边界与实操方法

AI生成代码安全审查:三条信任边界与实操方法

1. 为什么“看代码对不对”在 AI 生成场景下已经不够用了过去几年我参与过不少代码审查,传统模式下大家习惯盯的是语法、逻辑、边界条件、异常处理这些点。但自从团队开始大规模用 AI 辅助生成代码之后,我发现一个很明显的转变:代码本身“看起…

2026/9/23 20:41:00 阅读更多 →
技术分享:GBase 8s数据库启动服务基础说明

技术分享:GBase 8s数据库启动服务基础说明

南大通用GBase 8s数据库(gbase database)服务器启动基础说明完成 GBase 8s安装与基础配置后,还有一系列基础运维任务需要落地,包含准备应用连接、启动数据库、初始化磁盘空间、创建存储空间,配置备份恢复以及日常管理维…

2026/9/23 20:41:00 阅读更多 →
WAS8.5静默安装实战:imcl命令与节点联邦配置全解析

WAS8.5静默安装实战:imcl命令与节点联邦配置全解析

简介:面向WebSphere Application Server运维与实施人员的WAS 8.5静默安装及补丁升级完整步骤文档,覆盖Linux环境下安装包准备、目录结构规划、Installation Manager与WAS 8.5.5静默安装、管理概要与应用概要创建、Web管理控制台启动、Node节点配置&#…

2026/9/23 20:41:00 阅读更多 →
ramsey/uuid 安全漏洞披露政策(VDP)全解析:Scope 范围、Safe Harbor 条款与 PGP 加密上报流程

ramsey/uuid 安全漏洞披露政策(VDP)全解析:Scope 范围、Safe Harbor 条款与 PGP 加密上报流程

ramsey/uuid 安全漏洞披露政策(VDP)全解析:Scope 范围、Safe Harbor 条款与 PGP 加密上报流程 【免费下载链接】uuid :snowflake: A PHP library for generating universally unique identifiers (UUIDs). 项目地址: https://gitcode.com/g…

2026/9/23 20:41:00 阅读更多 →
Java企业报销系统实战:Spring Boot+Flowable流程驱动开发

Java企业报销系统实战:Spring Boot+Flowable流程驱动开发

简介:本资源是一套完整的Java毕业设计项目——企业报销管理系统,面向计算机专业本科生及Java初学者,聚焦办公自动化场景,解决传统纸质报销流程效率低、信息难共享、审批难追溯等实际问题。压缩包共206个文件,含109个编…

2026/9/23 20:40:00 阅读更多 →

日新闻

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A…

2026/9/23 0:00:23 阅读更多 →
2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我 刚把开发环境的显示器从1080P换到2K,跑老项目直接报错,版本升级后 API…

2026/9/23 0:01:25 阅读更多 →
3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点 官方文档翻了三遍还是云里雾里?别急,美眉图在实战项目中常被用来做数据可视化,但它的原理比你想的简单。今天咱们直接上手,用一个完整的小项目把美眉图跑通,不再死磕那些冗长的理论说明。…

2026/9/23 0:01:25 阅读更多 →

周新闻

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

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

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

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

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

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

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

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

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

2026/9/23 9:53:41 阅读更多 →

月新闻

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

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

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

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

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

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

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

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

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

2026/9/23 9:53:40 阅读更多 →