Skip to content

Make agent automations tool-driven by default #1766

Description

@sentry-junior

Scheduled and event tasks still behave like delayed Slack turns: they get Delivery, and the final assistant message posts unless the model emits [[NO_REPLY]]. That works for reminders and digests. It is noisy for silent work such as “when CI fails, fix it.”

Current behavior

Gap

Users need unattended work that can act without publishing a channel update. Prompt-based silence is unreliable, and automatic assistant Delivery makes completion chatter the default.

User stories

Slack

  • Reminder: “Remind me Friday at 9am to submit expenses.” Posts one reminder message at the right time. No model work required for fixed text.
  • Recurring post: “Post standup time every weekday at 10am in #eng.” Posts the fixed text on cadence.
  • Computed digest: “Every Friday, summarize open launch blockers in #launch.” Agent gathers live state, then posts one tool-authored digest.
  • Silent maintenance: “Every night, archive stale threads in this channel.” Runs tools only. No completion message in the channel.
  • New root message trigger: “Whenever someone posts a new top-level message in #support, triage it and label the thread.” Triggers only on new root messages in a channel, not thread replies; effects run via tools, with Delivery only if the user asked for one.
  • Tell-me-when (temporary): “Tell me when this deploy finishes.” Temporary watch/notify in the current conversation, not a durable silent automation unless the user asks for durable behavior.
  • Failure handling: If a silent automation fails repeatedly or needs auth, notify the creator privately. Do not dump an assistant explanation into the destination channel.

GitHub

  • Fix failed checks: “Whenever checks fail on this PR, fix them.” Agent uses repo tools. No Slack completion message unless the user asked for one.
  • Review triage: “When review requests changes on getsentry/junior PRs, summarize the feedback and open a follow-up checklist.” Effects are GitHub artifacts and optional explicit notify; not automatic assistant chatter.
  • Label/route issues: “When a new issue is opened with ‘customer’, label it and assign the support rotation.” Tool effects only.
  • Release notify: “When a release is published, post the notes in #releases.” Agent or fixed message posts one explicit Slack message.
  • Watch vs automation: “Tell me when this PR is approved” stays a temporary watch. “Whenever a release is published, update the changelog PR” is a durable event automation.

Proposal (from product review)

Keep this small. Do not build a workflow graph.

  1. Default: agent automations run with Location for tools, without assistant Delivery.
  2. Visible output: only explicit tools (for example a Slack post tool with idempotent retries).
  3. Simple remind/post fixed text: deterministic message action, no model loop.
  4. Computed “post/summarize” jobs: agent action plus a required message effect when communication is the point.
  5. Silent action jobs: agent action, zero destination messages on success.
  6. Failures/auth: runtime-owned private owner notify; not model-authored channel spam.
  7. Product framing: prefer Automation over overloaded Task language; align with Overhaul Junior automations #1717 naming, but ship behavior first if rename is larger.
  8. Legacy: existing tasks that rely on final-answer delivery keep current behavior until edited/converted.

Out of scope for the first cut: DAG/node editor, second agent runtime, prompt-only silent flags, or a generic publish-anywhere core tool.

Related

via David Cramer.

--

View Junior Session [Sentry]

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions