Problem
Right now there's no way to:
- Tell heartbeat which channel to send its messages to — it just picks one with no native config option
- Give the LLM context about what channel/surface it's currently operating in (Telegram chat? which one? group? DM? heartbeat?)
- 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.
Problem
Right now there's no way to:
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
surface=telegram | chat_id=... | type=private)send_messagetool (or similar) that lets agents push messages to any configured channel or user, not just reply in the current threadThis would unlock:
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.