[AI工作流]27. LangChain——Agent智能体介绍

[AI工作流]27. LangChain——Agent智能体介绍In 1 from langchain agents import create tool calling agent AgentExecuto from langchain openai import ChatOpenAI from langchain core tools import tool from langchain core prompts import

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



  1. # In[1]

  2. from langchain.agents import create_tool_calling_agent, AgentExecutor

  3. from langchain_openai import ChatOpenAI

  4. from langchain_core.tools import tool

  5. from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder





  6. # ================= 1. 定义工具 =================

  7. @tool(description="获取股价,传入股票名称,返回字符串信息")

  8. def get_price(name: str) -> str:

  9.     return f"股票{name}的价格是20元"



  10. @tool(description="获取股票信息,传入股票名称,返回字符串信息")

  11. def get_info(name: str) -> str:

  12.     return f"股票{name},是一家A股上市公司,专注于IT职业教育。"



  13. # ================= 2. 初始化模型 =================

  14. llm = ChatOpenAI(

  15.     model="qwen3-max",

  16.     temperature=0,

  17.     openai_api_base="https://dashscope.aliyuncs.com/compatible-mode/v1"

  18. )



  19. # ================= 3. 标准 Agent 流程 =================

  20. prompt = ChatPromptTemplate.from_messages([

  21.     ("system", "你是一个智能助手,可以回答股票相关问题,请告知我思考过程。"),

  22.     ("human", "{input}"),

  23.     MessagesPlaceholder(variable_name="agent_scratchpad"),

  24. ])



  25. agent = create_tool_calling_agent(llm=llm, tools=[get_price, get_info], prompt=prompt)

  26. agent_executor = AgentExecutor(agent=agent, tools=[get_price, get_info], verbose=False)



  27. # ================= 4. 【核心修改】流式输出 =================

  28. print("— 开始流式对话 — ")



  29. for chunk in agent_executor.stream({"input": "传智教育股价多少,并介绍一下"}):

  30.     # 1. 当 Agent 决定要调用工具时

  31.     if "actions" in chunk:

  32.         for action in chunk["actions"]:

  33.             print(f"&#; 我需要查询信息,正在调用工具:【{action.tool}】")

  34.             print(f"   &#; 传入参数:{action.tool_input} ")



  35.     # 2. 当工具返回结果时

  36.     elif "steps" in chunk:

  37.         for step in chunk["steps"]:

  38.             print(f"   &#; 工具查询完毕,得到结果:{step.observation} ")



  39.     # 3. 当 Agent 输出最终回答时

  40.     elif "output" in chunk:

  41.         print(f"✅ 最终回答:{chunk[‘output’]}")

小讯
上一篇 2026-03-15 11:55
下一篇 2026-03-15 11:53

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/233832.html