在 LangGraph 中实现“反思与自我修正(Reflection & Self-Correction)”工作流是非常经典且强大的应用场景。这种模式通常用于提高 LLM 输出的质量,例如:写文章、编写代码或解答复杂问题。 它的核心逻辑是一个循环(Loop): 1. 生成(Generate):LLM 根据需求生成初稿。 2. 反思(Reflect/Critique):另一个(或同一个)LLM 扮演批评家,审查初稿并给出修改建议,同时判断是否达标。 3. 条件路由(Conditional Edge): - 如果达标(或达到最大迭代次数),结束(END)。 - 如果不达标,带着修改建议回到“生成”节点,重新修改。 下面我将带你一步步用完整的 Python 代码实现这个工作流。 1. 环境准备 你需要安装相关的包。这里我们使用 OpenAI 作为基础大模型,并利用 Pydantic 来强制 LLM 输出结构化数据(以便程序判断是否结束循环)。 设置环境变量: 2. 定义状态 (State) 在 LangGraph 中,一切数据通过 State 传递。我们需要记录当前的任务、草稿、批评意...