from agno.agent import Agent
from agno.models.anthropic import Claude
from agno.models.openai import OpenAIChat
from agno.team.team import Team
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.reasoning import ReasoningTools
from agno.tools.yfinance import YFinanceTools
web_agent = Agent(
name="Web Search Agent",
role="处理网络搜索请求和一般研究",
model=OpenAIChat(id="gpt-4.1"),
tools=[DuckDuckGoTools()],
instructions="始终包含来源",
add_datetime_to_instructions=True,
)
finance_agent = Agent(
name="Finance Agent",
role="处理财务数据请求和市场分析",
model=OpenAIChat(id="gpt-4.1"),
tools=[YFinanceTools(stock_price=True, stock_fundamentals=True,analyst_recommendations=True, company_info=True)],
instructions=[
"使用表格显示股价、基本面(市盈率、市值)和建议。",
"清楚注明公司名称和股票代码。",
"专注于提供可行的财务见解。",
],
add_datetime_to_instructions=True,
)
reasoning_finance_team = Team(
name="Reasoning Finance Team",
mode="coordinate",
model=Claude(id="claude-sonnet-4-20250514"),
members=[web_agent, finance_agent],
tools=[ReasoningTools(add_instructions=True)],
instructions=[
"协作提供全面的财务和投资见解。",
"考虑基本面分析和市场情绪。",
"使用表格和图表清晰专业地展示数据。",
"以结构化、易于理解的格式呈现调查结果。",
"仅输出最终的综合分析,不输出单独的代理响应。",
],
markdown=True,
show_members_responses=True,
enable_agentic_context=True,
add_datetime_to_instructions=True,
success_criteria="该团队提供了完整的财务分析,其中包含数据、可视化、风险评估和可通过量化分析及市场研究支持的可行投资建议。",
)
if __name__ == "__main__":
reasoning_finance_team.print_response("""比较科技行业巨头 (AAPL, GOOGL, MSFT) 的表现:
1. 获取所有三家公司的财务数据
2. 分析影响科技行业的近期新闻
3. 计算比较指标和相关性
4. 推荐投资组合配置权重""",
stream=True,
show_full_reasoning=True,
stream_intermediate_steps=True,
)