V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
chman
V2EX  ›  程序员

只有我一个人觉得 LangGraph 的理念和思维很奇怪么?

  •  
  •   chman · 3 小时 44 分钟前 · 637 次点击

    最近要做一个复杂的 Agent ,输入数据和提供 MCPTools ,让 AI 自主决策路径,循环调用工具,再根据工具结果继续决策,直到使用工具无法获得更多有价值的信息,在整合现有收集到的信息给出结论。 可以理解为一个破案过程。整过过程流程不固定、无法用 Dify 、n8n 这样的工作流预设好。

    最初的原型 Demo 我是基于 OpenManus 开发的。MCPTools 使用 FastMCP 自写的 MCP Sever ,提供 SSE 供 OpenManus 调用。目前感觉 OpenManus 效果勉强令人满意,感觉还有提升空间,优化提示词、优化 MCPTools 之后获得了一点点提升。现在就寻思会不会是 OpenManus 不够优秀,或者说有更好的框架适合我们的场景。

    于是开始了信的调研。

    我从很多渠道调研,都说 LangGraph 是最好的选择,包括 AI 也这么说。

    但是详细去了解、学习 LangGraph 。发现 LangGraph 的思维很奇怪,自己也是老 IT 人了,各种开发语言也写了几十个中小小项目了,第一次遇到一个东西研究了好几天,连理念都无法理解.....

    13 条回复    2025-12-24 20:01:40 +08:00
    zhengxiaowai
        1
    zhengxiaowai  
       3 小时 21 分钟前
    本质是一个新东西,新概念。当前还是百花齐放的状态,所以肯定混乱,很多传统的概念都不适用
    HannibaI
        2
    HannibaI  
       3 小时 20 分钟前
    +1 ,所以我自己撸了
    hex2ocean
        3
    hex2ocean  
       3 小时 11 分钟前
    LZ 方便分享下在理念方面有哪里不好理解吗?最近这边也在调研相关内容
    qieqie
        4
    qieqie  
       3 小时 11 分钟前
    LangChain, LangGraph 本来就是出名趁早,就成了风口上的猪,作者水平有限。
    建议看看 Google ADK, Agno, OpenAI Agents 这些。
    w568w
        5
    w568w  
       3 小时 7 分钟前   ❤️ 1
    我第一次看它的文档,有类似的感觉,因为我看了一个下午都没看懂文档在说什么,而且我自己还是专门做 AI 方向的。

    和同事讨论了一下之后,LangGraph 最大的一个问题就是:它希望实现一些很 nice 的理论特性,但是忽略了给 dev 过程带来的设计困难。

    比如说 LangGraph 顾名思义地把你的整个 Agent 工作流构建成一个有向图 workflow 。但是线性的代码书写方式对于构建有向图是非常 awkward 的。比如说一个循环和分支结构,正常写代码就是:

    while condition {
    do A
    do B
    update condition
    }

    但写成有向图会变成:

    # 创建节点
    a = create_node(A)
    b = create_node(B)
    condition_update = create_node(ConditionUpdate)
    end = create_node(End)

    # 添加边
    add_edge(a, b)
    add_edge(b, condition_update)
    add_edge(condition_update, a, end, cond=lamdba state: state.condition)

    # 执行图
    state = State(condition=True)
    output = execute(state)

    哪一种方式更易读?至少在这种场景下,显然是前者。那为什么 LangGraph 要选择后者呢?主要原因是它等于把控制流委托给 LangGraph 的引擎去做,这样就能自动支持状态存储/恢复、断点续行等特性,也就是说 LangGraph 是以一种设计复杂管线的思维在做 Agent 设计。

    但现在的 Agent 果真有这么复杂吗?我的理解是:

    - 如果在原型设计阶段,这种图模式不合适,因为修改成本高、和状态耦合太深。

    - 如果是简单的工作流,根本没必要使用图模式,就像上面的例子。

    - 如果是复杂的工作流,这种模式的上限也会制约系统的上限,尤其是关于状态管理和分支处理的部分。比如现在 LangGraph 为了支持错误 Node 重新执行,又搞出了钩子和中间件,系统复杂度被拔得太高了,学习成本也直线上升。那与其用这种框架,不如自己手搓适合业务的实现。这种情况下,LangGraph 也不适用。

    所以 LangGraph 在大部分场景下真的是鸡肋,有点 Spring 之于 Java 的感觉。但他的 API 都是搞 AI 的人设计出来的,这帮人的工程能力我不好点评(因为我自己也是),能达到 Spring 的水准吗?不好说。
    ychost
        6
    ychost  
       3 小时 3 分钟前
    langchain 就是出名早,实际用起来很糟糕,个人觉得 OpenAI 的 openai-agents-python 就刚刚好,简单直接,没那么多弯弯绕绕
    chman
        7
    chman  
    OP
       3 小时 2 分钟前
    @w568w 赞同啊。框架应该是易用的,背离了这一点。
    looplj
        8
    looplj  
       2 小时 58 分钟前
    LangGraph 和 agent 应该不是同一个东西吧,
    一个人工固定编排,要给让 llm 自主决策。
    chman
        9
    chman  
    OP
       2 小时 55 分钟前
    @looplj LangGraph 是开发 Agent 的框架,之一
    edisonwong
        10
    edisonwong  
       1 小时 37 分钟前
    最近也在研究。确实有些东西,官网介绍一眼你看不出它是做啥的,有啥用。然后 docs 里弯弯绕绕,晦涩难懂
    comeondewei
        11
    comeondewei  
       14 分钟前 via iPhone
    一开始是用 chain ,是因为当时 LLM 被当成文本函数,主要需求是顺序组合 Prompt 和工具;后来发现 Agent 本质是有控制流和有状态的系统,chain 的表达能力不够,才改成 graph
    comeondewei
        12
    comeondewei  
       13 分钟前 via iPhone
    所以现在 langchain 已经不是当年的字面意思了,是一个品牌(狗头)
    comeondewei
        13
    comeondewei  
       10 分钟前 via iPhone
    顺便吐槽,langchain 的工程能力确实一般,变全是破坏级更新,很多实现都非常草台,就拿 deepagent 来说,代码质量太差,一团浆糊。官方文档有一部分写得,也是不知所云
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2976 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 12:11 · PVG 20:11 · LAX 04:11 · JFK 07:11
    ♥ Do have faith in what you're doing.