简单react agent(没有抽象成基类、子类,直接用)--- 非workflow版 ------demo1

代码

可直接运行

复制代码
"""
简单Agent示例 - 继承StandardReActWorkflow

演示如何快速创建一个标准ReAct模式的Agent,
只需要定义工具函数即可。
"""

from langchain_core.tools import tool
from typing import List, Dict
from langchain_core.tools import BaseTool

from base import StandardReActWorkflow, LLMConfig


class SimpleCalculatorAgent(StandardReActWorkflow):
    """
    简单计算器Agent
    
    功能:
    - 加法运算
    - 乘法运算
    - 天气查询
    - 电影信息查询
    """
    
    def __init__(self, llm_config: LLMConfig = None):
        """初始化简单计算器Agent"""
        super().__init__(llm_config)
    
    @tool
    def add(self, a: int, b: int) -> int:
        """加法运算"""
        result = a + b
        print(f"执行加法: {a} + {b} = {result}")
        return result
    
    @tool
    def multiply(self, a: int, b: int) -> int:
        """乘法运算"""
        result = a * b
        print(f"执行乘法: {a} * {b} = {result}")
        return result
    
    @tool
    def query_weather(self, location: str) -> str:
        """查询天气"""
        print(f"------------------------------------------调用 query_weather ------------------------------------------------")
        result = f"{location}: 天气是暴风雨"
        return result
    
    @tool
    def query_film_info(self, film: str) -> str:
        """查询电影票房等信息"""
        print(f"------------------------------------------调用 query_film_info ------------------------------------------------")
        result = f"{film}: 电影票房是80亿"
        return result
    
    def get_tools(self) -> List[BaseTool]:
        """返回工具列表"""
        return [self.add, self.multiply, self.query_weather, self.query_film_info]
    
    def get_tools_dict(self) -> Dict[str, BaseTool]:
        """返回工具名称到工具对象的映射"""
        return {
            "add": self.add,
            "multiply": self.multiply,
            "query_weather": self.query_weather,
            "query_film_info": self.query_film_info
        }


def main():
    """主函数 - 演示Agent使用"""
    print("=== 简单计算器Agent示例 ===\n")
    
    # 创建Agent实例(使用默认配置)
    agent = SimpleCalculatorAgent()
    
    # 测试用例1:数学计算
    print("测试1: 数学计算")
    result1 = agent.run("请计算 3 * 12 的结果")
    print(f"结果: {result1}\n")
    
    # 测试用例2:复合查询(天气 + 电影信息)
    print("测试2: 复合查询")
    result2 = agent.run("上海天气如何,以及电影《哪吒》的票房是多少")
    print(f"结果: {result2}\n")
    
    # 测试用例3:多步计算
    print("测试3: 多步计算")
    result3 = agent.run("先计算 5 + 3,然后把结果乘以 4")
    print(f"结果: {result3}\n")


if __name__ == "__main__":
    main()
相关推荐
醒醒1112 分钟前
从微信小程序到全端:一个安全扫描器的演进之路(v0.5.0 → v0.6.0)
前端·安全
seconp3 分钟前
计算机毕设做什么项目?整理了 80 个 Web、小程序、AI 与数据方向
前端·小程序·课程设计
代码小学僧17 分钟前
如何低成本部署网站?Vercel 和 Cloudflare 怎么选?
前端·后端·serverless
Csvn18 分钟前
加载性能
前端
行者全栈架构师23 分钟前
【鸿蒙心迹】让应用“悬浮“起来——闪控球(floatingBall)从接入到实战全链路(HarmonyOS 7.x)
前端·算法·架构
结局无敌25 分钟前
React Native for OpenHarmony 实战:三方库 react-native-paper 的鸿蒙化适配指南
javascript·人工智能·深度学习·react native·react.js·ecmascript·harmonyos
用户63533002547929 分钟前
Day 6|ES6+ 语法:把现代 JS 写顺手,从解构到 map / filter / reduce
前端
铁皮饭盒40 分钟前
CPU就行, 老照片变清晰, 本地部署582mb腾讯的模型, 本地部署, 过节了给长辈们变个小魔术
前端·javascript·后端
其实防守也摸鱼43 分钟前
Linux文本处理命令理论学习
linux·服务器·前端·数据库·sql·学习·安全
结局无敌1 小时前
React Native for OpenHarmony 实战:三方库 react-native-progress-steps 的鸿蒙化适配指南
javascript·人工智能·深度学习·react native·react.js·harmonyos