12 节课解锁 AI Agents,让AI替你打工(四):框架之实践篇

由于本章节内容较多,将会拆分成两篇文章进行讲解。第一篇是理论篇,主要介绍Agentic框架机器对比、核心概念和原理;第二篇是实战篇,将通过实际案例演示如何使用LangGraph构建聊天机器人,并探讨其在实际应用中的优势。

本篇为实战篇。

5. LangGraph实战


5.1 安装

在终端中运行以下命令安装LangGraph:

复制代码
1pip install -U langgraph

5.2 创建基础聊天机器人

1. 导入库

javascript 复制代码
1from typing import Annotated
​
2from typing_extensions import TypedDict
​
3from langgraph.graph import StateGraph, START, END
​
4from langgraph.graph.message import add_messages

2. 定义状态结构

arduino 复制代码
1class State(TypedDict):
​
2    messages: Annotated[list, add_messages]
​
3
​
4graph_builder = StateGraph(State)

3. 初始化LLM

ini 复制代码
1from langchain_anthropic import ChatAnthropic
​
2
​
3llm = ChatAnthropic(model="claude-3-5-sonnet-20240620")

4. 创建聊天机器人节点

arduino 复制代码
1def chatbot(state: State):
​
2    response = llm.invoke(state["messages"])
​
3    return {"messages": [response]}
​
4
​
5graph_builder.add_node("chatbot", chatbot)

5. 定义入口和终点

sql 复制代码
1graph_builder.add_edge(START, "chatbot")
​
2graph_builder.add_edge("chatbot", END)

6. 编译图

ini 复制代码
1graph = graph_builder.compile()

7. 可视化图结构

css 复制代码
1from IPython.display import Image, display
​
2
​
3try:
​
4    display(Image(graph.get_graph().draw_mermaid_png()))
​
5except Exception:
​
6    pass

8. 运行聊天机器人

css 复制代码
1while True:

2    user_input = input("User: ")

3    if user_input.lower() in ["quit", "exit", "q"]:

4        print("Goodbye!")

5        break

6

7    for event in graph.stream({"messages": [("user", user_input)]}):

8        for value in event.values():

9            print("Assistant:", value["messages"][-1].content)

5.3 高级技巧:工具集成

增强聊天机器人能力,使其支持网络搜索(需Tavily API密钥):

scss 复制代码
1from langchain_community.tools.tavily_search import TavilySearchResults

2

3tool = TavilySearchResults(max_results=2)

4tools = [tool]

5llm_with_tools = llm.bind_tools(tools)

6

7def chatbot(state: State):

8    return {"messages": [llm_with_tools.invoke(state["messages"])]}

9

10graph_builder.add_node("chatbot", chatbot)

11

12tool_node = ToolNode(tools=[tool])

13graph_builder.add_node("tools", tool_node)

14

15graph_builder.add_conditional_edges("chatbot", tools_condition)

16graph_builder.add_edge("tools", "chatbot")
  1. 为聊天机器人添加记忆

通过检查点系统实现对话历史记忆:

ini 复制代码
1from langgraph.checkpoint.memory import MemorySaver

2

3memory = MemorySaver()

4graph = graph_builder.compile(checkpointer=memory)

5

6config = {"configurable": {"thread_id": "1"}}  # 每个thread_id对应独立对话历史

7

8while True:

9    user_input = input("User: ")

10    # ...(同上)

11    for event in graph.stream({"messages": [("user", user_input)]}, config):

12        # ...(同上)
  1. 人机协同(Human in the Loop)

在工具调用前暂停流程,允许人工审核:

ini 复制代码
1graph = graph_builder.compile(

2    checkpointer=memory,

3    interrupt_before=["tools"]  # 在调用工具前中断

4)
  1. LangGraph实际应用场景

  • 智能客服

    记忆用户订单历史,处理退货或升级问题。

  • 研究助手

    自动检索论文,总结关键发现。

  • 个性化教育

    动态调整学习计划,推荐资源。

  • 业务流程自动化

    文档审批、数据分析和项目管理。

  1. 结论

AI Agent 框架正在重塑AI系统的构建方式,使自主 Agent 能够动态推理、规划和交互。通过对比主流框架并深入剖析LangGraph的图结构与状态管理机制,我们展示了如何构建具备记忆、工具集成和人机协同能力的复杂系统。随着技术进步,这类框架将成为开发自适应、交互式AI应用的核心工具,推动从静态流程到动态智能的范式转变。

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI

相关推荐
AI大模型1 小时前
12 节课解锁 AI Agents,让AI替你打工(三):框架之理论篇
程序员·llm·agent
程序员鱼皮2 小时前
颜色网站为啥都收费?自己做个要花多少钱?
计算机·程序员·互联网·编程·网站
炫饭第一名2 小时前
Cursor 一年深度开发实践:前端开发的效率革命🚀
前端·程序员·ai编程
后端小张2 小时前
【AI 学习】AI Agent 开发进阶:架构、规划、记忆与工具编排
java·人工智能·ai·架构·系统架构·agent·智能体
16324015413 小时前
回顾-大语言模型分类
llm
大模型真好玩4 小时前
LangChain1.0实战之多模态RAG系统(一)——多模态RAG系统核心架构及智能问答功能开发
人工智能·langchain·agent
MicrosoftReactor5 小时前
技术速递|GitHub Copilot 和 AI Agent 如何拯救传统系统
人工智能·github·copilot·agent
欧雷殿15 小时前
在富阳银湖成立地域化的软件研发团队
前端·程序员·创业