Use this guide when you want DeepScientist to continue a quest through Telegram.
Telegram in the current open-source runtime uses the built-in polling path:
- no public webhook is required
- the main credential is the BotFather token
- direct messages can auto-bind to the latest active quest when enabled
DeepScientist currently supports Telegram through:
TelegramPollingServicefor inbound pollingGenericRelayChannelfor bindings, inbox/outbox, targets, and runtime statusTelegramConnectorBridgefor direct outbound sends through the Bot API
This means Telegram already fits the same quest-binding model as the other connector surfaces.
- Open BotFather.
- Run
/newbot. - Save the generated bot token.
- Open
Settings > Connectors > Telegram. - Enable Telegram.
- Keep
transport: polling. - Fill
bot_token. - Save the connector.
- Send one real private message such as
/startor/helpto the bot. - Return to DeepScientist and verify that the runtime has discovered the target conversation.
Route:
Use this page to:
- keep
transport: polling - fill
bot_token - inspect target discovery and runtime state after the first message
Main fields:
enabledtransportbot_namebot_tokencommand_prefixrequire_mention_in_groupsdm_policyallow_fromgroup_policygroup_allow_fromgroupsauto_bind_dm_to_active_quest
For the full field reference, see 01 Settings Reference.
Telegram conversations are normalized into quest-aware connector ids like:
telegram:direct:<chat_id>telegram:group:<chat_id>
DeepScientist binds quests to those normalized conversation ids, not to transient webhook state.
Important rules:
- one quest keeps local access plus at most one external connector target
- direct messages can auto-follow the latest active quest when auto-bind is enabled
- bindings can be changed later from the project settings page
By default:
- Telegram direct messages are allowed
- group behavior depends on
group_policy - if
require_mention_in_groupsistrue, the bot only reacts when explicitly mentioned or when a command is used
This is the recommended default for larger shared groups.
Telegram outbound delivery currently focuses on text-first quest updates:
- progress
- milestone summaries
- binding notices
- structured quest replies
The current bridge uses sendMessage through the Bot API.
Telegram may be hidden by the system connector gate. Confirm that:
config.connectors.system_enabled.telegramistrue
Check that:
bot_tokenis filled- or
bot_token_envpoints at a real environment variable
Check that:
- the bot token is correct
- the bot was started from Telegram at least once
transportis stillpolling- no stale public webhook is intercepting updates
Check:
group_policygroupsgroup_allow_fromrequire_mention_in_groups
Check that:
- the conversation is bound to the intended quest
- or
auto_bind_dm_to_active_questis enabled for direct-message pairing
