from praisonaiagents import Agent, Task, Agents, Session
from praisonaiagents import read_csv, get_summary, filter_data
from pydantic import BaseModel
# Structured output schema
class DataInsights(BaseModel):
dataset: str
row_count: int
key_metrics: list[str]
trends: list[str]
recommendations: list[str]
# Create session for analysis tracking
session = Session(session_id="analysis-001", user_id="user-1")
# Agent with memory and tools
agent = Agent(
name="DataAnalyst",
instructions="Analyze data and return structured insights.",
tools=[read_csv, get_summary, filter_data],
memory=True
)
# Task with structured output
task = Task(
description="Read sales_data.csv and provide structured insights",
expected_output="Structured data analysis",
agent=agent,
output_pydantic=DataInsights
)
# Run with SQLite persistence
agents = Agents(
agents=[agent],
tasks=[task],
memory=True
)
result = agents.start()
print(result)
# Resume later
session2 = Session(session_id="analysis-001", user_id="user-1")
history = session2.search_memory("sales")