Skip to content

[Feature]: Agents should know what channel they're in + be able to message any channel/user via tooling #264

@M2noa

Description

@M2noa

Problem

Right now there's no way to:

  1. Tell heartbeat which channel to send its messages to — it just picks one with no native config option
  2. Give the LLM context about what channel/surface it's currently operating in (Telegram chat? which one? group? DM? heartbeat?)
  3. Let agents proactively message any channel or user via a tool — so cron jobs, heartbeat, and autonomous agents are stuck and can't reach out to specific users or chats

This is a real limitation. If i set up a cron job that should message me on Telegram, or heartbeat fires and needs to notify a specific group chat, there's currently no clean way to do that. The agent has no channel awareness and no outbound messaging primitive.

Related: #195 (agent can't set channel targets for crons it's setting up) — but this is the broader version of that problem.

Proposed Solution

  • Heartbeat channel config — let users pick which channel/surface heartbeat delivers to in settings
  • Channel context in system prompt — inject the current channel/surface info so the LLM knows where it's talking (e.g. surface=telegram | chat_id=... | type=private)
  • Outbound messaging tool — a send_message tool (or similar) that lets agents push messages to any configured channel or user, not just reply in the current thread

This would unlock:

  • Cron jobs that can actually notify you somewhere useful
  • Heartbeat that goes to the right place
  • Agents that can reach out proactively (alerts, summaries, reminders delivered where you want them)

Why it matters

Agents are supposed to be autonomous. But without channel awareness and outbound messaging, they're essentially locked in the current session. Heartbeat in particular feels half-baked without this — it runs but you can't control where it talks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions