1. langgraph中的react agent使用 (创建react agent)

环境准备

首先,确保你已经安装了以下库:

  • langchain_openai
  • langchain_core
  • langgraph

你可以使用以下命令进行安装:

pip install langchain_openai langchain_core langgraph 

代码实现

1. 导入必要的库

from langchain_openai import ChatOpenAI
from typing import Literal
from langchain_core.tools import tool
from langgraph.prebuilt import create_react_agent
from IPython.display import Image, display

2. 初始化智谱AI 模型

model = ChatOpenAI(
    temperature=0,
    model="glm-4-plus",
    openai_api_key="your_api_key",
    openai_api_base="https://open.bigmodel.cn/api/paas/v4/"
)

3. 定义工具函数

@tool
def get_weather(city: Literal["nyc", "sf"]):
    """Use this to get weather information."""
    if city == "nyc":
        return "It might be cloudy in nyc"
    elif city == "sf":
        return "It's always sunny in sf"
    else:
        raise AssertionError("Unknown city")

4. 创建工具列表

tools = [get_weather]

5. 创建反应式代理

graph = create_react_agent(model, tools=tools)

6. 显示代理图

display(Image(graph.get_graph().draw_mermaid_png()))

在这里插入图片描述

7. 定义打印流函数

def print_stream(stream):
    for s in stream:
        message = s["messages"][-1]
        if isinstance(message, tuple):
            print(message)
        else:
            message.pretty_print()

8. 测试获取天气信息

inputs = {"messages": [("user", "what is the weather in sf")]}
print_stream(graph.stream(inputs, stream_mode="values"))

输出:

==============================[1m Human Message [0m=================================

what is the weather in sf
================================[1m Ai Message [0m==================================
Tool Calls:
  get_weather (call_9208187678678973525)
 Call ID: call_9208187678678973525
  Args:
    city: sf
================================[1m Tool Message [0m=================================
Name: get_weather

It's always sunny in sf
================================[1m Ai Message [0m==================================

The weather in San Francisco is always sunny.

9. 测试其他问题

inputs = {"messages": [("user", "who built you?")]}
print_stream(graph.stream(inputs, stream_mode="values"))

输出:

==============================[1m Human Message [0m=================================

who built you?
================================[1m Ai Message [0m==================================

I am ChatGLM(智谱清言), an AI assistant, developed by Zhipu AI and KEG Lab of Tsinghua University.

参考链接:https://langchain-ai.github.io/langgraph/how-tos/create-react-agent/

### React Agent 的概念与应用 React Agent 是一种基于 ReAct 机制开发的人工智能代理,旨在增强模型处理复杂任务的能力。通过结合外部工具和环境互动,这些代理能够在执行过程中动态调整策略并获取所需信息。 #### 实现过程概述 在 LangChain 中构建一个简单的 ReAct Agent 可以分为几个部分: - **安装依赖**:首先需要确保环境中已安装必要的库和支持包[^2]。 ```bash pip install langchain wikipedia ``` - **定义基础结构**:创建一个基本框架用于初始化代理及其操作逻辑[^4]。 ```python from langchain import LLMChain, PromptTemplate from langchain.llms.base import BaseLLM from typing import Dict, Any class SimpleReActAgent: def __init__(self, llm: BaseLLM): self.llm = llm def run(self, query: str) -> Dict[str, Any]: result = {} # 这里会加入实际的运行逻辑 return result ``` - **集成 Wikipedia 查询功能**:使代理具备访问维基百科数据的能力,以便根据用户请求返回相关信息。 ```python import wikipedia as wp def fetch_wiki_summary(topic: str) -> str: try: page = wp.page(topic) summary = page.summary[:100].replace('\n', ' ') return f"{summary}..." except Exception as e: return "无法找到该主题的相关信息" ``` - **完善交互流程**:允许代理接收来自用户的指令,并据此采取适当的动作;同时支持持续性的学习与自我优化[^3]。 ```python template = """You are an AI assistant that helps people find information. User asked about {query}. Here's what I found on Wikipedia: {wiki_result} Would you like more details or another topic? """ prompt = PromptTemplate(template=template) def react_with_user_input(agent: SimpleReActAgent, user_query: str): wiki_info = fetch_wiki_summary(user_query) response = prompt.format(query=user_query, wiki_result=wiki_info) print(response) while True: next_action = input("What do you want to do now? ") if not next_action.lower().strip(): break new_response = handle_next_step(next_action) print(new_response) def handle_next_step(action: str) -> str: # 处理后续动作... pass ``` 上述代码片段展示了如何使用 Python 和 LangChain 库来搭建一个简易版的 ReAct Agent 。此实例中的代理被赋予了向用户提供维基百科摘要的功能,并能依据进一步指示作出响应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值