上下文包括消息列表之外的任何数据,这些数据可以影响代理行为或工具执行。

        1.运行时传入的信息,如 `user_id` 或 API 凭据。

        2.多步推理过程中更新的内部状态。

        3.来自先前交互的持久记忆或事实。

        LangGraph 提供了三种提供上下文的主要方式:

类型 描述 可变? 生命周期
Configurable 在运行开始时传入的数据 每次运行
AgentState 执行期间可更改的动态数据 每次运行或对话
长期记忆 (存储) 可在对话之间共享的数据 跨对话

        可以使用上下文来:        

  • 调整模型看到的系统提示
  • 为工具提供必要的输入
  • 在正在进行的对话中跟踪事实

        

        ①.Configurable

        配置适用于不可变数据,如用户元数据或 API 密钥。当您有在运行期间不会更改的值时使用。使用保留用于此目的的键 "configurable" 指定配置。这里工具和graph.py是彼此分开两个.py文件的

from langchain_core.runnables import RunnableConfig
from langchain_core.tools import tool

@tool
def get_user_info_by_name(config:RunnableConfig) -> float:
    """获取用户的所有信息,包括性别年龄"""
    user_name=config['configurable'].get('user_name','zs')
    print(f"调用工具,传入的用户名为:{user_name}")
    return {'uesr_name':user_name,'sex':'男','age':18}
#05
from langchain_core.messages import AnyMessage
from langchain_core.runnables import RunnableConfig
from langchain_openai import ChatOpenAI

from langgraph.prebuilt.chat_agent_executor import AgentState, create_react_agent
from agent.tools.tool_demo2 import calculate2
from agent.tools.tool_demo6 import runnable_tool
from agent.tools.tool_demo7 import search_tool
from agent.tools.tool_demo8 import get_user_info_by_name

#这是一个动态提示词模板,为大语言模型(LLM)生成包含「系统指令 + 对话上下文」的完整输入消息列表
def prompt(state:AgentState,config:RunnableConfig) -> list[AnyMessage]:
    user_name=config['configurable'].get('user_name','zs')
    print(user_name)
    system_message=f"你是一个智能助手,当前的用户名字是:{'user_name'}"
    return [{'role':'system','content':system_message}] + state['messages']

llm = ChatOpenAI(
    model='deepseek-chat',
    temperature=0.8,
    api_key='XXXXX',
    base_url="https://api.deepseek.com/v1",
    extra_body={'chat_template_kwargs': {'enable_thinking': False}},
)


graph = create_react_agent(
    llm,
    tools=[search_tool,calculate2,runnable_tool,get_user_info_by_name],
    prompt=prompt
)




在test脚本中运行后结果如下

#测试脚本
from langgraph_sdk import get_client
import asyncio

#调用agent发布的API接口
client = get_client(url="http://localhost:2024")


from langgraph_sdk import get_sync_client

client = get_sync_client(url="http://localhost:2024")

for chunk in client.runs.stream(
    None,  # Threadless run
    "agent", # Name of assistant. Defined in langgraph.json.
    input={
        "messages": [{
            "role": "human",
            "content": "告诉我当前用户的年龄?",
        }],
    },
    stream_mode="messages-tuple",
):

    if isinstance(chunk.data,list) and 'type' in chunk.data[0] and chunk.data[0]['type'] == 'AIMessageChunk':
        print(chunk.data[0]['content'],end='')

        

        ②.AgentState

        状态在运行期间充当Agent的记忆,可以短期存储也可以长期存储。它保存可在执行期间演变的动态数据,例如从工具或 LLM 输出派生的值,此外,用户也可以修改其中的信息,但是State里面的信息,仅限每次运行或者对话,结果后,信息就没了

        案例:(给用户发出一个祝福语句)输入username ---> config----> 工具1---> 把username修改到State中------> 工具2----->获取State的username后经大模型生成得到最终答案。

        1.state.py

        CustomState(继承自 AgentState)来保存智能体的上下文数据(比如 username);而 @tool 装饰的函数是智能体可以主动调用的 “工具”,调用后会修改状态 / 返回结果,最终帮助智能体完成任务。

from langgraph.prebuilt.chat_agent_executor import AgentState


#定义自己的智能体状态类
class CustomState(AgentState):
    username:str

        2.tool_demo.py

        get_user_name 的作用与运行流程:

1.获取用户名:从调用时传入的 config 里拿到你指定的 user_name: "xzx";
2.更新状态:把 CustomState 里的 username 字段设为 “xzx”(后续工具 / 智能体可以直接用这个状态);
3.反馈结果:给智能体返回 “成功拿到用户名” 的消息,让智能体知道下一步该做什么。

        greet_user 的作用与运行流程:

1.读取状态:从 CustomState 里拿到 get_user_name 存好的 username: "xzx";
2.生成祝福:根据用户名生成简单的祝福语(“祝贺你:xzx”);
3.给智能体提供素材:这个祝福语会作为工具结果返回给智能体,智能体可以基于它进一步整理成更优美的最终回复。

from typing import Annotated

from langchain_core.messages import ToolMessage, AnyMessage, HumanMessage
from langchain_core.messages.tool import tool_call
from langchain_core.runnables import RunnableConfig
from langchain_core.tools import tool, InjectedToolCallId
from langgraph.prebuilt import InjectedState
from langgraph.types import Command

from agent.state import CustomState

@tool
def get_user_name(tool_call_id:Annotated[str,InjectedToolCallId],
        config:RunnableConfig) :
    """获取用户的所有信息,包括性别年龄"""
    user_name=config['configurable'].get('user_name','zs')
    print(f"调用工具,传入的用户名为:{user_name}")
    return Command(update={
        "username":user_name, #更新状态中的用户名
        #更新一条工具执行后的信息:ToolMessage类型
        "messages":[
            ToolMessage(
                content='成功得到当前用户的username',
                tool_call_id=tool_call_id
            )
        ]
    }
    )

@tool
def greet_user(state:Annotated[CustomState,InjectedState]) -> None:
    """获取用户的username之后,生成祝福语句"""
    user_name=state['username']
    return f'祝贺你:{user_name}'

        3.grapy.py

#05
from langchain_core.messages import AnyMessage
from langchain_core.runnables import RunnableConfig
from langchain_openai import ChatOpenAI

from langgraph.prebuilt.chat_agent_executor import AgentState, create_react_agent

from agent.state import CustomState
from agent.tools.tool_demo2 import calculate2
from agent.tools.tool_demo6 import runnable_tool
from agent.tools.tool_demo7 import search_tool
from agent.tools.tool_demo8 import get_user_info_by_name
from agent.tools.tool_demo9 import get_user_name, greet_user




llm = ChatOpenAI(
    model='deepseek-chat',
    temperature=0.8,
    api_key='XXXX',
    base_url="https://api.deepseek.com/v1",
    extra_body={'chat_template_kwargs': {'enable_thinking': False}},
)


graph = create_react_agent(
    llm,
    tools=[search_tool, calculate2, runnable_tool, get_user_name,greet_user],
    prompt ='你是一个智能助手',
    state_schema=CustomState
)




        4.测试脚本



from langgraph_sdk import get_client
import asyncio


# 调用agent发布的API接口


client = get_client(url="http://localhost:2024")  # 接口地址

async def main():
    async for chunk in client.runs.stream(
        None,  # Threadless run
        "agent", # Name of assistant. Defined in langgraph.json.
        input={
        "messages": [{
            "role": "human",
            "content": "给当前用户一个祝福语",
            }],
        },
        config={"configurable": {"user_name": "xzx"}}
    ):
        print(f"Receiving new event of type: {chunk.event}...")
        print(chunk.data)
        print("\n\n")


if __name__ == '__main__':
    asyncio.run(main())

        启动本地LangGraph服务后,运行测试脚本,输出如下:

        

        

        ③.长期记忆 (存储)

       第一种:开发环境下的短期记忆,存在内存

#05
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_openai import ChatOpenAI
from langgraph.checkpoint.memory import InMemorySaver

from langgraph.prebuilt import create_react_agent
from agent.tools.tool_demo6 import runnable_tool
from agent.tools.tool_demo7 import search_tool

llm = ChatOpenAI(
    model='deepseek-chat',
    temperature=0.8,
    api_key='XXXX',
    base_url="https://api.deepseek.com/v1",
    extra_body={'chat_template_kwargs': {'enable_thinking': False}},
)

checkpointer=InMemorySaver()#短期记忆,保存到内存中

graph2 = create_react_agent(
    llm,
    tools=[search_tool],
    prompt ="你是一个智能助手,尽可能调用工具回答客户的问题",
    checkpointer=checkpointer
)

config={
    "configurable":{
        "thread_id":"1"
    }
}

resp1 = graph2.invoke(
    {"messages": [{"role":"user","content":"今天深圳的天气怎么样?"}]},
    config=config
)

print(resp1['messages'][-1].content)

resp2 = graph2.invoke(
    {"messages": [{"role":"user","content":"北京呢?"}]},
    config=config
)

print(resp2['messages'][-1].content)


运行后:
根据查询结果,今天(12月22日,周一)深圳的天气情况如下:

**今日天气概况:**
- **天气状况**:晴天到多云
- **气温范围**:16℃ ~ 24℃
- **风力情况**:沿海、高地和海区最大阵风7级左右
- **空气质量**:优(PM2.5为30)
- **湿度**:76%
- **日出时间**:06:59
- **日落时间**:17:44

**当前实时天气(04:00发布):**
- **温度**:20℃
- **天气**:晴
- **风向风力**:东北风1级

**温馨提示:**
1. 深圳目前还没有真正入冬,气温相对舒适
2. 森林火险橙色预警信号生效中,请注意防火安全
3. 空气质量良好,适宜户外活动
4. 早晚温差较大,建议适当增减衣物

今天深圳的天气总体来说很不错,晴天到多云,气温适中,空气质量优良,是个适合外出的好天气!
根据查询结果,今天(12月22日)北京的天气情况如下:

**今日天气概况:**
- **天气状况**:多云转阴
- **气温范围**:具体温度信息在搜索结果中显示不一致,但从多个来源综合来看:
  - 白天最高气温可能在3-5℃左右
  - 夜间最低气温可能在-6℃左右
- **风向风力**:西南风微风
- **空气质量**:重度污染(搜索结果中显示"霾 空气 重度污染")

**详细天气信息:**
从搜索结果中可以看到不同日期的天气信息,但针对今天(12月22日)的具体信息显示:
- 天气:多云转阴
- 风向:西南风微风

**温馨提示:**
1. 北京目前空气质量较差,有重度污染和霾,建议减少户外活动,外出佩戴口罩
2. 气温较低,早晚温差大,需要注意防寒保暖
3. 天气干燥,注意用火用电安全
4. 由于有霾,能见度可能受影响,驾车出行需谨慎

与深圳相比,北京今天天气明显寒冷,且有空气污染问题。如果您在北京,建议做好防寒和防霾措施。



        第二种:postgresql的短期记忆,需按安装postgresql

        短期存储:线程级存储(会话级)
        短期存储使Agent能够跟踪多轮对话。要使用它,您必须:
        1.在创建代理时提供checkpointer。checkpointer可以实现代理状态的持久性。
        2.在运行代理时在配置中提供thread_id。thread_id是对话会话的唯一标识符。

from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_openai import ChatOpenAI
from langgraph.checkpoint.memory import InMemorySaver
from langgraph.checkpoint.postgres import PostgresSaver

from langgraph.prebuilt import create_react_agent
from agent.tools.tool_demo6 import runnable_tool
from agent.tools.tool_demo7 import search_tool

llm = ChatOpenAI(
    model='deepseek-chat',
    temperature=0.8,
    api_key='XXXX',
    base_url="https://api.deepseek.com/v1",
    extra_body={'chat_template_kwargs': {'enable_thinking': False}},
)

DB_URI='postgresql://postgres:850047011@localhost:5432/postgres'
with PostgresSaver.from_conn_string(DB_URI) as checkpointer:
    #checkpointer.setup()   如数据库是首次运行,需打开注释
    graph2 = create_react_agent(
        llm,
        tools=[search_tool],
        prompt ="你是一个智能助手,尽可能调用工具回答客户的问题",
        checkpointer=checkpointer
    )

    config={
        "configurable":{
            "thread_id":"1"
        }
    }



    resp1 = graph2.invoke(
        {"messages": [{"role": "user", "content": "今天深圳的天气怎么样?"}]},
        config=config
    )

    print(resp1['messages'][-1].content)

    resp2 = graph2.invoke(
        {"messages": [{"role": "user", "content": "北京呢?"}]},
        config=config
    )

    print(resp2['messages'][-1].content)

        运行今后,输出结果跟上面一样,但postgresql的Admin4软件中,可以看到记录

        还可以在程序中读出会话记录

#05
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_openai import ChatOpenAI
from langgraph.checkpoint.memory import InMemorySaver
from langgraph.checkpoint.postgres import PostgresSaver

from langgraph.prebuilt import create_react_agent
from agent.tools.tool_demo6 import runnable_tool
from agent.tools.tool_demo7 import search_tool

llm = ChatOpenAI(
    model='deepseek-chat',
    temperature=0.8,
    api_key='XXXX',
    base_url="https://api.deepseek.com/v1",
    extra_body={'chat_template_kwargs': {'enable_thinking': False}},
)

DB_URI='postgresql://postgres:850047011@localhost:5432/postgres'
with PostgresSaver.from_conn_string(DB_URI) as checkpointer:
    #checkpointer.setup()   如数据库是首次运行,需打开注释
    graph2 = create_react_agent(
        llm,
        tools=[search_tool],
        prompt ="你是一个智能助手,尽可能调用工具回答客户的问题",
        checkpointer=checkpointer
    )

    config={
        "configurable":{
            "thread_id":"1"
        }
    }


    res=list(graph2.get_state(config)) #从短期记忆中返回会话的上下文
    print(res)

        输出如下:

[{'messages': [HumanMessage(content='今天深圳的天气怎么样?', additional_kwargs={}, response_metadata={}, id='70c4dd79-15ce-45ae-b184-5327afe2de60'), AIMessage(content='我来帮您查询今天深圳的天气情况。', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 55, 'prompt_tokens': 351, 'total_tokens': 406, 'completion_tokens_details': None, 'prompt_tokens_details': {'audio_tokens': None, 'cached_tokens': 320}, 'prompt_cache_hit_tokens': 320, 'prompt_cache_miss_tokens': 31}, 'model_provider': 'openai', 'model_name': 'deepseek-chat', 'system_fingerprint': 'fp_eaab8d114b_prod0820_fp8_kvcache', 'id': '72205257-181b-430c-9b33-7bab41bf7189', 'finish_reason': 'tool_calls', 'logprobs': None}, id='lc_run--019b44ab-23d9-7831-b57b-ecff96f85e71-0', tool_calls=[{'name': 'search_tool', 'args': {'query': '深圳今天天气'}, 'id': 'call_00_ZuU7b2x8TC8PSkkU4HlneIbd', 'type': 'tool_call'}], usage_metadata={'input_tokens': 351, 'output_tokens': 55, 'total_tokens': 406, 'input_token_details': {'cache_read': 320}, 'output_token_details': {}}), ToolMessage(content='深圳天气具体预报 12月22日(周一)晴天到多云,气温16℃~24℃,沿海、高地和海区最大阵风7级左右; 12月23日~24日(周二至周三)多云,间中有分散小雨,其中周二最大阵风7级左右; 12月25日~26日(周四至周五)新一股冷空气影响,多云,气温下降,北风有所加大,早晚转冷; 12月27日~28日(周六至周日)晴天干燥,白天气温缓慢回升,早晚仍较冷。 来源\xa0深圳天气、广东天气、中国天气网等 \n\n未来一周冷空气活跃。 最近的深圳 可是一点都没有冬天的样子 虽然冬至节气已到 然而深圳平均入冬要到1月份 自1953年有完整气象记录以来 深圳仅有十年在12月入冬成功 去年更是直接“入冬失败” 想穿厚衣服还是再等等吧~ 接下来弱冷空气 马上到! 未来一周冷空气活跃 周一(22日)晴天到多云,气温16-24℃,沿海、高地和海区最大阵风7级左右; \n\n俗话说一九二九不出手,三九四九冰上走 一年二十四个节气里 冬至、小寒、大寒是最寒冷的三个节气 那么从进入冬至开始 就意味着冬天最寒冷的时段即将到来 不过今年冬至的开头并没有往年的寒冷 今天我市最低气温-9~-3℃ 最高气温5~8℃ 以多云转阴天天气为主, 有小雪 降雪整体较弱 未来三天天气预报 22日白天到夜间 全市多云转阴天,有小雪,最低气温-9~-3℃,最高气温5~8℃。 23日白天到夜间 \n\n当前: > 深圳天气预报今天 深圳今天天气详情 设为默认城市 热门城市 实时天气:04:00发布 20° 晴 今天:15-25° 晴 东北风 1级 湿度 76% 紫外线 无 气压 1013hPa 24小时天气预报 日出 06:59 日落 17:44 现在 东北风 1级 良 05:00 东北风 1级 优 06:00 东北风 1级 优 07:00 东北风 1级 优 08:00 东北风 1级 优 09:00 东北风 2级 优 10:00 东北风 2级 优 11:00 东北风 2级 优 12:00 东北风 2级 优 13:00 东北风 2级 优 14:00 东北风 2级 优 15:00 东北风 2级 优 16:00 东北风 2级 优 17:00 东南风 2级 优 18:00 东南风 2级 优 19:00 东南风 2级 优 20:00 东南风 2级 优 21:00 东南风 2级 优 22:00 东南风 2级 优 23:00 东南风 2级 优 12/22 东风 2级 优 01:00 东南风 2级 优 02:00 东风 2级 优 03:00 东风 2级 优 中国环境保护部: 发布 不用佩戴口罩 适宜运动 适宜外出 适宜开窗 主要污染物 击败全国45%的城市, PM2.5 什么是PM2.5? PM2.5是指大气中直径小于或等于2.5微米的颗粒物,也称为可入肺颗粒物。被吸入人体后会直接进入支气管,干扰肺部的气体交换,引发包括哮喘、支气管炎和心血管病等方面的疾病。 30 优 PM10 什么是PM10? PM10是直径小于等于10微米的可吸入颗粒物,能够进入上呼吸道,但部分可通过痰液等排出体外,另外也会被鼻腔内部的绒毛阻挡,对人体健康危害相对较小。 52 良 O3 1 优 NO2 69 优 SO2 6 优 CO 气温排行榜 1 三亚 海南 21~29 ° 2 昌江 海南 20~28 ° 3 保亭 海南 19~28 ° 4 乐东 海南 17~28 ° 5 三沙 海南 23~27 ° 6 陵水 海南 21~27 ° 7 东方 海南 19~27 ° 8 澄迈 海南 17~27 ° 9 五指山 海南 16~27 ° 10 茂名 广东 15~27 ° 1 伊春 黑龙江 -32~-17 ° 2 呼伦贝尔 内蒙古 -31~-20 ° 3 大兴安岭 黑龙江 -31~-18 ° 4 黑河 黑龙江 -30~', name='search_tool', id='324739dd-c8f2-425d-ac6d-197d71939027', tool_call_id='call_00_ZuU7b2x8TC8PSkkU4HlneIbd'), AIMessage(content='根据查询结果,今天(12月22日,周一)深圳的天气情况如下:\n\n**今日天气概况:**\n- **天气状况**:晴天到多云\n- **气温范围**:16℃ ~ 24℃\n- **风力情况**:沿海、高地和海区最大阵风7级左右\n- **空气质量**:优(PM2.5为30)\n\n**详细天气信息:**\n- 当前实时温度:20°C(晴)\n- 湿度:76%\n- 风向:东北风1级\n- 气压:1013hPa\n- 日出时间:06:59\n- 日落时间:17:44\n\n**温馨提示:**\n今天深圳天气总体不错,气温适中,白天最高温度24℃,早晚稍凉16℃。虽然今天是冬至节气,但深圳还没有真正入冬,气温相对温暖。沿海地区风力较大,需要注意防风。\n\n**未来几天天气趋势:**\n- 周二至周三(12月23-24日):多云,间中有分散小雨\n- 周四至周五(12月25-26日):新一股冷空气影响,气温下降,早晚转冷\n- 周末(12月27-28日):晴天干燥,白天气温缓慢回升,早晚仍较冷\n\n今天是个不错的天气,适合外出活动!', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 276, 'prompt_tokens': 1522, 'total_tokens': 1798, 'completion_tokens_details': None, 'prompt_tokens_details': {'audio_tokens': None, 'cached_tokens': 512}, 'prompt_cache_hit_tokens': 512, 'prompt_cache_miss_tokens': 1010}, 'model_provider': 'openai', 'model_name': 'deepseek-chat', 'system_fingerprint': 'fp_eaab8d114b_prod0820_fp8_kvcache', 'id': '59f41dd6-66b8-4959-8520-baf23a4c705d', 'finish_reason': 'stop', 'logprobs': None}, id='lc_run--019b44ab-3a29-7d22-91c3-cd2f7fa940c5-0', usage_metadata={'input_tokens': 1522, 'output_tokens': 276, 'total_tokens': 1798, 'input_token_details': {'cache_read': 512}, 'output_token_details': {}}), HumanMessage(content='北京呢?', additional_kwargs={}, response_metadata={}, id='19aeaa8f-72a4-4267-82d7-17cd12641c6b'), AIMessage(content='我来帮您查询今天北京的天气情况。', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 54, 'prompt_tokens': 1805, 'total_tokens': 1859, 'completion_tokens_details': None, 'prompt_tokens_details': {'audio_tokens': None, 'cached_tokens': 1792}, 'prompt_cache_hit_tokens': 1792, 'prompt_cache_miss_tokens': 13}, 'model_provider': 'openai', 'model_name': 'deepseek-chat', 'system_fingerprint': 'fp_eaab8d114b_prod0820_fp8_kvcache', 'id': '5703488e-21cb-42f3-833c-6f9e01c3244a', 'finish_reason': 'tool_calls', 'logprobs': None}, id='lc_run--019b44ab-6319-7bc1-8f85-95c6abff3b55-0', tool_calls=[{'name': 'search_tool', 'args': {'query': '北京今天天气'}, 'id': 'call_00_AUjhHILPjXmiKsX56a7Cjgq2', 'type': 'tool_call'}], usage_metadata={'input_tokens': 1805, 'output_tokens': 54, 'total_tokens': 1859, 'input_token_details': {'cache_read': 1792}, 'output_token_details': {}}), ToolMessage(content='天天空晴朗,今天一早云量开始增多,预计白天最高气温在3℃左右,与昨天相仿。随着阴云聚集,今天后半夜到明天早晨京城自西向东有雪花飘落,山区局地降雪较明显,有小到中雪,城区及平原大部分地区以小雪为主。降雪对降低森林火险等级、净化空气、增加土壤墒情较为有利,但此次降雪出现在夜间,道面温度低,将出现积雪和结冰,会对明天早高峰出行带来不便。雪后,明天白天北风较大,阵风有六级左右,山区局地可达七级以上。\n\n根据市气象台预报,本周京城的气温持续在低位徘徊,今天白天山区还有小雪,夜间西部、北部可能也有小雪,最高气温仅3℃左右,出行需要注意安全。市气象台表示,本周京城的天气仍是以晴到多云为主,气温持续在低位徘徊,白天气温在0℃至5℃之间,夜间气温-3℃至-8℃。需要注意的是,今天白天山区会出现小雪,夜间西部、北部地区还将有小雪天气,届时可能出现道路湿滑情况,请大家提前做好防范,出行注意交通安全。\n\n 24日白天到夜间 全市晴天间多云,最低气温-14~-6℃,最高气温0~6℃。 (全市平均气温 仅供参考 点击查看原图) 城市天气预报 (点击查看原图) 生活指数 穿衣指数 天气 冷,建议着棉服、羽绒服、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣、冬大衣或厚羽绒服。 紫外线指数 属弱紫外线辐射天气,无需特别防护。若长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。 洗车指数 \n\n中国天气网讯 今天(1月3日)北京晴天在线,最高气温5℃,最低气温-6℃。明后天,北京天气变化不大,周末冷空气影响明显,气温将出现下降。 2024年首个工作日,北京有雾来扰,早晨东南部等地能见度较低。白天晴朗天气在线,最高气温在3℃左右。夜间北风加大,扩散条件和能见度逐渐转好。 今天早晨,北京天气晴朗。(图/中国天气网王晓) 今天,北京天气晴好,风力不大,午间较为舒适,夜间气温低。北京市气象台预计,今天白天晴,北转南风二三级,最高气温5℃;夜间晴,南转北风一二级,最低气温-6℃。 明后天,北京气温起伏不大,最高气温4至6℃,最低气温-3至-5℃,多以晴天为主。周末冷空气影响明显,气温将出现下滑,像周日最高气温降至1℃,最低气温-9℃。 中国天气网提醒,北京近期早晚气温低,公众需注意防寒保暖。同时,天干物燥,需注意用火用电安全。 \n\n中国天气网讯 气温回升!今天(12月25日)北京最高气温将升至3℃,但早晚仍寒意十足,最低气温-7℃。同时,今起三天降水稀少,晴天在线。 上周北京遭遇了“冰冻周”,大多数时间气温处于冰点以下。降雪停歇,以晴到多云天气为主。 今天,北京气温将会有所上升,晴天持续。北京市气象台预计,今天白天晴间多云,北转南风二三级,最高气温3℃;夜间晴转多云,南转北风二三级,最低气温-7℃。 明后天,北京天气变化不大,晴到多云,最高气温3至4℃,早晚气温低,最低气温-8℃。 中国天气网提醒,未来三天北京以晴到多云为主,气温逐步回升,但早晚依然寒冷,公众出行注意防寒保暖。\n\n中国天气网讯 今天(3月6日),北京晴朗在线,最高气温将升至8℃。不过受冷空气影响,今夜至明晨,北京天空云量将有所增多,明天白天北风逐渐加大,阵风可达6级左右,公众需注意防范。昨天,北京大部出现降水,监测显示,0时至14时,全市平均降水量1.5毫米,最大降水量出现在门头沟妙峰山景区,为6.1毫米。在雨雪的“打压”下,昨天北京最高气温在4℃左右,阴冷感明显。今晨,北京天空放晴。(图/中国天气网王晓)北京市气象台预计,今天白天晴转多云,北风三级左右转南风一二级,最高气温8℃;夜间多云转阴,南转北风一二级,最低气温零下2℃。受冷空气影响,今天夜间至明天早晨,北京天空云量将有所增多,明天白天将转为晴朗,同时下午起北风逐渐增大至3~4级,阵风可达6级左右。气象专家提醒,北京今天晴朗回归,气温有所回升,中午时段较适宜进行户外活动和开窗通风。明天白天北京北风逐渐加大,公众外出需远离广告牌等临时搭建物,谨防高空坠物。\n\n中国天气网讯 今天(9月27日),北京晴天继续在线,早晨时段有轻雾,驾车出行需保持车距,谨慎慢行。今天北京最高气温28℃,但早晚时段凉意十足,最低气温16℃,穿衣可采用洋葱式穿搭法,多穿一件外套防着凉。 昨天,北京大部晴朗,空气比较干燥,16时左右,南郊观象台的气温升至28℃,体感微热。 今晨,北京能见度不佳。(图/中国天气网 王晓) 北京市气象台预计,今天北京晴间多云,早晨时段有轻雾,北转南风2、3级,最高气温28℃;夜间晴转多云,最低气温16℃。 明后天,北京仍将维持晴或多云的天气,后天最高气温将回升至30℃,在阳光加持下,午后体感炎热,但昼夜温差较大,最低气温仍不足20℃,早出晚归还需添衣防着凉。 气象部门提醒,今天早晨北京有轻雾,能见度不佳,驾车出行保持车距,注意交通安全。此外,今起三天,北京气温持续回升,但昼夜温差较大,早晚体感偏凉,早出晚归请及时增添衣物,谨防感冒。 \n\n中国天气网讯 今天(1月3日)北京晴天在线,最高气温5℃,最低气温-6℃。明后天,北京天气变化不大,周末冷空气影响明显,气温将出现下降。 2024年首个工作日,北京有雾来扰,早晨东南部等地能见度较低。白天晴朗天气在线,最高气温在3℃左右。夜间北风加大,扩散条件和能见度逐渐转好。 今天早晨,北京天气晴朗。(图/中国天气网王晓) 今天,北京天气晴好,风力不大,午间较为舒适,夜间气温低。北京市气象台预计,今天白天晴,北转南风二三级,最高气温5℃;夜间晴,南转北风一二级,最低气温-6℃。 明后天,北京气温起伏不大,最高气温4至6℃,最低气温-3至-5℃,多以晴天为主。周末冷空气影响明显,气温将出现下滑,像周日最高气温降至1℃,最低气温-9℃。 中国天气网提醒,北京近期早晚气温低,公众需注意防寒保暖。同时,天干物燥,需注意用火用电安全。 \n\n中国天气网讯 今天(10月19日),北京的天气格局乍一看跟昨天差别不大,依然是晴天“控场”,阳光在线的一天。但其实受补充冷空气影响,今天的气温较昨天整体会有一个小幅的下降,小伙伴们要注意做好保暖工作。 昨天,北京阳光在线,气温也较上周末有了较明显的提升。下午14点30分,南郊观象台的实时气温为16.1℃,城区大部分地区气温均在16~17℃左右,阳光加持,午后还是比较暖和的。 北京今晨蓝天和阳光在线。 今天,北京依然是晴天为主,但气温较昨天却会有小幅下降。根据北京市气象台今晨6时发布的预报,今天白天,北京晴间多云,北转南风2~3级,最高气温13℃;夜间晴间多云,南转北风1~2级,最低气温1℃。上班时气温6~10℃,出行注意保暖。 明天,北京的天气格局跟今天差不多,大部地区的最高气温在14℃左右,最低气温3℃。总的来说,本周北京都将以晴天为主,白天气温整体较稳定,夜间气温较低,小伙伴们早出晚归需注意防寒保暖。 \n\n央广网北京3月31日消息(记者 朱冠安)北京市气象台3月31日6时发布预报,今天白天晴间多云,北转南风二三间四级,最高气温23℃;夜间晴间多云,南转北风二级左右,最低气温8℃。今天适宜户外活动和通风,但昼夜温差大,出行请适时调整着装以防感冒。北京市森林火险等级高,天干物燥,请文明祭扫,谨防火灾。更多精彩资讯请在应用市场下载“央广网”客户端。欢迎提供新闻线索,24小时报料热线400-800-0088;消费者也可通过央广网“啄木鸟消费者投诉平台”线上投诉。版权声明:本文章版权归属央广网所有,未经授权不得转载。转载请联系:cnrbanquan@cnr.cn,不尊重原创的行为我们将追究责任。', name='search_tool', id='1aa9daf7-31ba-41a2-805a-aa6942fa7455', tool_call_id='call_00_AUjhHILPjXmiKsX56a7Cjgq2'), AIMessage(content='根据查询结果,今天(12月22日)北京的天气情况如下:\n\n**今日天气概况:**\n- **天气状况**:晴天到多云(白天晴,云量逐渐增多)\n- **气温范围**:最高气温约3℃左右,最低气温-6℃左右\n- **风力情况**:北转南风二三级\n\n**详细天气信息:**\n- 白天:晴,北转南风二三级,最高气温3℃\n- 夜间:晴,南转北风一二级,最低气温-6℃\n- 空气质量:相对较好(扩散条件逐渐转好)\n\n**重要天气提醒:**\n1. **降雪预报**:今天后半夜到明天早晨,北京自西向东将有雪花飘落:\n   - 山区局地:小到中雪\n   - 城区及平原大部分地区:小雪为主\n\n2. **出行影响**:\n   - 降雪出现在夜间,道面温度低,将出现积雪和结冰\n   - 对明天早高峰出行会带来不便\n   - 雪后明天白天北风较大,阵风有六级左右,山区局地可达七级以上\n\n3. **本周天气趋势**:\n   - 气温持续在低位徘徊\n   - 白天气温在0℃至5℃之间\n   - 夜间气温-3℃至-8℃\n   - 以晴到多云天气为主\n\n**温馨提示:**\n- 早晚气温很低,需要注意防寒保暖\n- 夜间降雪可能导致道路湿滑,明天出行需注意交通安全\n- 天干物燥,需注意用火用电安全\n\n与深圳温暖的天气相比,北京今天明显寒冷很多,最高温度只有3℃,而且夜间会有降雪。如果您在北京,一定要注意保暖,明天出行要特别小心道路结冰情况。', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 384, 'prompt_tokens': 3971, 'total_tokens': 4355, 'completion_tokens_details': None, 'prompt_tokens_details': {'audio_tokens': None, 'cached_tokens': 1856}, 'prompt_cache_hit_tokens': 1856, 'prompt_cache_miss_tokens': 2115}, 'model_provider': 'openai', 'model_name': 'deepseek-chat', 'system_fingerprint': 'fp_eaab8d114b_prod0820_fp8_kvcache', 'id': '7036bb00-58f4-4083-a8a5-8c6452d2127e', 'finish_reason': 'stop', 'logprobs': None}, id='lc_run--019b44ab-78e8-7580-99cc-d021b8c14d96-0', usage_metadata={'input_tokens': 3971, 'output_tokens': 384, 'total_tokens': 4355, 'input_token_details': {'cache_read': 1856}, 'output_token_details': {}})]}, (), {'configurable': {'thread_id': '1', 'checkpoint_ns': '', 'checkpoint_id': '1f0defc8-61a0-6e4a-8008-c586e48771bf'}}, {'step': 8, 'source': 'loop', 'parents': {}}, '2025-12-22T06:07:41.146477+00:00', {'configurable': {'thread_id': '1', 'checkpoint_ns': '', 'checkpoint_id': '1f0defc7-da3e-654c-8007-2e2c7863db97'}}, (), ()]

        第三种:长期存储:跨线程存储

        使用长期内存来跨会话存储用户特定或应用程序特定的数据。这对于聊天机器人等应用程序非常有用,您可能希望记住用户偏好或其他信息。
要使用长期内存,您需要:
        1.配置一个存储以在调用之间持久化数据。
        2.使用get_store函数从工具或提示中访问存储。

#05
from langchain_openai import ChatOpenAI
from langgraph.checkpoint.postgres import PostgresSaver
from langgraph.prebuilt import create_react_agent
from agent.tools.tool_demo6 import runnable_tool
from agent.tools.tool_demo7 import search_tool
from langgraph.store.postgres import PostgresStore

llm = ChatOpenAI(
    model='deepseek-chat',
    temperature=0.8,
    api_key='XXXX',
    base_url="https://api.deepseek.com/v1",
    extra_body={'chat_template_kwargs': {'enable_thinking': False}},
)

DB_URI='postgresql://postgres:850047011@localhost:5432/postgres'
with (
    PostgresSaver.from_conn_string(DB_URI) as checkpointer,
    PostgresStore.from_conn_string(DB_URI) as store,
    ):
    #checkpointer.setup()   如数据库是首次运行,需打开注释
    store.setup()
    graph2 = create_react_agent(
        llm,
        tools=[search_tool],
        prompt ="你是一个智能助手,尽可能调用工具回答客户的问题",
        checkpointer=checkpointer,
        store=store
    )

    config={
        "configurable":{
            "thread_id":"1"
        }
    }



    resp1 = graph2.invoke(
        {"messages": [{"role": "user", "content": "给我一个关于相声的报幕词?"}]},
        config=config
    )

    print(resp1['messages'][-1].content)

    resp2 = graph2.invoke(
        {"messages": [{"role": "user", "content": "再给我一个关于足球的?"}]},
        config=config
    )

    print(resp2['messages'][-1].content)

    #这是拿取长期存储数据
    #res=list(graph2.get_state_history(config))#从长期存储中获取上下文
    #print(res)



        同样的,软件中也可以看到记录

       

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐