0Pricing
AI Agents · 课时

迭代式自我纠错循环

运行测试、解析失败结果、让模型修复——这是每个现代代码代理的内部循环。

迭代式自我纠错循环 是 CoddyKit 上的免费 AI Agents 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Agents 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Agents 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

为什么需要自我纠正

第一次尝试往往会失败。代码智能体的决定性特征是能够:

  1. 运行代码
  2. 读取错误信息
  3. 修复代码
  4. 重复执行

正是这个内部循环,将真正的编程智能体与文本补全演示区分开来。

The Loop

def code_until_pass(task, max_iters=10):
    write_initial_code(task)
    for i in range(max_iters):
        result = run_tests()
        if result.passed:
            return 'success'
        fix_prompt = f'Tests failed:\n{result.stderr}\nRead the code, identify the bug, and fix it with edit_file.'
        agent.run(fix_prompt)
    return 'gave up'

提供有用的反馈

笼统地说“测试失败”并不能帮助采取行动。请传递完整的错误输出、堆栈跟踪以及预期值与实际值:

fix_prompt = f'''
The tests failed with this output:

FAILED tests/test_utils.py::test_add
  AssertionError: expected 4, got 5
  at line 42

Fix the code by editing the file.
'''

重新修复前再次读取

模型会遗忘。请强制模型在每次迭代时重新读取文件的 current 状态:

fix_prompt = 'First, read_file the failing module. Then edit it.'

检测重复失败

如果同一个测试连续 3 次迭代都失败,且错误完全相同,说明智能体陷入了停滞。请重新规划或升级处理:

if same_error_count >= 3:
    return 'stuck — replanning needed'

Replan When Stuck

replan_prompt = f'''
The current approach is not working. The repeated error is:
{error}

Describe ONE alternative approach to solving the task.
'''

升级到更强的模型

如果廉价模型陷入停滞,请使用更强的模型,重试完全相同的 SAME 修复提示:

if iter > 3 and using_cheap_model:
    switch_to_big_model()
    # often unblocks 50% of stuck cases

每次编辑后进行验证

不要先批量进行许多编辑,再统一验证——这样很难判断失败由哪项编辑导致。编辑一处,验证一次,再编辑下一处。

将测试输出纳入上下文

在智能体的上下文中保留最近的测试输出。没有这些输出,智能体就不知道自己刚刚做了什么:

messages.append({'role': 'tool', 'content': f'After your edit, tests now: {test_summary}'})

避免无限“修复”循环

为迭代次数设置硬上限。如果达到最大迭代次数后任务仍未完成,就升级给人工处理:

if iter == MAX_ITERS - 1:
    notify_human(task, current_state, error_history)
    break

跟踪自我纠正指标

  • 成功所需的平均迭代次数
  • 达到最大迭代次数后放弃的任务数
  • 一次迭代成功的任务数与五次迭代成功的任务数

这些指标可以推动提示和工具的改进。

没有测试时进行自我批评

对于没有明确测试套件的任务,可以加入批评步骤:让智能体在提交前检查自己的差异:

critique_prompt = '''
Review your changes for:
- Off-by-one errors
- Missing error handling
- Breaking other tests
Return FIX LATER or DONE.
'''

自我纠正的输入

对于智能体的“修复循环”,最重要的单一输入是什么?

回顾

run -> 错误 -> 修复 -> 重复。传递具体的错误。重新修复前再次读取。检测停滞。陷入困境时升级到更强的模型或交由人工处理。

常见问题解答

「迭代式自我纠错循环」课时是免费的吗?

是的 — 「迭代式自我纠错循环」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Agents 课程的其余内容,请升级到 CoddyKit PRO。 AI Agents 课程共包含 4 节课。

「迭代式自我纠错循环」这节课中我会学到什么?

运行测试、解析失败结果、让模型修复——这是每个现代代码代理的内部循环。 你通过在浏览器中直接运行的动手代码来练习 AI Agents,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AI Agents 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AI Agents 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「迭代式自我纠错循环」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AI Agents 课中编写并运行代码吗?

能。每节 AI Agents 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 代理模式:规划—执行—验证
  2. 编码工具界面(读取、编辑、Bash)
  3. 迭代式自我纠错循环
  4. SWE-Agent 与 OpenDevin 架构
← 返回 AI Agents