"""Simple ReAct operation module. This module provides a simple ReAct (Reasoning and Acting) agent implementation that extends the base ReactSearchOp for answering user queries through iterative reasoning and search actions. """ import asyncio from flowllm.core.context import C, FlowContext from flowllm.gallery.agent import ReactSearchOp @C.register_op() class SimpleReactOp(ReactSearchOp): """A simple ReAct (Reasoning and Acting) agent operation. This operation extends ReactSearchOp to provide a straightforward implementation of a ReAct agent that answers user queries by reasoning about the problem and taking search actions iteratively until a final answer is reached. The agent inherits all functionality from ReactSearchOp, including: - Iterative reasoning and action cycles - Search tool integration - Maximum step limits for preventing infinite loops """ def __init__( self, llm: str = "default", max_steps: int = 20, tool_call_interval: float = 1.0, add_think_tool: bool = False, **kwargs, ): """Initialize the agent runtime configuration.""" super().__init__( llm=llm, max_steps=max_steps, tool_call_interval=tool_call_interval, add_think_tool=add_think_tool, **kwargs, ) async def main(): """Main function to demonstrate SimpleReactOp usage. This function initializes the FlowLLM context with ReMe configuration, creates a SimpleReactOp instance, and processes a sample query about stock prices for Maotai and Wuliangye. Example: Run this module directly to test the SimpleReactOp: ```bash python -m reme_ai.agent.react.simple_react_op ``` """ from reme_ai.config.config_parser import ConfigParser C.set_service_config(parser=ConfigParser, config_name="config=default").init_by_service_config() context = FlowContext(query="茅台和五粮现在股价多少?") op = SimpleReactOp() await op.async_call(context=context) print(context.response.answer) if __name__ == "__main__": asyncio.run(main())