**摘要**:反思(Reflection)让智能体**先执行再自检**:生成初版输出后,对结果做**评估与批评**,再根据反馈**修订**,形成「生成 → 评审 → 修订」的闭环。本文说明反思的动机、典型流程,以及如何用 **LangGraph** 的**状态图 + 条件边**实现 **Producer-Critic** 两角色迭代打磨,配套示例为基于 LLM 的代码生成与代码评审循环。
**关键词**:反思;Reflection;自检;Producer-Critic;LangGraph;条件边;StateGraph;代码评审;迭代 refinement
本示例实现「**写一个满足若干约束的阶乘函数**」(或**从文件加载待评审代码**)的反思循环:Producer 负责生成/修订代码,Critic 以「资深 Python 工程师」身份评审并输出 **JSON**(分数 0–100、原因、问题列表);若分数 **≥ 阈值(默认 90)** 或达最大轮数则结束,否则回到 Producer 修订。运行结束后最后一版代码会写入 **`revised_code.py`**(可用 `--output` 指定路径)。所有 Prompt 模板在 `prompt.py` 中,采用 Jinja2 格式。建议与代码中的 `README` 对照阅读。
相关博客链接:https://blog.csdn.net/zyctimes/article/details/158967238?spm=1011.2124.3001.6209
1