Summary
When asking the Hermes agent to fetch a message from a Telegram group it is already a member of, the agent fails with HTTP 403 and falls back to browser_navigate, which also cannot access t.me/c/... private group links. As a result, the agent has no way to read historical messages from groups it belongs to.
Repro
- Add the Hermes bot (e.g.
howard_BOT) to a private Telegram group/supergroup.
- In a DM with the bot, send a private message link from that group, e.g.:
can you got this info? https://t.me/c/3712897238/712/1031
- Observe the agent response.
Actual behavior
The agent returns:
⚠️ Non-retryable error (HTTP 403) — trying fallback...
🔄 Primary model failed — switching to fallback: gpt-5.3-codex via openai-codex
🌐 browser_navigate: \"https://t.me/c/3712897238/712/1031\"
- The primary fetch path returns 403 instead of using the bot's existing membership in the group.
- The fallback is
browser_navigate, but t.me/c/<internal_id>/... links are only resolvable inside an authenticated Telegram client, so the browser fallback cannot retrieve the message either.
- The agent never reaches the message content and cannot answer the question.
Screenshot of the failure:
(attached in the issue thread)
Expected behavior
When the bot is already a member of the target chat, the agent should be able to read historical messages from that chat. Specifically:
- Recognize
https://t.me/c/<internal_chat_id>/<thread_id>/<message_id> as a Telegram private group/supergroup link.
- Resolve the internal chat id to a real
chat_id the bot has access to.
- Fetch the message (and ideally surrounding context) via the Telegram Bot API or MTProto, instead of attempting a public HTTP GET that always 403s on private chats.
- Only fall back to
browser_navigate for genuinely public web URLs, not Telegram deep links.
Why this matters
We want the agent to be able to use the Telegram group chat as a historical knowledge base — falling back to past messages in the group when answering questions, building context, or checking prior decisions. Without the ability to read history from groups the bot is already in, this whole fallback / long-term memory pattern is blocked.
This is a fairly common pattern for Telegram-based assistants: the bot is in a working group, users reference older messages by link, and the bot is expected to read them. Right now Hermes cannot do that at all.
Environment
- Repo:
NousResearch/hermes-agent
- Telegram client: macOS desktop
- Bot:
howard_BOT (member of the target supergroup)
- Primary model failed → fallback
gpt-5.3-codex via openai-codex (so this is not model-specific; it's the fetch layer)
- Link format:
https://t.me/c/3712897238/712/1031 (private supergroup, message in a topic/thread)
Suggested direction
A few options, roughly in order of effort:
- Bot API path — when the URL matches
t.me/c/<id>/..., call getChat / forwardMessage / copyMessage against chat_id = -100<id> using the bot token, instead of HTTP GET. This works for any chat the bot is already a member of.
- MTProto path — if richer history access is needed (search, scrollback beyond what Bot API exposes), use an MTProto client (e.g. Telethon / Pyrogram / grammers) under a user or bot session, and let the agent query message history as a tool.
- Tool registration — expose this as an explicit
telegram_get_message(chat, message_id) / telegram_search_history(chat, query) tool so the agent picks it deliberately instead of relying on a generic URL fetcher that will always 403 on t.me/c/.
Happy to help test a fix against the same group if useful.
Summary
When asking the Hermes agent to fetch a message from a Telegram group it is already a member of, the agent fails with
HTTP 403and falls back tobrowser_navigate, which also cannot accesst.me/c/...private group links. As a result, the agent has no way to read historical messages from groups it belongs to.Repro
howard_BOT) to a private Telegram group/supergroup.Actual behavior
The agent returns:
browser_navigate, butt.me/c/<internal_id>/...links are only resolvable inside an authenticated Telegram client, so the browser fallback cannot retrieve the message either.Screenshot of the failure:
(attached in the issue thread)
Expected behavior
When the bot is already a member of the target chat, the agent should be able to read historical messages from that chat. Specifically:
https://t.me/c/<internal_chat_id>/<thread_id>/<message_id>as a Telegram private group/supergroup link.chat_idthe bot has access to.browser_navigatefor genuinely public web URLs, not Telegram deep links.Why this matters
We want the agent to be able to use the Telegram group chat as a historical knowledge base — falling back to past messages in the group when answering questions, building context, or checking prior decisions. Without the ability to read history from groups the bot is already in, this whole fallback / long-term memory pattern is blocked.
This is a fairly common pattern for Telegram-based assistants: the bot is in a working group, users reference older messages by link, and the bot is expected to read them. Right now Hermes cannot do that at all.
Environment
NousResearch/hermes-agenthoward_BOT(member of the target supergroup)gpt-5.3-codex via openai-codex(so this is not model-specific; it's the fetch layer)https://t.me/c/3712897238/712/1031(private supergroup, message in a topic/thread)Suggested direction
A few options, roughly in order of effort:
t.me/c/<id>/..., callgetChat/forwardMessage/copyMessageagainstchat_id = -100<id>using the bot token, instead of HTTP GET. This works for any chat the bot is already a member of.telegram_get_message(chat, message_id)/telegram_search_history(chat, query)tool so the agent picks it deliberately instead of relying on a generic URL fetcher that will always 403 ont.me/c/.Happy to help test a fix against the same group if useful.