Skip to content

No first-class automation blueprints or consent-first suggestions for proactive scheduled delivery #2159

Description

@MervinPraison

Summary

Setting up a recurring, proactively-delivered automation ("every weekday at 08:00, DM me a morning brief on Telegram") currently requires hand-assembling a prompt, a schedule expression and a delivery target. There is no catalogue of ready-made, parameterised automations, and nothing proposes useful automations to the user. A world-class, non-developer-friendly gateway should let a user stand up a proactive automation in one step, and should suggest relevant automations with explicit consent rather than requiring bespoke wiring.

Current behaviour

The scheduling primitives exist but stop at "run this prompt on this schedule":

# src/praisonai/praisonai/scheduler/agent_scheduler.py
class AgentScheduler(_BaseAgentScheduler):
    def start(self, schedule_expr, max_retries=3, run_immediately=False) -> bool: ...
    @classmethod
    def from_yaml(cls, yaml_path, overrides) -> "AgentScheduler": ...
# CLI: src/praisonai/praisonai/cli/commands/schedule.py
praisonai schedule add NAME -s "cron:0 9 * * *"

There is no parameterised automation catalogue and no consent-first suggestion engine — confirmed by search: no blueprint/suggestion concept exists under scheduler/, jobs/ or cron. (This is distinct from delivery-target routing, which is tracked separately; this gap is about the authoring and discovery UX of proactive automations.)

Desired behaviour

  • A blueprint catalogue: named, parameterised automation templates ("morning-brief", "important-mail", "weekly-review") with fillable slots (time, weekdays, focus areas) and a sensible default delivery target, rendered identically across CLI, YAML and Python (and a dashboard).
  • A consent-first suggestion mechanism: the framework may propose an automation (e.g. after a recurring manual ask), capped and de-duplicated, that only becomes a real job when the user accepts. Nothing is ever auto-created.

Layer placement

  • Primary layer: wrapper — schedules, jobs, CLI and dashboard already live here (scheduler/, jobs/, cli/commands/schedule.py).
  • Why not core: core stays protocol-only; a catalogue of concrete automations and their rendering is a heavy wrapper concern.
  • Why not tools: a blueprint is not an agent-callable integration; it is operator/user-facing configuration.
  • Why not plugins: it is first-class scheduling UX, not a lifecycle guardrail (though individual blueprints could later be contributed via plugins/skills).
  • Secondary touch (optional): core — a tiny Blueprint dataclass/protocol so wrapper, dashboard and any plugin describe automations uniformly.
  • 3-way surface (CLI + YAML + Python): yes — praisonai schedule blueprint morning-brief --hour 8; an automations: block in YAML; AgentScheduler.from_blueprint("morning-brief", hour=8).

Proposed approach

  • Extension point: a BlueprintCatalogue (wrapper) plus a consent-first SuggestionStore (atomic JSON, max-pending cap, dedup/latch).
  • Minimal API sketch:
job = AgentScheduler.from_blueprint(
    "morning-brief",
    slots={"hour": 8, "weekdays": "mon-fri"},
    deliver="telegram",        # default delivery target
)
job.start()

Resolution sketch

# Before (today): hand-wire prompt + schedule + delivery separately
praisonai schedule add brief -s "cron:0 8 * * 1-5"   # then craft the prompt & wire delivery by hand

# After (proposed): one parameterised step
praisonai schedule blueprint morning-brief --hour 8 --weekdays mon-fri --deliver telegram

# and consent-first:
#   "Suggestion: create an 'important-mail' check every 30 min? [accept] [dismiss]"

Severity

Medium — the raw scheduling primitives exist, so this is an ease-of-use and adoption gap rather than a missing capability; but for a non-developer-friendly, world-class gateway it materially lowers the barrier to proactive automation.

Validation

Read scheduler/agent_scheduler.py, scheduler/async_agent_scheduler.py, scheduler/shared.py (ScheduleParser), jobs/ and cli/commands/schedule.py. Confirmed via search that no blueprint/suggestion/consent-proposal concept exists under scheduler/, jobs/ or cron. Existing from_yaml/from_recipe cover config loading but not parameterised automation templates or consent-first suggestions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    claudeAuto-trigger Claude analysisenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions