Loop Engineering 配置指南

📅 2026/7/7 7:35:58 👁️ 阅读次数 📝 编程学习
Loop Engineering 配置指南

配置速查表

维度

Claude Code

Codex

Opencode

项目配置文件

.claude/CLAUDE.md.codex/AGENTS.mdAGENTS.md

(项目根)

Skill 目录(项目级)

.claude/skills/.codex/skills/skills/

Skill 目录(用户级)

~/.claude/skills/~/.codex/skills/~/.opencode/skills/

状态文件

STATE.md

(项目根)

STATE.mdSTATE.md

循环配置

LOOP.mdLOOP.mdLOOP.md

调度命令

/loop 1d

//schedule

Automations 页面

systemd / cron +opencode run

持续目标

/goal/goalopencode run "Goal: ..."

子 Agent 目录

.claude/agents/.codex/agents/*.tomlopencode agent <name>

连接器

MCP servers

MCP Connectors

opencode.json

+ MCP

Token 预算

loop-budget.md

loop-budget.md

loop-budget.md

运行日志

loop-run-log.md

loop-run-log.md

loop-run-log.md

脚手架

/loop 逐步搭建

手动

AGENTS.md

+STATE.md手动

健康检查

loop-audit

loop-audit

loop-audit

重要提醒:Skill 文件跨工具兼容。同一份 SKILL.md 可以同时放在.claude/skills/.codex/skills/skills/下,三个工具都能用。格式是公开标准(agentskills.io)。

一、Claude Code 配置

1. 配置文件放哪里

项目根目录/
├── .claude/
│ ├── CLAUDE.md # 项目规则(循环宪法)
│ ├── skills/
│ │ ├── loop-triage/
│ │ │ └── SKILL.md # 分诊技能
│ │ ├── minimal-fix/
│ │ │ └── SKILL.md # 最小修复技能
│ │ └── loop-verifier/
│ │ └── SKILL.md # 验证技能
│ └── agents/
│ ├── implementer.md # 实现者 Agent
│ └── reviewer.md # 审查者 Agent
├── STATE.md # 循环记忆
└── LOOP.md # 循环配置

2. CLAUDE.md 配置模板

markdown

# CLAUDE.md — 循环宪法

## 项目规则
- 语言: TypeScript / Python
- 测试: `npm test`, `pytest`
- 构建: `npm run build`

## 循环模式
- 初始 L1 报告模式,不自动改代码
- 每次读 STATE.md 再开始工作
- 每次跑完写入 STATE.md

## 安全边界
- 不自动推送和合并
- 不碰 .env、auth/、secrets/、payments/
- 改代码必须用 git worktree 隔离

## 验证
- 任何代码改动必须由独立的 Verifier 检查
- 验证必须跑真实测试,不能只看代码

3. 调度命令

bash

# L1 — 每日分诊(报告模式)
/loop 1d 跑 $loop-triage。读 STATE.md。产出追加到 STATE.md。不改代码。

# L2 — 分诊 + 自动修小问题
/loop 1d 跑 $loop-triage。高优先级小修小补:开工作树 → $minimal-fix → $loop-verifier → 验证通过开 PR。更新 STATE.md。

# /goal — 持续到条件满足
/goal "test/auth 下全部测试通过,lint 干净"

# /schedule — 定时调度(Claude Code Web 界面)
/schedule "每天早上 9 点跑 daily-triage,发状态报告给我"

4. 特色功能

  • 独立的 /goal 判断模型

    :默认用 Haiku 判断"是否完成",写代码的模型不给自己打分

  • Hooks 集成

    :在.claude/hooks.json配置 GitHub Actions 回调

  • MCP 生态最完整

    :GitHub / Linear / Slack / Jira / Notion 都有原生连接器

二、Codex 配置

1. 配置文件放哪里

项目根目录/
├── .codex/
│ ├── AGENTS.md # 项目规则
│ └── skills/
│ ├── loop-triage/
│ │ └── SKILL.md
│ ├── minimal-fix/
│ │ └── SKILL.md
│ └── loop-verifier/
│ └── SKILL.md
├── STATE.md
└── LOOP.md

2. AGENTS.md 配置模板

markdown

# AGENTS.md — 循环配置

## 循环规则
- L1 报告模式,前两周不自动修复
- 先读 STATE.md,再决定做什么
- 每次运行结束更新 STATE.md

## 安全
- 不经批准不推送
- 禁止修改 .env、credentials/、secrets/
- 每次代码实验用 git worktree 隔离

## 预算
- 每日 Token 上限 100k
- 超过 80% 自动切报告模式
- 超过 100% 跳过本次运行

3. 调度方式

Codex 的调度在网页界面的 Automations 标签页配置,不是命令行:

  1. 打开 codex.ai/app

  2. 进入 Automations 标签页

  3. 选择项目 → 写 Prompt → 选频率

  4. 输出发送到 Triage Inbox 或写回 STATE.md

Automation Prompt 示例(L1 分诊):

markdown

跑 loop-triage Skill。读 STATE.md。扫描最近 24 小时 CI 失败和 Open Issue。
输出结构化的优先级报告,追加到项目根目录的 STATE.md。
不改代码,只报告。

Automation Prompt 示例(L2 分诊+修复):

markdown

跑 loop-triage Skill。高优先级项中,判断为小修小补的:
开工作树 → 跑 minimal-fix Skill → 跑 loop-verifier Skill → 验证通过的开 PR。
中高风险项标记为"需人工审查"。
更新 STATE.md。不改不相关的代码。

4. 其他命令

bash

# /goal — Codex 也支持
/goal "计费模块迁移完成,旧 API 零调用"

# exec — 非交互模式跑脚本
codex exec "跑 loop-triage Skill,只报告,不改代码"

5. 特色功能

  • Automations 从网页配置

    ,不需要记命令

  • Triage Inbox

    :Codex 自带的分类收件箱,适合 L1 报告模式

  • 子 Agent TOML 配置

    :在.codex/agents/下用 TOML 文件定义 Agent

三、Opencode 配置

1. 配置文件放哪里

Opencode 不像 Claude Code 和 Codex 有固定的隐藏目录约定。它通过项目根目录的AGENTS.md加载规则,Skill 放在skills/目录下:

项目根目录/
├── AGENTS.md # 项目规则
├── skills/
│ ├── loop-triage/
│ │ └── SKILL.md
│ ├── minimal-fix/
│ │ └── SKILL.md
│ └── loop-verifier/
│ └── SKILL.md
├── STATE.md
└── LOOP.md

2. AGENTS.md 配置模板

markdown

# AGENTS.md — Opencode 循环配置

## 循环模式
- L1 报告模式,不改代码
- 每次先读 STATE.md 再开始工作
- 每次跑完写入 STATE.md

## 安全
- 不自动推送和合并
- 不修改 .env、secrets/、payments/
- 改代码用 git worktree 隔离

## 验证
- 所有代码改动必须由独立 Verifier 检查
- Verifier 必须跑真实测试

3. 调度方式

Opencode 本身没有内置调度器。调度依赖外部 cron 或 systemd timer:

bash

# /etc/cron.d/opencode-daily-triage
# 每个工作日早 9 点跑分诊
0 9 * * 1-5 cd /path/to/project && opencode run "跑 $loop-triage,读 STATE.md,只报告不改代码" --timeout 300

# 用 opencode run 跑目标和循环
# L1 — 一次分诊
opencode run "跑 $loop-triage。读 STATE.md。产出追加到 STATE.md。"

# /goal 模式
opencode run "Goal: test/auth 全部测试通过。Verifier 确认后停。"

# L2 — 分诊+修复(手动触发)
opencode run "跑 $loop-triage。高优先级小修小补:开 worktree → $minimal-fix → $loop-verifier → 通过开 PR。更新 STATE.md。"

4. 特色功能

  • AGENTS.md 最灵活

    :项目根目录直接放,不限制目录名称

  • Skill 目录结构简洁

    skills/<name>/SKILL.md,没有.opencode/前缀

  • 外部调度自由度高

    :可以用 systemd、cron、GitHub Actions 任意调度方式

  • export 功能

    opencode export <sessionID>导出完整会话,适合审计和调试

5. 适用场景

Opencode 适合需要灵活调度方式的场景——你已经有自己的一套自动化基础设施(cron/systemd/GitHub Actions),不需要工具内置调度。AGENTS.md 放在项目根目录,Skill 放在skills/,没有藏起来的配置,对团队协作更友好。

四、跨工具迁移指南

你不需要锁定一个工具。同一个循环设计可以跨工具跑。

Skill 文件直接复制

bash

# 从 Claude Code 复制到 Opencode
cp -r .claude/skills/loop-triage skills/loop-triage

# 从 Claude Code 复制到 Codex
cp -r .claude/skills/loop-triage .codex/skills/loop-triage

# 一键同步(如果装了 loop-sync)
npx @cobusgreyling/loop-sync .

脚手架生成(推荐方式)

bash

# 直接在一个目录下生成 Claude Code 的循环
npx @cobusgreyling/loop-init . --pattern daily-triage --tool claude

# 生成 Codex 的循环
npx @cobusgreyling/loop-init . --pattern daily-triage --tool codex

# 生成 Opencode 的循环
npx @cobusgreyling/loop-init . --pattern daily-triage --tool opencode

跨工具迁移对照

要做的事

Claude Code

Codex

Opencode

启动每日循环

/loop 1d <prompt>

Automations 页面配置

cron +opencode run

持续目标

/goal <条件>/goal <条件>opencode run "Goal: ..."

调用 Skill

$skill-name$skill-name

在 prompt 中引用

定义子 Agent

.claude/agents/*.md.codex/agents/*.tomlopencode agent <name>

设置 MCP

.claude/settings.json

应用设置

opencode.json

Token 预算

loop-budget.md

loop-budget.md

loop-budget.md

运行日志

loop-run-log.md

loop-run-log.md

loop-run-log.md

五、三份可复用的 Skill 文件

无论用哪个工具,这三份 SKILL.md 都是一模一样的。放在对应的 skills/ 目录下即可。

loop-triage(分诊)

markdown

---
name: loop-triage
description: >
分诊最近 24 小时 CI 失败、Issue 和提交。
产出结构化优先级报告供循环消费。
写入 STATE.md。
user_invocable: true
---

# Loop Triage Skill

你是分诊 Agent。产出优先级列表。

## 输入(循环提供)
- 最近 24h CI/测试失败
- 负责人名下的 Open Issue
- 最近 24-48h main 分支提交
- 当前 STATE.md

## 输出格式

### 1. 高优先级(立即处理)
- 一句话描述
- 为什么重要
- 建议循环下一步

### 2. 观察项

### 3. 噪音/忽略

### 4. 状态更新

minimal-fix(最小修复)

markdown

---
name: minimal-fix
description: >
对指定问题产出最小代码改动。
不改无关代码,不重构。
user_invocable: true
---

# Minimal Fix Skill

只修一个特定问题,最小 diff。

## 流程
1. 确认根因
2. 只改必须改的
3. 跑相关测试
4. 输出改了什么、为什么、跑了什么

## 规则
- 一个问题一次调用
- 不碰禁用路径列表
- 不用工作树时要求隔离

loop-verifier(独立验证)

markdown

---
name: loop-verifier
description: >
独立验证循环产出的代码改动。
找理由拒绝,不是找理由接受。
跑真实测试。
user_invocable: true
---

# Loop Verifier Skill

默认立场:拒绝。除非证据充分。

## 检查清单
1. 范围:只改了相关文件
2. 意图:确实解决了声明问题
3. 测试:跑了测试,报告结果
4. 不作弊:没有跳过测试
5. 风险:中高风险建议人工审查

六、快速起步对照表

步骤

Claude Code

Codex

Opencode

第 1 步

.claude/CLAUDE.md

.codex/AGENTS.md

AGENTS.md(项目根)

第 2 步

把 3 份 SKILL.md 放.claude/skills/

把 3 份 SKILL.md 放.codex/skills/

把 3 份 SKILL.md 放skills/

第 3 步

创建STATE.md(模板)

创建STATE.md

创建STATE.md

第 4 步/loop 1d 跑 $loop-triage,只报告

Automations: 分诊 Prompt,每天一次

cron +opencode run "跑 $loop-triage,只报告"

第 5 步

读一周 STATE.md,调优

读一周收件箱,调优

读一周 STATE.md,调优

第 6 步

加 $minimal-fix + $loop-verifier

升级 Automation 为 L2

cron 命令加 L2 参数

健康检查npx @cobusgreyling/loop-audit .

同上

同上