- 四阶段演进:Agent原语→Ralph Loop→调度收敛→系统化 - 16项关键技术理念,标注首创来源 - 六层架构+七大核心原则 - 三大产品对比(Claude Code/Codex/LangChain) - 五步实战路线图+6种Loop模式速查+避坑指南 - 9项一手资料源链接
This commit is contained in:
@@ -0,0 +1,918 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Loop 工程完全指南 — 从 Prompt 到 Loop 的范式跃迁 [开发者向]</title>
|
||||
<style>
|
||||
:root {
|
||||
--color-primary: #0078D4;
|
||||
--color-primary-hover: #106EBE;
|
||||
--color-primary-active: #005A9E;
|
||||
--color-primary-bg: #DEECF9;
|
||||
--color-success: #107C10;
|
||||
--color-success-bg: #DFF6DD;
|
||||
--color-success-border: #A7E3A1;
|
||||
--color-warning: #FF8C00;
|
||||
--color-warning-bg: #FFF4CE;
|
||||
--color-warning-border: #FFD335;
|
||||
--color-error: #FF4D4F;
|
||||
--color-error-bg: #FDE7E9;
|
||||
--color-error-border: #EEACB2;
|
||||
|
||||
--bg: #F5F5F5;
|
||||
--bg-container: #FFFFFF;
|
||||
--bg-elevated: #FAFAFA;
|
||||
--border: #D9D9D9;
|
||||
--border-light: #F0F0F0;
|
||||
--text-primary: #141414;
|
||||
--text-secondary: #595959;
|
||||
--text-tertiary: #767676;
|
||||
|
||||
--radius-sm: 6px;
|
||||
--radius-md: 8px;
|
||||
--radius-lg: 12px;
|
||||
|
||||
--shadow-sm: 0 1px 2px rgba(0,0,0,0.03), 0 1px 6px -1px rgba(0,0,0,0.02);
|
||||
--shadow-md: 0 2px 4px rgba(0,0,0,0.04), 0 4px 12px -2px rgba(0,0,0,0.04);
|
||||
--shadow-lg: 0 4px 8px rgba(0,0,0,0.06), 0 8px 24px -4px rgba(0,0,0,0.08);
|
||||
|
||||
--sidebar-w: 260px;
|
||||
--header-h: 64px;
|
||||
}
|
||||
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
|
||||
'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei',
|
||||
'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
background: var(--bg);
|
||||
color: var(--text-primary);
|
||||
line-height: 1.57;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar { width: 6px; height: 6px; }
|
||||
::-webkit-scrollbar-track { background: transparent; }
|
||||
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }
|
||||
::-webkit-scrollbar-thumb:hover { background: var(--text-tertiary); }
|
||||
|
||||
/* ===== HEADER ===== */
|
||||
.header {
|
||||
position: fixed;
|
||||
top: 0; left: 0; right: 0;
|
||||
height: var(--header-h);
|
||||
background: rgba(255,255,255,0.88);
|
||||
backdrop-filter: blur(12px);
|
||||
border-bottom: 1px solid var(--border-light);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 2rem;
|
||||
z-index: 100;
|
||||
}
|
||||
.header h1 {
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
background: linear-gradient(135deg, var(--color-primary), #722ED1);
|
||||
-webkit-background-clip: text;
|
||||
background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
color: transparent;
|
||||
}
|
||||
.header .back-link {
|
||||
margin-right: 16px;
|
||||
font-size: 13px;
|
||||
color: var(--color-primary);
|
||||
text-decoration: none;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.header .back-link:hover { text-decoration: underline; }
|
||||
.header .version {
|
||||
margin-left: auto;
|
||||
font-size: 12px;
|
||||
color: var(--text-tertiary);
|
||||
font-family: 'SF Mono', Monaco, monospace;
|
||||
}
|
||||
|
||||
/* ===== SIDEBAR ===== */
|
||||
.sidebar {
|
||||
position: fixed;
|
||||
top: var(--header-h); left: 0; bottom: 0;
|
||||
width: var(--sidebar-w);
|
||||
background: var(--bg-container);
|
||||
border-right: 1px solid var(--border);
|
||||
overflow-y: auto;
|
||||
padding: 1.25rem 0;
|
||||
z-index: 90;
|
||||
}
|
||||
.sidebar .toc-label {
|
||||
font-size: 12px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.1em;
|
||||
color: var(--text-tertiary);
|
||||
padding: 0 1.25rem;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
.sidebar nav ol { list-style: none; padding: 0; counter-reset: toc; }
|
||||
.sidebar nav li { counter-increment: toc; padding: 0; }
|
||||
.sidebar nav a {
|
||||
display: block;
|
||||
padding: 0.5rem 1.25rem;
|
||||
color: var(--text-secondary);
|
||||
text-decoration: none;
|
||||
font-size: 13px;
|
||||
line-height: 1.4;
|
||||
border-left: 2px solid transparent;
|
||||
transition: all 0.15s;
|
||||
}
|
||||
.sidebar nav a::before {
|
||||
content: counter(toc) ". ";
|
||||
color: var(--color-primary);
|
||||
font-weight: 600;
|
||||
font-size: 12px;
|
||||
margin-right: 0.4rem;
|
||||
}
|
||||
.sidebar nav a:hover {
|
||||
color: var(--color-primary);
|
||||
background: var(--color-primary-bg);
|
||||
}
|
||||
.sidebar nav a.active {
|
||||
color: var(--color-primary);
|
||||
border-left-color: var(--color-primary);
|
||||
background: var(--color-primary-bg);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* ===== MAIN ===== */
|
||||
.main {
|
||||
margin-left: var(--sidebar-w);
|
||||
margin-top: var(--header-h);
|
||||
padding: 32px 40px 64px;
|
||||
min-height: calc(100vh - var(--header-h));
|
||||
max-width: 1100px;
|
||||
}
|
||||
|
||||
/* ===== KPI BAR ===== */
|
||||
.kpi-bar {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 12px;
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
.kpi {
|
||||
flex: 1; min-width: 130px;
|
||||
background: var(--bg-container);
|
||||
border: 1px solid var(--border-light);
|
||||
border-radius: var(--radius-md);
|
||||
padding: 16px 14px;
|
||||
text-align: center;
|
||||
box-shadow: var(--shadow-sm);
|
||||
}
|
||||
.kpi .num { font-size: 22px; font-weight: 800; color: var(--color-primary); line-height: 1.2; }
|
||||
.kpi .label { font-size: 11px; color: var(--text-tertiary); margin-top: 4px; }
|
||||
|
||||
/* ===== SECTIONS ===== */
|
||||
section {
|
||||
margin: 48px 0;
|
||||
scroll-margin-top: calc(var(--header-h) + 1rem);
|
||||
}
|
||||
section h2 { font-size:24px;line-height:32px;padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:20px;color:var(--color-primary); }
|
||||
section h3 { font-size:20px;line-height:28px;margin:24px 0 12px;color:#722ED1; }
|
||||
section h4 { font-size:16px;line-height:24px;margin:16px 0 8px;color:var(--color-success); }
|
||||
|
||||
/* ===== PARAGRAPH ===== */
|
||||
p {
|
||||
color: var(--text-secondary);
|
||||
font-size: 14px;
|
||||
margin: 10px 0;
|
||||
text-align: justify;
|
||||
}
|
||||
p.lead {
|
||||
font-size: 16px;
|
||||
color: var(--text-primary);
|
||||
line-height: 1.9;
|
||||
}
|
||||
strong { color: var(--text-primary); }
|
||||
|
||||
/* ===== TABLES ===== */
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 16px 0 24px;
|
||||
font-size: 13px;
|
||||
background: var(--bg-container);
|
||||
border-radius: var(--radius-md);
|
||||
overflow: hidden;
|
||||
box-shadow: var(--shadow-sm);
|
||||
}
|
||||
thead th {
|
||||
background: var(--color-primary);
|
||||
color: #fff;
|
||||
padding: 10px 14px;
|
||||
text-align: left;
|
||||
font-weight: 600;
|
||||
font-size: 12px;
|
||||
letter-spacing: 0.02em;
|
||||
}
|
||||
tbody td, tbody th {
|
||||
padding: 10px 14px;
|
||||
border-bottom: 1px solid var(--border-light);
|
||||
vertical-align: top;
|
||||
}
|
||||
tbody tr:last-child td { border-bottom: none; }
|
||||
tbody tr:nth-child(even) { background: var(--bg-elevated); }
|
||||
tbody td:first-child {
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* ===== CODE / INLINE ===== */
|
||||
code {
|
||||
font-family: 'Cascadia Code', 'Fira Code', 'SF Mono', Monaco, monospace;
|
||||
font-size: 12px;
|
||||
background: var(--bg-elevated);
|
||||
padding: 2px 6px;
|
||||
border-radius: var(--radius-sm);
|
||||
border: 1px solid var(--border-light);
|
||||
color: var(--color-primary-active);
|
||||
}
|
||||
pre {
|
||||
background: #1E1E1E;
|
||||
color: #D4D4D4;
|
||||
padding: 18px 20px;
|
||||
border-radius: var(--radius-md);
|
||||
overflow-x: auto;
|
||||
margin: 16px 0;
|
||||
font-size: 12px;
|
||||
line-height: 1.65;
|
||||
}
|
||||
pre code {
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* ===== QUOTES ===== */
|
||||
blockquote {
|
||||
border-left: 3px solid var(--color-primary);
|
||||
background: var(--color-primary-bg);
|
||||
margin: 16px 0;
|
||||
padding: 14px 18px;
|
||||
border-radius: 0 var(--radius-md) var(--radius-md) 0;
|
||||
font-size: 14px;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
blockquote strong { color: var(--color-primary); }
|
||||
|
||||
/* ===== LISTS ===== */
|
||||
ul, ol {
|
||||
margin: 10px 0;
|
||||
padding-left: 24px;
|
||||
color: var(--text-secondary);
|
||||
font-size: 14px;
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
/* ===== EVOLUTION TIMELINE ===== */
|
||||
.timeline { position: relative; padding-left: 28px; margin: 20px 0; }
|
||||
.timeline::before {
|
||||
content: '';
|
||||
position: absolute; left: 8px; top: 0; bottom: 0;
|
||||
width: 2px;
|
||||
background: linear-gradient(to bottom, var(--color-primary), #722ED1);
|
||||
}
|
||||
.tl-item {
|
||||
position: relative;
|
||||
margin-bottom: 28px;
|
||||
background: var(--bg-container);
|
||||
border: 1px solid var(--border-light);
|
||||
border-radius: var(--radius-md);
|
||||
padding: 18px 20px;
|
||||
box-shadow: var(--shadow-sm);
|
||||
}
|
||||
.tl-item::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: -24px; top: 22px;
|
||||
width: 10px; height: 10px;
|
||||
background: var(--color-primary);
|
||||
border-radius: 50%;
|
||||
border: 2px solid #fff;
|
||||
box-shadow: var(--shadow-sm);
|
||||
}
|
||||
.tl-date {
|
||||
font-size: 11px;
|
||||
color: var(--text-tertiary);
|
||||
font-family: 'SF Mono', Monaco, monospace;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.tl-item h4 { margin: 0 0 6px; font-size: 15px; color: var(--text-primary); }
|
||||
|
||||
/* ===== LAYER DIAGRAM ===== */
|
||||
.layer-stack {
|
||||
margin: 24px 0;
|
||||
font-family: 'SF Mono', Monaco, monospace;
|
||||
font-size: 12px;
|
||||
line-height: 1.6;
|
||||
background: var(--bg-container);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius-md);
|
||||
padding: 20px 24px;
|
||||
overflow-x: auto;
|
||||
box-shadow: var(--shadow-sm);
|
||||
}
|
||||
.layer-stack .l { display: block; padding: 2px 0; }
|
||||
.layer-stack .l6 { color: var(--color-primary); }
|
||||
.layer-stack .l5 { color: #722ED1; }
|
||||
.layer-stack .l4 { color: var(--color-success); }
|
||||
.layer-stack .l3 { color: var(--color-warning); }
|
||||
.layer-stack .l2 { color: #E04000; }
|
||||
.layer-stack .l1 { color: var(--text-secondary); }
|
||||
|
||||
/* ===== RESPONSIVE ===== */
|
||||
@media (max-width: 768px) {
|
||||
.sidebar { display: none; }
|
||||
.main { margin-left: 0; padding: 20px 16px 48px; max-width: 100%; }
|
||||
.header { padding: 0 1rem; }
|
||||
.header h1 { font-size: 15px; }
|
||||
.kpi-bar { gap: 8px; }
|
||||
.kpi { min-width: 80px; padding: 12px 8px; }
|
||||
.kpi .num { font-size: 18px; }
|
||||
table { font-size: 11px; }
|
||||
thead th, tbody td { padding: 8px 10px; }
|
||||
pre { font-size: 11px; padding: 12px 14px; }
|
||||
blockquote { font-size: 13px; padding: 10px 14px; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- ===== HEADER ===== -->
|
||||
<header class="header">
|
||||
<a class="back-link" href="../index.html">← 返回知识库</a>
|
||||
<h1>🔄 Loop 工程完全指南 [开发者向]</h1>
|
||||
<span class="version">v1.0 · 2026-06-21</span>
|
||||
</header>
|
||||
|
||||
<!-- ===== SIDEBAR ===== -->
|
||||
<aside class="sidebar">
|
||||
<div class="toc-label">目录</div>
|
||||
<nav>
|
||||
<ol>
|
||||
<li><a href="#s1">核心定义:什么是 Loop 工程</a></li>
|
||||
<li><a href="#s2">演进历程:四个阶段的范式跃迁</a></li>
|
||||
<li><a href="#s3">关键技术 / 理念清单</a></li>
|
||||
<li><a href="#s4">核心方法论:六层架构</a></li>
|
||||
<li><a href="#s5">三大产品对比</a></li>
|
||||
<li><a href="#s6">实战指南:从零搭建 Loop 系统</a></li>
|
||||
<li><a href="#s7">原始资料来源</a></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</aside>
|
||||
|
||||
<!-- ===== MAIN CONTENT ===== -->
|
||||
<main class="main">
|
||||
|
||||
<!-- 关键数据条 -->
|
||||
<div class="kpi-bar">
|
||||
<div class="kpi"><div class="num">6</div><div class="label">层架构</div></div>
|
||||
<div class="kpi"><div class="num">4</div><div class="label">演进阶段</div></div>
|
||||
<div class="kpi"><div class="num">16</div><div class="label">关键技术/理念</div></div>
|
||||
<div class="kpi"><div class="num">7</div><div class="label">核心原则</div></div>
|
||||
<div class="kpi"><div class="num">2026.06</div><div class="label">概念正式命名</div></div>
|
||||
</div>
|
||||
|
||||
<!-- ===== 一、核心定义 ===== -->
|
||||
<section id="s1">
|
||||
<h2>一、核心定义:什么是 Loop 工程</h2>
|
||||
|
||||
<p class="lead">
|
||||
<strong>Loop Engineering(循环工程)</strong>是 2026 年 6 月正式命名的 AI 编程新范式。其核心主张:<strong>不再手动为编程 Agent 写提示词,而是设计一套自主循环系统,让系统去发现任务、分派工作、验证结果、记录进度、决定下一步。</strong>
|
||||
</p>
|
||||
|
||||
<p>这一范式由三位关键人物共同推动:</p>
|
||||
|
||||
<table>
|
||||
<thead><tr><th>人物</th><th>身份</th><th>核心贡献</th></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Boris Cherny</td>
|
||||
<td>Anthropic · Claude Code 创建者</td>
|
||||
<td>2026 年 5 月 Sequoia AI Ascent 大会首次公开阐述 Loop 理念<br>自述每天管理"数千个"AI Agent 并行工作,一个月 259 个 PR 全由 Claude Code 生成<br>核心引用:<em>"我的工作是写 Loop,不再是写 Prompt"</em></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Peter Steinberger</td>
|
||||
<td>OpenAI · OpenClaw 创始人</td>
|
||||
<td>2026 年 6 月 7 日推文引爆舆论(800 万+ 浏览)<br>原话:<em>"你不再应该为编程 Agent 写提示词了,你应该设计循环,让循环去提示你的 Agent"</em></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Addy Osmani</td>
|
||||
<td>Google Cloud · AI 总监</td>
|
||||
<td>2026 年 6 月 7 日发表同名博客,<strong>正式将范式命名为 Loop Engineering</strong><br>提出"五种积木 + 一层记忆"六模块框架<br>同时提出三大人类职责警告</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<blockquote>
|
||||
<strong>一句话总结</strong>:Prompt Engineering 是你给 Agent 写指令;Loop Engineering 是你设计一个系统,让系统自动给 Agent 写指令、检查结果、决定下一步。开发者角色从"执行者"变为<strong>"系统设计者与仲裁者"</strong>。
|
||||
</blockquote>
|
||||
</section>
|
||||
|
||||
<!-- ===== 二、演进历程 ===== -->
|
||||
<section id="s2">
|
||||
<h2>二、演进历程:四个阶段的范式跃迁</h2>
|
||||
|
||||
<div class="timeline">
|
||||
|
||||
<div class="tl-item">
|
||||
<div class="tl-date">2024 Q4 – 2025 Q1</div>
|
||||
<h4>阶段一 · Agent 原语期 — 单次会话内的 Tool Calling Loop</h4>
|
||||
<p><strong>核心突破</strong>:LLM 不只是单次问答,而能在一次会话中反复调用工具——读文件、执行命令、根据结果修正——形成 <code>Model → Tool → Result → Model</code> 的基础闭环。Claude Code 和 Codex CLI 作为"Agent Harness"(运行时外壳)出现。</p>
|
||||
<p><strong>关键洞察</strong>(Michael Bolin, OpenAI):无状态请求设计(不使用 <code>previous_response_id</code>)、Prompt Caching 最大化(每次新 Prompt 是前一次的精确前缀扩展)、<code>/responses/compact</code> 自动压缩防止 Context 溢出。</p>
|
||||
<p><strong>局限</strong>:会话结束 = Agent 停止。人必须手动开启新会话、重新描述上下文。</p>
|
||||
</div>
|
||||
|
||||
<div class="tl-item">
|
||||
<div class="tl-date">2025 年中</div>
|
||||
<h4>阶段二 · Ralph Loop — Context Reset + 状态外置</h4>
|
||||
<p><strong>创造者</strong>:Geoffrey Huntley,澳大利亚开源开发者。原始实现仅 <strong>5 行 Bash</strong>:</p>
|
||||
<pre><code>while :; do
|
||||
cat PROMPT.md | claude-code
|
||||
done</code></pre>
|
||||
<p><strong>两个核心洞察</strong>:</p>
|
||||
<ul>
|
||||
<li><strong>Context Reset 即能力</strong>:每轮迭代用全新 Context Window,避免"上下文腐烂"——越后期推理质量越差</li>
|
||||
<li><strong>状态外置到磁盘</strong>:Agent 的"记忆"不在 Context 里,而在文件系统、git history、测试结果中。每轮从磁盘重建理解</li>
|
||||
</ul>
|
||||
<p><strong>停止条件</strong>:Stop Hook 检测完成信号(如文件中出现 <code>COMPLETE</code> 标记)。</p>
|
||||
<p><strong>影响</strong>:Boris Cherny 公开承认这直接启发了 Claude Code <code>/loop</code>。Anthropic 后续将其纳入官方插件系统。</p>
|
||||
</div>
|
||||
|
||||
<div class="tl-item">
|
||||
<div class="tl-date">2026 Q1 – Q2</div>
|
||||
<h4>阶段三 · 定时调度 + 条件收敛 — Loop 产品化</h4>
|
||||
<p><strong>两大产品答案</strong>:</p>
|
||||
<ul>
|
||||
<li><strong><code>/loop</code>(时间驱动)</strong>:Claude Code v2.1.72+。Cron 定时唤醒,固定间隔或动态自选间隔。<br>支持项目级默认行为(<code>.claude/loop.md</code>),限制单会话 50 个任务、7 天自动过期。</li>
|
||||
<li><strong><code>/goal</code>(条件驱动)</strong>:Claude Code v2.1.139(2026-05-14)。设置完成条件,每轮结束后<strong>独立 Evaluator 模型</strong>(Haiku)判断是否满足,不满足则自动继续。<br>核心创新——<strong>Generator-Evaluator Split</strong>:生成和验证用不同模型,禁止自评。Cherny 称此架构源于 GAN 的启发。</li>
|
||||
</ul>
|
||||
<p>Codex 同期发布 <code>/goal</code>(v0.128.0),一次记录为连续 25 小时、1,300 万 token、产出 3 万行代码。</p>
|
||||
</div>
|
||||
|
||||
<div class="tl-item">
|
||||
<div class="tl-date">2026 年 6 月</div>
|
||||
<h4>阶段四 · Loop Engineering 系统化 — 多 Agent 编排 + 自优化</h4>
|
||||
<p><strong>三件事引爆</strong>:</p>
|
||||
<ul>
|
||||
<li>6 月 2 日:Cherny @ Acquired Unplugged 重申"我的工作是写 Loop"</li>
|
||||
<li>6 月 7 日:Steinberger 推文(800 万浏览)→ Addy Osmani <strong>正式命名 Loop Engineering</strong></li>
|
||||
<li>6 月 16 日:LangChain 发表 "The Art of Loop Engineering",提出 <strong>四层 Loop 栈</strong>(Agent → Verification → Event-driven → Hill-climbing)</li>
|
||||
</ul>
|
||||
<p><strong>当前前沿</strong>:Cherny 自述 Anthropic 内部已做到 Agent 之间通过 Slack 互相通信;LangChain 的 Hill-climbing Loop 实现了 Agent 分析自身 Trace → 自动改写 Prompt/Tool/Grader 配置的自优化闭环。</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<h3>演进速查表</h3>
|
||||
<table>
|
||||
<thead><tr><th>阶段</th><th>时间</th><th>核心突破</th><th>代表技术</th><th>局限</th></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>一 · Agent 原语</td>
|
||||
<td>2024 Q4</td>
|
||||
<td>单次会话内 Tool Calling Loop</td>
|
||||
<td>Claude Code, Codex CLI</td>
|
||||
<td>会话结束 = Agent 停</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>二 · Ralph Loop</td>
|
||||
<td>2025 中</td>
|
||||
<td>Context Reset + 状态外置</td>
|
||||
<td>5 行 Bash, Stop Hook</td>
|
||||
<td>粗暴 <code>while true</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>三 · 调度 + 收敛</td>
|
||||
<td>2026 Q1</td>
|
||||
<td>定时触发 + Evaluator 判断停止</td>
|
||||
<td>/loop, /goal</td>
|
||||
<td>单 Agent 模式</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>四 · 系统化</td>
|
||||
<td>2026.06</td>
|
||||
<td>多 Agent 编排 + 自优化</td>
|
||||
<td>LangChain Engine, Agent Slack</td>
|
||||
<td>高 Token 成本</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<!-- ===== 三、关键技术/理念清单 ===== -->
|
||||
<section id="s3">
|
||||
<h2>三、关键技术 / 理念清单(16 项)</h2>
|
||||
|
||||
<p>按出现时间排列,标注首创来源。每一项都是 Loop 工程的构成要件。</p>
|
||||
|
||||
<table>
|
||||
<thead><tr><th style="width:4%">#</th><th style="width:24%">技术/理念</th><th style="width:42%">含义</th><th style="width:30%">来源</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>1</td><td><strong>Agent Harness</strong></td><td>协调 User / Model / Tool 的运行时外壳,管理会话生命周期</td><td>Claude Code / Codex CLI(2024 Q4)</td></tr>
|
||||
<tr><td>2</td><td><strong>Stateless Requests</strong></td><td>每次 API 请求完全独立,不使用 <code>previous_response_id</code>,支持 ZDR</td><td>Codex · Michael Bolin(2026-01)</td></tr>
|
||||
<tr><td>3</td><td><strong>Prefix Caching</strong></td><td>每次新 Prompt 是前一次的精确前缀扩展,最大化缓存命中率</td><td>Codex / Claude Code 共同演进</td></tr>
|
||||
<tr><td>4</td><td><strong>Context Compaction</strong></td><td>Token 超限时自动压缩对话历史,保留"潜在理解"</td><td>Codex <code>/responses/compact</code>(2026-01)</td></tr>
|
||||
<tr><td>5</td><td><strong>Context Reset</strong></td><td>每轮迭代用全新 Context Window,状态留磁盘。防止"上下文腐烂"</td><td>Ralph Loop · Huntley(2025 中)</td></tr>
|
||||
<tr><td>6</td><td><strong>State Externalization</strong></td><td>Agent 记忆 = 文件系统 + Git History + 测试结果 + 看板。不在 Context 里</td><td>Ralph Loop(2025 中)</td></tr>
|
||||
<tr><td>7</td><td><strong>Time-driven Trigger</strong></td><td>Cron 定时唤醒 Agent,无需人工触发</td><td>Claude Code <code>/loop</code>(v2.1.72)</td></tr>
|
||||
<tr><td>8</td><td><strong>Condition-driven Convergence</strong></td><td>条件满足时停止,非计时结束就停。由独立 Evaluator 判断</td><td>Claude Code <code>/goal</code>(2026-05-14)</td></tr>
|
||||
<tr><td>9</td><td><strong>Generator-Evaluator Split</strong></td><td>生成和验证用不同模型、不同 Context Window。禁止自评。GAN 启发</td><td>Anthropic 内部 → <code>/goal</code> 产品化</td></tr>
|
||||
<tr><td>10</td><td><strong>Worktree Isolation</strong></td><td><code>git worktree</code> 隔离并行 Agent 的工作目录,避免文件冲突</td><td>Claude Code <code>--worktree</code> / Codex 内置</td></tr>
|
||||
<tr><td>11</td><td><strong>Skill Codification</strong></td><td>项目知识编码为 <code>SKILL.md</code> 文件,Agent 每轮自动加载,不重新推导</td><td>Claude Code / Codex</td></tr>
|
||||
<tr><td>12</td><td><strong>MCP Connectors</strong></td><td>标准化协议连接外部工具:Issue Tracker、数据库、Slack</td><td>Anthropic MCP 协议</td></tr>
|
||||
<tr><td>13</td><td><strong>Multi-Agent Delegation</strong></td><td>Agent 把子任务派给独立子 Agent,平行执行后汇总</td><td>Claude Code Sub-agents</td></tr>
|
||||
<tr><td>14</td><td><strong>Event-driven Trigger</strong></td><td>外部事件(Webhook、Slack 消息、CI Failure)触发 Agent 运行</td><td>LangChain Fleet(2026-06)</td></tr>
|
||||
<tr><td>15</td><td><strong>Hill-climbing Self-improvement</strong></td><td>Agent 分析自身 Trace → 自动改写 Prompt / Tool / Grader 配置</td><td>LangChain Engine(2026-06)</td></tr>
|
||||
<tr><td>16</td><td><strong>Inter-Agent Communication</strong></td><td>Agent 之间通过 Slack 等渠道直接通信、协作、传递不确定性</td><td>Boris Cherny 实际工作流</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>这 16 项并非独立存在——它们构成一条清晰的演进链:<strong>先有单 Agent 的 Harness(#1-4),再用 Context Reset 和状态外置解决跨会话问题(#5-6),然后加上触发和收敛机制让 Agent 自主运行(#7-9),最后扩展到多 Agent 隔离、编排、通信、自优化(#10-16)。</strong></p>
|
||||
</section>
|
||||
|
||||
<!-- ===== 四、核心方法论 ===== -->
|
||||
<section id="s4">
|
||||
<h2>四、核心方法论:六层架构 + 七大原则</h2>
|
||||
|
||||
<h3>(一)六层架构</h3>
|
||||
|
||||
<p>综合所有一手资料(Claude Code 官方文档、Codex Agent Loop 技术文章、Addy Osmani 六模块、LangChain 四层栈),当前 Loop 工程可归纳为以下统一架构:</p>
|
||||
|
||||
<div class="layer-stack">
|
||||
<span class="l l6">┌─────────────────────────────────────────────────────────────────┐</span>
|
||||
<span class="l l6">│ L6 · 自优化层 Hill-climbing:分析生产 Trace → 自动改写配置 │</span>
|
||||
<span class="l l6">│ 来源:LangChain Engine(2026-06) │</span>
|
||||
<span class="l l6">├─────────────────────────────────────────────────────────────────┤</span>
|
||||
<span class="l l5">│ L5 · 编排层 Multi-Agent:派发 → 子 Agent 并行执行 → 汇总 → 校验 │</span>
|
||||
<span class="l l5">│ 来源:Claude Code Sub-agents + /batch │</span>
|
||||
<span class="l l5">├─────────────────────────────────────────────────────────────────┤</span>
|
||||
<span class="l l4">│ L4 · 验证层 Evaluator Split:独立模型(Haiku)判断完成 / 质量 │</span>
|
||||
<span class="l l4">│ 来源:Anthropic GAN 架构 → Claude Code /goal │</span>
|
||||
<span class="l l4">├─────────────────────────────────────────────────────────────────┤</span>
|
||||
<span class="l l3">│ L3 · 触发层 Triggers:Cron(/loop)│ Condition(/goal)│ Event(Webhook)│</span>
|
||||
<span class="l l3">│ 来源:Claude Code /loop + /goal + LangChain Fleet │</span>
|
||||
<span class="l l3">├─────────────────────────────────────────────────────────────────┤</span>
|
||||
<span class="l l2">│ L2 · 隔离层 Worktree:git worktree + 独立 Context Window │</span>
|
||||
<span class="l l2">│ 来源:Ralph Loop + Claude Code --worktree │</span>
|
||||
<span class="l l2">├─────────────────────────────────────────────────────────────────┤</span>
|
||||
<span class="l l1">│ L1 · 基础 Agent Loop:Model → Tool Call → Result → Model → ... │</span>
|
||||
<span class="l l1">│ 来源:Claude Code / Codex CLI(2024 Q4) │</span>
|
||||
<span class="l l1">├─────────────────────────────────────────────────────────────────┤</span>
|
||||
<span class="l l1">│ 基础设施层 Skills │ MCP Connectors │ State Files │ Git │ KANBAN │</span>
|
||||
<span class="l l1">└─────────────────────────────────────────────────────────────────┘</span>
|
||||
</div>
|
||||
|
||||
<h3>(二)七大核心原则</h3>
|
||||
|
||||
<table>
|
||||
<thead><tr><th style="width:4%">#</th><th style="width:18%">原则</th><th style="width:58%">内容</th><th style="width:20%">原始出处</th></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td><strong>生成与验证分离</strong></td>
|
||||
<td>Generator 永远不能给自己的作业打分。用独立 Evaluator(更小模型、独立 Context Window)判断完成条件和质量。这是 Loop 工程最底层的架构约束。</td>
|
||||
<td>Anthropic 工程实践<br>产品化于 <code>/goal</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td><strong>状态外置</strong></td>
|
||||
<td>Agent 的"记忆"不在 Context Window 里。状态持久化于文件系统、Git Log、看板(KANBAN.md / Linear)、测试结果中。每轮从磁盘重建理解。Context Window 只管"当下这一轮"。</td>
|
||||
<td>Ralph Loop<br>Huntley(2025 中)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td><strong>Context 即成本</strong></td>
|
||||
<td>Context 越少越新鲜越好。两种策略按任务选择:① Ralph-style 每轮全新窗口(适合重复执行模式化任务)② Prefix Caching 最大化复用(适合持续改进同一目标)。选错策略的代价是 Token 浪费或推理退化。</td>
|
||||
<td>Ralph Loop + Codex<br>Michael Bolin(2026-01)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td><strong>隔离并行</strong></td>
|
||||
<td>多个 Agent 同时工作 → 必须用 Git Worktree 隔离。共享工作区是 Loop 工程的头号故障源。每个 Agent 有自己的分支、自己的工作目录、自己的 Context Window。</td>
|
||||
<td>Claude Code <code>--worktree</code><br>Addy Osmani 六模块</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5</td>
|
||||
<td><strong>触发多样化</strong></td>
|
||||
<td>不再只有"人按回车"一个触发源。成熟的 Loop 系统应同时支持:<br>· 时间触发(Cron <code>/loop</code>)<br>· 条件触发(<code>/goal</code> 直到条件满足)<br>· 事件触发(Webhook、Slack、CI Failure)</td>
|
||||
<td>Claude Code +<br>LangChain Fleet</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6</td>
|
||||
<td><strong>人是最终仲裁者</strong></td>
|
||||
<td>Loop 越自动,越需要人在关键节点介入。三大风险:验证责任在人("Done"是声明不是证明)、理解债务在积累(Agent 产出越快你的差距越大)、认知投降在蔓延(Loop 越顺畅人越不思考)。</td>
|
||||
<td>Addy Osmani<br>"Loop Engineering"(2026-06-07)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7</td>
|
||||
<td><strong>自优化闭环</strong></td>
|
||||
<td>最高的 Loop 形态:Agent 分析自身生产 Trace → 发现模式 → 改写自身 Prompt / Tool / Grader 配置。从"人设计 Loop"进化到"Loop 设计 Loop"。</td>
|
||||
<td>LangChain<br>Hill-climbing Loop(2026-06-16)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<!-- ===== 五、三大产品对比 ===== -->
|
||||
<section id="s5">
|
||||
<h2>五、三大产品对比</h2>
|
||||
|
||||
<table>
|
||||
<thead><tr><th style="width:16%">功能</th><th style="width:28%">Claude Code(Anthropic)</th><th style="width:28%">Codex CLI(OpenAI)</th><th style="width:28%">LangChain</th></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>定时循环</strong></td>
|
||||
<td>✅ <code>/loop</code> Cron 调度<br>动态间隔或固定间隔<br>裸 <code>/loop</code> 运行内置维护 Prompt</td>
|
||||
<td>✅ Automations 标签页<br><code>/goal</code> 长期目标模式</td>
|
||||
<td>✅ Fleet Channels / Schedules<br>事件驱动触发</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>条件收敛</strong></td>
|
||||
<td>✅ <code>/goal</code>(v2.1.139+)<br>独立 Haiku Evaluator<br>最多 4,000 字符条件</td>
|
||||
<td>✅ <code>/goal</code>(v0.128.0+)<br>一次记录连续 25h / 13M tokens</td>
|
||||
<td>✅ Verification Loop<br>RubricMiddleware<br><code>after_agent</code> hooks</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>工作隔离</strong></td>
|
||||
<td>✅ <code>--worktree</code><br>Git Worktree</td>
|
||||
<td>✅ 内置 Worktree</td>
|
||||
<td>— (编排层,非执行层)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>技能文件</strong></td>
|
||||
<td>✅ <code>.claude/agents/SKILL.md</code></td>
|
||||
<td>✅ <code>.codex/agents/</code> TOML</td>
|
||||
<td>— (使用 LangGraph 定义)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>子代理</strong></td>
|
||||
<td>✅ Sub-agents<br>Agent Teams</td>
|
||||
<td>✅ Sub-agents(TOML 定义)</td>
|
||||
<td>✅ Multi-Agent via LangGraph</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>连接器</strong></td>
|
||||
<td>✅ MCP Servers + Plugins</td>
|
||||
<td>✅ MCP Connectors</td>
|
||||
<td>✅ LangChain Integrations</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>记忆/状态</strong></td>
|
||||
<td>✅ Memory 文件系统<br><code>.claude/loop.md</code></td>
|
||||
<td>✅ State Files</td>
|
||||
<td>✅ LangGraph Persistence<br>LangSmith Traces</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>自优化</strong></td>
|
||||
<td>— (尚未产品化)</td>
|
||||
<td>— (尚未产品化)</td>
|
||||
<td>✅ Hill-climbing Loop<br>LangSmith Engine</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Agent 间通信</strong></td>
|
||||
<td>🔶 内部使用(Slack)<br>未对外发布</td>
|
||||
<td>—</td>
|
||||
<td>—</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<!-- ===== 六、实战指南 ===== -->
|
||||
<section id="s6">
|
||||
<h2>六、实战指南:从零搭建 Loop 系统</h2>
|
||||
|
||||
<h3>(一)搭建路线图(五步递进)</h3>
|
||||
|
||||
<table>
|
||||
<thead><tr><th>步骤</th><th>做什么</th><th>Claude Code 命令</th><th>预计收获</th></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Step 1</strong></td>
|
||||
<td><strong>状态化项目</strong>:将任务管理从大脑/聊天记录迁移到 Markdown 看板<br>Agent 每轮自动读取看板,知道"已完成什么 / 下一步做什么"</td>
|
||||
<td>—(创建 <code>KANBAN.md</code> + <code>CLAUDE.md</code>)</td>
|
||||
<td>Agent 不再"失忆"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Step 2</strong></td>
|
||||
<td><strong>配置定时循环</strong>:将重复性维护任务交给 <code>/loop</code><br>例:每小时检查 CI / 每天整理 Issue / 每 30 分钟抓反馈</td>
|
||||
<td><code>/loop 1h 检查 CI 状态,有失败就修复</code><br><code>/loop 24h 整理未关闭的 Issue 并归类</code></td>
|
||||
<td>重复劳动自动化</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Step 3</strong></td>
|
||||
<td><strong>启用目标驱动</strong>:对明确知道"完成条件"的任务用 <code>/goal</code><br>例:所有测试通过才停 / CHANGELOG 更新完毕才停</td>
|
||||
<td><code>/goal all tests in test/ pass and lint is clean</code><br><code>/goal CHANGELOG.md has entry for every merged PR</code></td>
|
||||
<td>无人值守跑到底</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Step 4</strong></td>
|
||||
<td><strong>引入验证分离</strong>:不让同一个 Agent 审自己的代码<br>Generator Agent 写代码 → 提交 PR → Evaluator Agent 独立审查</td>
|
||||
<td>Agent 1: <code>claude --worktree feat-xxx "实现功能"</code><br>Agent 2: <code>claude --worktree review-xxx "/goal PR 审查通过"</code></td>
|
||||
<td>质量门禁自动化</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Step 5</strong></td>
|
||||
<td><strong>建设技能库</strong>:将反复教 Agent 的知识写成 <code>SKILL.md</code><br>每新增一个 Loop,检查是否有可复用的知识需要固化</td>
|
||||
<td>编写 <code>.claude/agents/skill-xxx/SKILL.md</code></td>
|
||||
<td>Token 成本持续下降</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>(二)常用 Loop 模式速查</h3>
|
||||
|
||||
<table>
|
||||
<thead><tr><th>模式</th><th>典型场景</th><th>示例命令</th><th>来源</th></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>🔧 <strong>CI 修复</strong></td>
|
||||
<td>PR 合并后 CI 失败,自动分析并修复</td>
|
||||
<td><code>/loop 30m 检查 CI 失败项,分析原因并修复</code></td>
|
||||
<td>Boris Cherny 实际使用</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>📋 <strong>看板推动</strong></td>
|
||||
<td>按看板优先级自动推进 Backlog 任务</td>
|
||||
<td><code>/loop 2h 读取 KANBAN.md,选最高优先级待办推进</code></td>
|
||||
<td>Addy Osmani 示例</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>📊 <strong>反馈聚合</strong></td>
|
||||
<td>定时抓取外部反馈,聚类汇总</td>
|
||||
<td><code>/loop 30m 抓取反馈并聚类为三类问题</code></td>
|
||||
<td>Boris Cherny 实际使用</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>✅ <strong>Deploy 验证</strong></td>
|
||||
<td>部署后持续检查,直到健康检查通过</td>
|
||||
<td><code>/goal deploy health check returns 200 and all pods are ready</code></td>
|
||||
<td>Claude Code 官方文档</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>🔍 <strong>代码审查</strong></td>
|
||||
<td>独立 Agent 审查所有未 review 的 PR</td>
|
||||
<td><code>/loop 4h 审查所有待 review 的 PR,在代码行级添加评论</code></td>
|
||||
<td>Generator-Evaluator 模式</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>📝 <strong>文档同步</strong></td>
|
||||
<td>代码变更后自动更新相关文档</td>
|
||||
<td><code>/loop 1h 检查 git diff,更新受影响的 .md 文件</code></td>
|
||||
<td>LoopFlow 预设模式</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>(三)避坑指南</h3>
|
||||
|
||||
<table>
|
||||
<thead><tr><th>坑</th><th>症状</th><th>对策</th></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>无限循环</strong></td>
|
||||
<td>Agent 在模糊任务上不停转圈,烧 Token</td>
|
||||
<td>始终设硬上限(最大迭代次数、最大 Token、最大时长)。用 <code>/goal</code> 而非裸 <code>/loop</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Context 腐烂</strong></td>
|
||||
<td>第 N 轮后推理质量显著下降</td>
|
||||
<td>启用 Context Reset(每轮全新窗口 + 磁盘状态),或用 Prefix Caching 控制窗口增长</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>文件冲突</strong></td>
|
||||
<td>多个 Agent 同时修改同一文件导致 Git 冲突</td>
|
||||
<td>每个 Agent 用 <code>--worktree</code> 隔离。不要共享工作目录</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Token 爆炸</strong></td>
|
||||
<td>Loop 间隔过密,月度账单失控</td>
|
||||
<td>对非紧急的周期性检查用 1h+ 间隔;能事件驱动就不要轮询(Monitor 优于高频 Loop)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>认知投降</strong></td>
|
||||
<td>Loop 跑顺后不再审查输出,直接合并</td>
|
||||
<td>强制人工 Review 步骤:Evaluator 通过 → 打 Tag → 人工确认 → 才合并</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<!-- ===== 七、原始资料来源 ===== -->
|
||||
<section id="s7">
|
||||
<h2>七、原始资料来源</h2>
|
||||
|
||||
<p>本文所有技术事实均源自以下一手资料,未使用自媒体转述。</p>
|
||||
|
||||
<table>
|
||||
<thead><tr><th>#</th><th>标题</th><th>作者/来源</th><th>日期</th><th>URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>Boris Cherny: Why Coding Is Solved(Sequoia AI Ascent 2026 访谈)</td>
|
||||
<td>Boris Cherny × Lauren Reeder(Sequoia)</td>
|
||||
<td>2026-05-04</td>
|
||||
<td><a href="https://podscan.fm/podcasts/training-data/episodes/anthropics-boris-cherny-codings-printing-press-moment" target="_blank">Training Data 播客</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>Loop Engineering(正式命名文章)</td>
|
||||
<td>Addy Osmani(Google Cloud)</td>
|
||||
<td>2026-06-07</td>
|
||||
<td><a href="https://addyosmani.com/blog/loop-engineering/" target="_blank">addyosmani.com</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>原推文:"shouldn't be prompting coding agents anymore"</td>
|
||||
<td>Peter Steinberger @steipete(OpenAI)</td>
|
||||
<td>2026-06-07</td>
|
||||
<td><a href="https://x.com/steipete" target="_blank">X @steipete</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>Claude Code 官方文档:Keep Claude working toward a goal(/goal)</td>
|
||||
<td>Anthropic</td>
|
||||
<td>2026-05-14</td>
|
||||
<td><a href="https://code.claude.com/docs/en/goal" target="_blank">code.claude.com/docs</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5</td>
|
||||
<td>Claude Code 官方文档:Run prompts on a schedule(/loop)</td>
|
||||
<td>Anthropic</td>
|
||||
<td>v2.1.72+</td>
|
||||
<td><a href="https://code.claude.com/docs/en/scheduled-tasks" target="_blank">code.claude.com/docs</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6</td>
|
||||
<td>Unrolling the Codex Agent Loop</td>
|
||||
<td>Michael Bolin(OpenAI Technical Staff)</td>
|
||||
<td>2026-01-23</td>
|
||||
<td><a href="https://openai.com/index/unrolling-the-codex-agent-loop/" target="_blank">openai.com</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7</td>
|
||||
<td>Build Iterative Repair Loops with Codex(Cookbook)</td>
|
||||
<td>OpenAI</td>
|
||||
<td>2026-05-11</td>
|
||||
<td><a href="https://developers.openai.com/cookbook/examples/codex/build_iterative_repair_loops_with_codex" target="_blank">developers.openai.com</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>8</td>
|
||||
<td>The Art of Loop Engineering(四层 Loop 栈)</td>
|
||||
<td>Sydney Runkle(LangChain)</td>
|
||||
<td>2026-06-16</td>
|
||||
<td><a href="https://www.langchain.com/blog/the-art-of-loop-engineering" target="_blank">langchain.com</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>9</td>
|
||||
<td>Ralph Wiggum Loop 官方插件</td>
|
||||
<td>Anthropic / Geoffrey Huntley</td>
|
||||
<td>2025</td>
|
||||
<td><a href="https://github.com/anthropics/claude-code/blob/main/plugins/ralph-wiggum/" target="_blank">GitHub anthropics/claude-code</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
</main>
|
||||
|
||||
<!-- Active sidebar link tracking -->
|
||||
<script>
|
||||
(function() {
|
||||
const navLinks = document.querySelectorAll('.sidebar nav a');
|
||||
const sections = [];
|
||||
navLinks.forEach(function(a) {
|
||||
const id = a.getAttribute('href').replace('#','');
|
||||
const el = document.getElementById(id);
|
||||
if (el) sections.push({ el: el, link: a });
|
||||
});
|
||||
function update() {
|
||||
let current = sections[0];
|
||||
for (let i = 0; i < sections.length; i++) {
|
||||
if (sections[i].el.getBoundingClientRect().top <= 200) {
|
||||
current = sections[i];
|
||||
}
|
||||
}
|
||||
navLinks.forEach(function(a) { a.classList.remove('active'); });
|
||||
if (current) current.link.classList.add('active');
|
||||
}
|
||||
window.addEventListener('scroll', update, { passive: true });
|
||||
update();
|
||||
})();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+2
-1
@@ -604,9 +604,10 @@ const wikiData = [
|
||||
{ path: "研发型企业AI转型方案/报告/ai-tools-training-lesson5-pm.html", title: "AI 工具实操培训 · 第五课", desc: "项目经理AI工作流:需求→WBS自动拆解→排期+甘特图、Gitea数据→进度报告+偏差预警、风险自动识别+登记册+看板", date: "2026-06-06" },
|
||||
{ path: "研发型企业AI转型方案/报告/ai-tools-training-lesson6-performance.html", title: "AI 工具实操培训 · 第六课", desc: "员工绩效评定:六维指标模型(产出/质量/协作/规范/成长/影响)、Gitea数据采集、AI绩效画像、面谈话术、五条红线", date: "2026-06-06" },
|
||||
]},
|
||||
{ dir: "AI Agent 驾驭工程", icon: "🎛️", desc: "Harness Engineering · Agent 运行时管控 · 成熟度模型", color: "pink",
|
||||
{ dir: "AI Agent 驾驭工程", icon: "🎛️", desc: "Harness → Loop Engineering · Agent 运行时管控 · 自主循环系统设计", color: "pink",
|
||||
items: [
|
||||
{ path: "AI Agent 驾驭工程/报告/ai-agent-harness-engineering.html", title: "AI Agent 驾驭工程(Harness Engineering)全面解析", desc: "从提示工程到驾驭工程的三级跃迁:11项核心组件职责、H0-H3四级成熟度模型、四大技术模块架构、三大支柱(前馈·反馈·传感器)、五大设计原则、实战案例与概念辨析", date: "2026-06-14" },
|
||||
{ path: "AI Agent 驾驭工程/报告/loop-engineering-guide.html", title: "Loop 工程完全指南 [开发者向]", desc: "2026年6月新范式:从手动Prompt到设计自主循环系统。4阶段演进、16项关键技术、6层架构+7大原则、3大产品对比、5步实战路线图、6种Loop模式速查", date: "2026-06-21" },
|
||||
]},
|
||||
{ dir: "抖音话题", icon: "🎙️", desc: "行业观点、口播话术、短视频脚本", color: "orange",
|
||||
items: [
|
||||
|
||||
Reference in New Issue
Block a user