2025/12/29 16:43:13
网站建设
项目流程
网站开发百度云,如何网上免费做推广,ppt模板免费整套下载,网站开发技术 下载上下文包括消息列表之外的任何数据#xff0c;这些数据可以影响代理行为或工具执行。1.运行时传入的信息#xff0c;如 user_id 或 API 凭据。2.多步推理过程中更新的内部状态。3.来自先前交互的持久记忆或事实。LangGraph 提供了三种提供上下文的主要方式#xff1a;类型描…上下文包括消息列表之外的任何数据这些数据可以影响代理行为或工具执行。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_nameconfig[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_nameconfig[configurable].get(user_name,zs) print(user_name) system_messagef你是一个智能助手当前的用户名字是{user_name} return [{role:system,content:system_message}] state[messages] llm ChatOpenAI( modeldeepseek-chat, temperature0.8, api_keyXXXXX, base_urlhttps://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], promptprompt )在test脚本中运行后结果如下#测试脚本 from langgraph_sdk import get_client import asyncio #调用agent发布的API接口 client get_client(urlhttp://localhost:2024) from langgraph_sdk import get_sync_client client get_sync_client(urlhttp://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_modemessages-tuple, ): if isinstance(chunk.data,list) and type in chunk.data[0] and chunk.data[0][type] AIMessageChunk: print(chunk.data[0][content],end)