Significant-Gravitas/autogpt · Geeekha/Damn-Vulnerable-LLM-Agent · · Stevenic/reflexion
314 篇评测 (D+4 #9): Voyager 8.05 #1 / ReAct 7.90 / Reflexion 7.80 / AutoGPT 7.70
纠错通道 · 「存错 X」立即改 + 推新版到 ai-outputs repo
如果说 Context Engineering 是「模型看到什么」 — 那 Loop Engineering 是「模型怎么在多轮迭代中变好」。这是 LLM 应用从 "一次性 prompt" 跨到 "持续 agent" 的核心机制。本期 4-Q 报告给你 4 个问题、4 个答、GitHub 项目、Python 代码示例和量化数据。
它跟单轮 Prompt 的区别:
| 维度 | 单轮 Prompt | Loop Engineering |
|---|---|---|
| 关注点 | "一次答对" | "多轮回更好" |
| 修改对象 | 单次 prompt | think → act → observe → reflect → improve |
| 时间维度 | 1 轮 | N 轮,每轮 build on previous |
| 关键问题 | "prompt 该怎么写" | "怎么从失败中提取信号 + 改进" |
1 句话总结:单轮 Prompt 关注"一次答对" — Loop Engineering 关注"多轮回更好"。 后者是前者的超集,也是 LLM 应用的"自我进化"能力。
Loop Engineering 不是单一技术 — 它由 4 大机制构成:
| # | 机制 | 做什么 | 代表工作 |
|---|---|---|---|
| 1 | ReAct (Reason + Act) | think → act → observe 在每个 step 上循环 | Yao et al. 2022 · 7.90 / 10 |
| 2 | Reflexion | 在 action 失败后让 LLM 自己反思 + 写入 memory | Shinn et al. 2023 · 7.80 / 10 |
| 3 | Voyager (Skill Library) | 长期 skill library + 写新 skill 增加能力 | Wang et al. 2023 · 8.05 #1 |
| 4 | AutoGPT (Goal Loop) | 目标驱动 · 自生成 sub-task · 自我评估 | Significant Gravitas 2023 · 7.70 / 10 |
这 4 个机制里,ReAct 是基础 — 其他 3 个都在 ReAct 上加东西(reflection / skill library / auto-goal)。
| # | Repo | Stars | 做什么 | 应用 |
|---|---|---|---|---|
| 1 | Significant-Gravitas/AutoGPT |
~170K | AutoGPT · 自生成 sub-task + 自我评估循环 | 自主 agent demo |
| 2 | langchain-ai/langgraph |
~13K | LangGraph · state-based loop · production loop framework | 生产 loop |
| 3 | stanfordnlp/dspy |
~26K | DSPy · optimizer 自动调整 loop 中的 prompt | Loop 自动化 |
| 4 | Stevenic/reflexion |
~700 | Reflexion 论文官方实现 · self-reflection | 学术研究 |
| 5 | Geeekha/Damn-Vulnerable-LLM-Agent |
~1K | Loop 攻击防御 · 知道 loop 在哪里退化 | 安全 / 防御 |
Loop 不是银弹 — 4 种失败模式你必须知道:
| # | 失败模式 | 症状 | 修复 |
|---|---|---|---|
| 1 | Loop 停滞 | 同一个 step 重复 5+ 次不出结果 | max_iter 限制 + stuck detection |
| 2 | Loop 发散 | 每轮 context 越来越大 · 模型跑偏 | scratchpad summarization + reset |
| 3 | Loop 循环 | action → fail → reflection → same action → fail | reflection 加上"换 path"指令 |
| 4 | Loop 失控 | token 爆炸 / cost 失控 / 死循环 | cost 限制 + observability |
这 4 类里,1 和 4 最致命 — 一个卡死,一个烧钱。Context Engineering 4 类失败防 context 失败,Loop Engineering 4 类失败防 loop 失败。
ReAct 论文的经典实现(Python + LangChain):
from langchain import ChatOpenAI from langchain.tools import tool llm = ChatOpenAI(model="gpt-5") @tool def search(query: str) -> str: """Search the web for current information.""" return search_api(query) @tool def calculator(expression: str) -> str: """Evaluate a math expression.""" return str(eval(expression)) # ReAct loop def react_loop(question: str, max_iter: int = 10): scratchpad = f"Question: {question}\n" for i in range(max_iter): # 1. Think thought = llm.invoke(f"{scratchpad}\n\nNext step:").content scratchpad += f"\nThought {i+1}: {thought}\n" # 2. Act if "Search" in thought: query = thought.split("Search:")[1].split("\n")[0] result = search(query) elif "Calculate" in thought: expr = thought.split("Calculate:")[1].split("\n")[0] result = calculator(expr) elif "Final Answer" in thought: return thought.split("Final Answer:")[1].strip() else: result = "Unknown action" # 3. Observe scratchpad += f"Observation: {result}\n" return "Max iter reached"
关键设计:三阶段循环 — think / act / observe。每次循环追加到 scratchpad(不是覆盖)—— 让模型看到历史。
Q1 给出了 "Loop ≠ ReAct + 4 机制 + 4 失败 + 5 repo + 量化数据"。Q2 进入 如何做好 Loop Engineering — Ranked Ladder 8 best practice · 哪些最重要 / 哪些是 nice to have。