第一个agent

from langchain_openai import ChatOpenAI
from langchain_community.agent_toolkits.load_tools import load_tools
from langchain.agents import AgentExecutor, create_react_agent
from langchain_core.prompts import PromptTemplate


# 1. 创建 LLM(推荐从环境变量读取 API Key,避免写死在代码里)
# 请在运行前在系统环境变量或 .env 中配置 OPENAI_API_KEY / OPENAI_BASE_URL
llm = ChatOpenAI(
    model="gpt-4o-mini",  # 或者你的代理支持的其他模型名称
    base_url="https://api.openai-proxy.org/v1",
    api_key="sk-d21LjbL0djjUVb",
)

# 2. 加载工具:使用 DuckDuckGo 搜索工具替代 llm-math
# 需要安装 duckduckgo-search 包: pip install duckduckgo-search
tools = load_tools(["ddg-search"], llm=llm)

# 3. 定义一个标准的 ReAct Prompt 模板(中文版)
# 这个模板遵循标准的 ReAct 格式,包含了必要的组件
template = """尽可能地回答以下问题。你可以使用以下工具:

{tools}

请使用以下格式:

问题: 你需要回答的输入问题
思考: 你应该总是思考该做什么
行动: 要采取的行动,应该是 [{tool_names}] 中的一个工具
行动输入: 行动的输入
观察: 行动的结果
... (这个 思考/行动/行动输入/观察 的过程可以重复N次)
思考: 我现在知道最终答案了
最终答案: 对原始输入问题的最终答案

开始!

问题: {input}
思考:{agent_scratchpad}"""

prompt = PromptTemplate.from_template(template)

# 4. 用新的 API 创建 ReAct Agent
agent = create_react_agent(
    llm=llm,
    tools=tools,
    prompt=prompt,
)

# 5. 用 AgentExecutor 包装成可执行的代理
agent_executor = AgentExecutor(
    agent=agent,
    tools=tools,
    verbose=True,  # 是否打印中间推理/调用过程
    handle_parsing_errors=True,  # 添加处理解析错误的参数
    max_iterations=10  # 限制最大迭代次数
)

# 6. 调用代理:使用需要搜索的问题
question = "帮我分析最新的特斯拉股票表现如何?如果可以的话,请给出一些数据支持。"
try:
    result = agent_executor.invoke({"input": question})
    print("-" * 120)
    print("最终答案:", result["output"])
except Exception as e:
    print(f"执行过程中出现错误: {e}")

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值