当前位置:首页>python>用 Python + LangChain 构建一个可调用 Skills 的React Agent ��

用 Python + LangChain 构建一个可调用 Skills 的React Agent ��

  • 2026-10-10 14:02:44
用 Python + LangChain 构建一个可调用 Skills 的React Agent ��

关注上方蓝字"风景邮递Yuan",选择"设为置顶or星标"

第一时间获取前沿AI技术&AI资讯

文章底部可留言🌸

当简单的问答已经不能满足需求时,一个能够自主规划、调用工具(Skills)、执行多步骤任务的智能体才是真正的生产力核心。

这一个“能干活”的 React Agent:

它不仅会思考,还会根据任务动态调用不同技能完成复杂目标 🧠⚙️

🧩 目标能力设计

我们要实现的智能体具备以下能力:

🌤️ 查询天气

📈 查询股票

🔎 搜索信息

🧮 执行计算

📝 总结复杂文本

🧠 自动选择合适的 Skill 执行任务

一句话:像人一样思考,像工具箱一样执行任务

⚙️ 技术架构

核心组成:

用户输入 → React Agent → 推理(Thought)

                       ↓

                    选择Skill(Action)

                       ↓

                    执行工具

                       ↓

                    观察结果(Observation)

                       ↓

                    循环直到完成

这就是经典的 ReAct(Reason + Act)模式 🔁

📦 环境准备

pip install langchain openai requests sympy

🛠️ 定义 Skills(核心)

Skill 本质上就是“智能体可以调用的能力模块”。

1️⃣ 天气查询 Skill 🌤️

import requests

def get_weather(city: str) -> str:

    return f"{city} 当前天气晴朗,温度 25°C"

2️⃣ 股票查询 Skill 📈

def get_stock(symbol: str) -> str:

    return f"{symbol} 当前价格为 178.2 USD"

3️⃣ 搜索 Skill 🔎

def search_web(query: str) -> str:

    return f"搜索结果:关于 {query} 的最新信息摘要"

4️⃣ 计算 Skill 🧮

from sympy import sympify

def calculator(expression: str) -> str:

    try:

        result = sympify(expression)

        return f"计算结果是 {result}"

    except:

        return "计算失败"

5️⃣ 文本总结 Skill 📝

def summarize(text: str) -> str:

    return text[:100] + "..."

🧠 构建 React Agent

from langchain.agents import Tool, initialize_agent

from langchain.chat_models import ChatOpenAI

tools = [

    Tool(name="Weather", func=get_weather, description="查询城市天气……"),

    Tool(name="Stock", func=get_stock, description="查询股票价格……"),

    Tool(name="Search", func=search_web, description="搜索互联网信息……"),

    Tool(name="Calculator", func=calculator, description="数学计算……"),

    Tool(name="Summarizer", func=summarize, description="总结文本……"),

]

llm = ChatOpenAI(

    model_name="gpt-4",

    temperature=0.1

)

agent = initialize_agent(

    tools,

    llm,

    agent="zero-shot-react-description",

    verbose=True

)

🔥 复杂任务演示

输入一个复杂指令:

query = """

帮我完成以下任务:

1. 查询北京天气

2. 查询AAPL股票价格

3. 计算 (AAPL价格 * 10) + 100

4. 总结一段关于人工智能的内容

"""

result = agent.run(query)

print(result)

🧠 Agent 内部行为(简化版)

Thought: 我需要先获取天气

Action: Weather("东京")

Observation: 晴天 25°C

Thought: 查询股票价格

Action: Stock("AAPL")

Observation: 178.2

Thought: 进行计算

Action: Calculator("(178.2 * 10) + 100")

Observation: 1882

Thought: 总结文本

Action: Summarizer("AI is transforming the world...")

Final Answer: ...

这一整套流程完全是模型自动决策的 🧠✨

🧬 加入 Memory

from langchain.memory import ConversationBufferMemory

memory = ConversationBufferMemory(memory_key="chat_history")

agent = initialize_agent(

    tools,

    llm,

    agent="zero-shot-react-description",

    memory=memory,

    verbose=True

)

现在它可以:

记住你刚刚查过的股票 📈

延续对话上下文 🧠

做更复杂的推理

🚀 进阶:动态 Skills 调度

可以进一步升级为:

🔌 插件式技能加载(动态注册 tools)

🧠 多 Agent 协作(Planner + Executor)

⚡ 并行任务执行(async tools)

📊 结合数据库(SQL Agent)

示意:

def register_tool(name, func, desc):

    return Tool(name=name, func=func, description=desc)

tools.append(register_tool("NewSkill", lambda x: x, "新技能"))

🎯 实战意义

这种架构可以直接用于:

🧑‍💻 AI 助手(自动完成复杂任务)

📊 数据分析 Agent

🏢 企业自动化流程

🧾 自动报告生成

🤖 智能客服系统

🧾 

通过 LangChain + 大模型 API,我们构建了一个:

会思考(Reason)🧠

会行动(Act)⚙️

会调用 Skills 🛠️

能处理复杂任务 🔥

的 React Agent。

它不再只是“回答问题”,而是真正开始“做事情”。

图片来源网络,侵权联系删除

分享一些AI基础知识 I 欢迎关注讨论!

最新文章

随机文章