from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.openai import OpenAIResponses
from agno.tools import tool
from agno.workflow.step import Step
from agno.workflow.workflow import Workflow
@tool(requires_confirmation=True)
def send_alert(city: str, message: str) -> str:
return f"Alert sent for {city}: {message}"
alert_agent = Agent(
name="AlertAgent",
model=OpenAIResponses(id="gpt-5.4"),
tools=[send_alert],
db=SqliteDb(db_file="workflow.db"),
)
workflow = Workflow(
name="DualConfirmation",
db=SqliteDb(db_file="workflow.db"),
steps=[
Step(
name="send_alert",
agent=alert_agent,
requires_confirmation=True, # step-level gate
confirmation_message="Proceed with sending the alert?",
),
],
)