Skip to main content
Every entrypoint uses an @on decorator to bind an event trigger plus one of:
  • @task — single-turn automations (one-shot per trigger; can still be long-running). Use this by default.
  • @agent — multi-turn agents that continue a conversation with the user across Slack, Linear, or the dashboard.
@task(name="my-automation")
@on("schedule.daily")
def task(event):
    pass
@agent(name="my-agent")
@on("github.pull_request_comment")
def agent(event):
    pass
The order of the decorators can be interchanged.
See @task, @agent, and @on for the full argument list.