init
This commit is contained in:
82
deep_research/agent_deep_research/main.py
Normal file
82
deep_research/agent_deep_research/main.py
Normal file
@@ -0,0 +1,82 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""The main entry point of the Deep Research agent example."""
|
||||
import asyncio
|
||||
import os
|
||||
|
||||
from agentscope import logger
|
||||
from agentscope.formatter import DashScopeChatFormatter
|
||||
from agentscope.mcp import StdIOStatefulClient
|
||||
from agentscope.memory import InMemoryMemory
|
||||
from agentscope.message import Msg
|
||||
from agentscope.model import DashScopeChatModel
|
||||
|
||||
from .deep_research_agent import DeepResearchAgent
|
||||
|
||||
|
||||
async def main(user_query: str) -> None:
|
||||
"""The main entry point for the Deep Research agent example."""
|
||||
logger.setLevel("DEBUG")
|
||||
|
||||
tavily_search_client = StdIOStatefulClient(
|
||||
name="tavily_mcp",
|
||||
command="npx",
|
||||
args=["-y", "tavily-mcp@latest"],
|
||||
env={"TAVILY_API_KEY": os.getenv("TAVILY_API_KEY", "")},
|
||||
)
|
||||
|
||||
default_working_dir = os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
"deepresearch_agent_demo_env",
|
||||
)
|
||||
agent_working_dir = os.getenv(
|
||||
"AGENT_OPERATION_DIR",
|
||||
default_working_dir,
|
||||
)
|
||||
os.makedirs(agent_working_dir, exist_ok=True)
|
||||
|
||||
try:
|
||||
await tavily_search_client.connect()
|
||||
agent = DeepResearchAgent(
|
||||
name="Friday",
|
||||
sys_prompt="You are a helpful assistant named Friday.",
|
||||
model=DashScopeChatModel(
|
||||
api_key=os.environ.get("DASHSCOPE_API_KEY"),
|
||||
model_name="qwen-max",
|
||||
enable_thinking=False,
|
||||
stream=True,
|
||||
),
|
||||
formatter=DashScopeChatFormatter(),
|
||||
memory=InMemoryMemory(),
|
||||
search_mcp_client=tavily_search_client,
|
||||
tmp_file_storage_dir=agent_working_dir,
|
||||
)
|
||||
user_name = "Bob"
|
||||
msg = Msg(
|
||||
user_name,
|
||||
content=user_query,
|
||||
role="user",
|
||||
)
|
||||
result = await agent(msg)
|
||||
logger.info(result)
|
||||
|
||||
except Exception as err:
|
||||
logger.exception(err)
|
||||
finally:
|
||||
await tavily_search_client.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
query = (
|
||||
"If Eliud Kipchoge could maintain his record-making "
|
||||
"marathon pace indefinitely, how many thousand hours "
|
||||
"would it take him to run the distance between the "
|
||||
"Earth and the Moon its closest approach? Please use "
|
||||
"the minimum perigee value on the Wikipedia page for "
|
||||
"the Moon when carrying out your calculation. Round "
|
||||
"your result to the nearest 1000 hours and do not use "
|
||||
"any comma separators if necessary."
|
||||
)
|
||||
try:
|
||||
asyncio.run(main(query))
|
||||
except Exception as e:
|
||||
logger.exception(e)
|
||||
Reference in New Issue
Block a user