cookbook/os/interfaces/slack/reasoning_agent.py
from agno.agent import Agent
from agno.db.sqlite.sqlite import SqliteDb
from agno.models.anthropic.claude import Claude
from agno.os.app import AgentOS
from agno.os.interfaces.slack.slack import Slack
from agno.tools.thinking import ThinkingTools
from agno.tools.yfinance import YFinanceTools
agent_db = SqliteDb(session_table="agent_sessions", db_file="tmp/persistent_memory.db")
reasoning_finance_agent = Agent(
name="Reasoning Finance Agent",
model=Claude(id="claude-3-7-sonnet-latest"),
db=agent_db,
tools=[
ThinkingTools(add_instructions=True),
YFinanceTools(
stock_price=True,
analyst_recommendations=True,
company_info=True,
company_news=True,
),
],
instructions="Use tables to display data. When you use thinking tools, keep the thinking brief.",
add_datetime_to_context=True,
markdown=True,
)
agent_os = AgentOS(
agents=[reasoning_finance_agent],
interfaces=[Slack(agent=reasoning_finance_agent)],
)
app = agent_os.get_app()
if __name__ == "__main__":
agent_os.serve(app="reasoning_agent:app", reload=True)