· liyu · agent · 7 min read
从 LangGraph 到自主 Agent:我的 AI Agent 开发之路
从最初接触 LangChain 到深入 LangGraph 构建多步骤 Agent 工作流,这篇文章分享我在 AI Agent 开发领域的探索历程和一些实践心得。
爆发的前夜:为什么 2025-2026 是 Agent 元年?
如果说 2023 年是大语言模型(LLM)狂飙突进的一年,那么 2025 到 2026 年,无疑是 AI Agent(智能体)真正走向应用爆发的元年。我们不再满足于仅仅像搜索引擎一样向大模型提问,而是希望它们能像一个真实的助手一样,理解复杂指令、使用外部工具、甚至在多步骤的任务中自主规划和纠错。
在这个背景下,我开始了我的 Agent 开发探索之旅。从最初使用简单的 Prompt,到后来接触复杂的框架,这段历程充满了挑战与惊喜。
框架演进:从 LangChain 的局限到 LangGraph 的灵活
当我刚开始构建具备工具调用能力的 AI 应用时,LangChain 是不二之选。它的 Chain 概念将 Prompt、LLM 和 OutputParser 串联起来,极大地简化了开发流程。
然而,随着任务复杂度的提升,仅仅依靠线性的 Chain 很快就暴露出局限性。真实世界的任务往往不是单一方向的流转,而是充满了条件分支、循环重试以及需要保持长期状态的多轮交互。LangChain 的传统 Agent 在处理需要精细控制执行流程的场景时,显得过于“黑盒”,难以进行灵活的干预和状态追踪。
这促使我转向了 LangGraph。LangGraph 建立在图(Graph)理论之上,它将复杂的 Agent 工作流抽象为图的节点和边。这种转变使得循环执行、状态保留和人类在环(Human-in-the-loop)变得异常自然和可控。
深入 LangGraph 核心概念
要掌握 LangGraph,必须理解其背后的几个核心概念,这些也是我在开发中最常打交道的:
- State(状态):图的生命线。它是一个数据结构,定义了在节点之间传递的全部信息。每一次节点的执行都可以更新这个状态。
- Node(节点):执行具体逻辑的地方。可以是一个 LLM 的调用、一个 API 请求,或者一段普通的数据处理 Python 代码。
- Edge(边):定义了节点之间的流转关系。
- Conditional Edge(条件路由):这是 LangGraph 强大的关键。根据当前 State 的具体内容(例如大模型是否决定调用工具),动态决定下一步流转到哪个节点。
实践案例:构建代码审查 Agent
为了更直观地说明,分享一个我用 LangGraph 构建代码审查 Agent的简化案例。
在这个图中,State 包含了待审查的 PR 代码、审查意见列表以及当前的审查状态。 工作流包含以下节点:
- 分析节点:调用 LLM 分析代码,识别潜在的 Bug 和风格问题。
- 工具节点:如果 LLM 需要更多上下文,触发条件路由,调用 GitHub API 获取相关文件的历史记录或依赖信息,然后将结果补充到 State 中返回分析节点(形成循环)。
- 总结节点:当 LLM 认为审查完成(无工具调用),则进入此节点,整理最终的 Review 报告。
通过 LangGraph,我可以清晰地看到这个循环分析的过程,甚至可以在代码被最终拒绝前加入一个“人工确认节点”,完美实现了灵活性。
开发中的阵痛与挑战
当然,开发 Agent 并非一帆风顺,过程中我遇到了不少挑战:
- 状态管理难题:当图变得非常复杂时,State 的膨胀会导致 LLM 的上下文超限。如何有效压缩状态、只保留关键信息,是一个需要不断优化的点。
- 工具调用的可靠性:模型有时会“幻觉”出不存在的工具参数,或者陷入无限调用某个失败工具的死循环。这需要我们在代码层面加入强大的容错机制和重试限制。
- Prompt Engineering 的精细化:在 LangGraph 中,Prompt 不仅要指导大模型回答问题,还要指导它何时该走哪条“条件边”,这对 Prompt 的编写提出了更高的逻辑性要求。
眺望未来:从被动工具到自主决策
回顾这段开发历程,我深刻感受到 Agent 技术正在飞速迭代。目前的 Agent 更多还是在人类设定的“轨道”(Graph)上运行。但我相信,未来的 Agent 将具备更强的自主决策能力,它们能够自己规划图的结构,自己发现并组合工具。
我们正在从“让机器生成代码”走向“让机器运行系统”。
推荐学习资源
如果你也对 Agent 开发感兴趣,以下是我个人非常推荐的学习资源:
- LangChain 官方 LangGraph 文档:最权威、更新最快的学习资料。
- 各种开源的多 Agent 框架源码,如 AutoGen 和 MetaGPT,非常有助于开阔思路。
Agent 的时代才刚刚开始,让我们一起保持好奇,持续构建。