AIエージェントの返答をTelegramで読みやすくする仕組みが、ついに公式に整いました。
2026年6月11日のアップデートで、TelegramボットはリッチMarkdown(Rich Markdown)形式のメッセージを送れるようになりました。これまでMarkdownV2では崩れやすかった表やチェックリスト、折りたたみブロックが、モバイルアプリ上でそのまま表示されます。HermesやOpenClawのようなTelegram連携エージェントの出力品質にも直結する変更です。
この記事でわかること
- Bot API 10.1で追加されたリッチMarkdownの概要
- 従来のMarkdownV2との違いと上限の変化
- sendRichMessageの使い方とストリーミング対応
- 実装時に押さえるべき制限と注意点
何が変わったか
Telegramは2026年6月11日の公式ブログで、ボット向けリッチテキストフォーマットを発表しました。同日、Bot API 10.1としてsendRichMessage・sendRichMessageDraft・editMessageTextのrich_messageパラメータが追加されています。
ボットが送れるメッセージは、これまでの軽量フォーマット(MarkdownV2・HTML)に加え、Rich Messageという新カテゴリが増えました。Rich MarkdownはGitHub Flavored Markdown(GFM)に準拠しており、見出し・表・タスクリスト・折りたたみ詳細・脚注・LaTeX数式などを1本のメッセージにまとめられます。
公式ブログでは、1メッセージあたり最大32,768文字まで送れると説明されています。8,000文字を超えると「Show More」ボタンで折りたたまれるため、長いレポートもチャット内に収まります。
なぜ今回の変更が重要か
TelegramはAIボットの利用が多いプラットフォームです。エージェントが生成するレポートや要約は、見出し・表・箇条書きを含む構造化テキストになりがちです。
従来のsendMessage+MarkdownV2では、パイプ記法の表はクライアント側で崩れ、見出しも太字への変換にとどまるケースがありました。Bot API 10.1のリッチメッセージは、表・チェックリスト(- [ ]形式)・<details>ブロックをネイティブに描画します。開発者が無理な整形やプレーンテキストへの変換をせず、Markdownをそのまま送れる点が実務上のメリットです。
主な機能と制限
https://core.telegram.org/bots/features
公式ドキュメントが示すRich Messageの主な要素は次のとおりです。
- 見出し(H1〜H6)、段落、区切り線、順序付き・順序なしリスト、タスクリスト
- 表(列揃え・キャプション・ボーダー・ストライプ・列結合・行結合)
- ネストしたインライン装飾(太字・斜体・打ち消し線・スポイラー・コード・上付き・下付き)
- 折りたたみ可能なdetailsブロック、脚注、アンカーリンク
- インライン・ブロックのLaTeX数式
- 写真・動画・音声のメディアブロック
上限は次のとおりです(Bot API公式より)。
- テキスト全体:最大32,768 UTF-8文字
- ブロック数:最大500(ネスト含む)
- ネスト深度:最大16レベル
- メディア添付:最大50件
- 表の列数:最大20列
動作確認用に、Telegramは@RichTextDemoBotでインタラクティブなデモを公開しています。
sendRichMessageの使い方
https://core.telegram.org/bots/api#sendrichmessage
リッチメッセージの送信はsendRichMessageメソッドを使います。InputRichMessageオブジェクトのmarkdownフィールドにGFM形式の文字列を渡します。
{
"chat_id": 123456789,
"rich_message": {
"markdown": "## 週次レポート\n\n| 項目 | 値 |\n|:-----|---:|\n| 応答時間 | 42ms |\n\n- [ ] レビュー待ち\n- [x] デプロイ完了\n\n<details><summary>詳細ログ</summary>\n\nエラーは0件でした。\n\n</details>"
}
}
AIの応答を逐次表示する場合はsendRichMessageDraftを使います。生成中のプレビューを30秒間ストリーミング表示し、完成後にsendRichMessageで確定メッセージを送る流れが公式に想定されています。既存メッセージの書き換えには、editMessageTextのrich_messageパラメータが使えます。
n8nなどのワークフローツールも、2026年6月時点でSend Rich Messageノードを追加しており、MarkdownかHTMLを選んで送信する構成が取れます。
従来のMarkdownV2との違い
Telegramのメッセージフォーマットは2段階に分かれます。
| 種類 | 用途 | 主なAPI | 文字数上限 |
|---|---|---|---|
| Regular Message | 短い確認・シンプルな会話 | sendMessage |
4,096文字 |
| Rich Message | レポート・AI回答・技術文書 | sendRichMessage |
32,768文字 |
Regular MessageのMarkdownV2は、短いテキスト向けの軽量記法です。表や折りたたみブロックはサポートされません。リッチメッセージが必要な場面では、MarkdownV2への変換パイプラインを通さず、最初からsendRichMessageを使うのが正しい経路です。
エージェント系フレームワークでは、ストリーミング中にeditMessageTextでプレーンテキストに上書きするとリッチ装飾が失われる問題が報告されています。中間更新と最終送信でAPIを使い分ける実装が求められます。
注意点
モバイルアプリでは表やチェックリストの表示が改善されていますが、Telegram Web版ではコードブロックのコピー操作など、まだ粗さが残るという開発者の報告もあります。全クライアントで同等の体験を前提にしない設計が安全です。
Rich MarkdownはGFM互換ですが、メディアは独立ブロックとして記述する必要があります。表のセル内はインライン装飾のみ許可され、ブロック要素は入れられません。HTMLタグも併用できますが、対応タグはRich HTMLスタイルの定義に従います。
既存ボットは、リッチメッセージ非対応のクライアントやライブラリ向けにMarkdownV2へのフォールバックを残しておくと移行がスムーズです。
まとめ
@RichTextDemoBotで表示を確認し、エージェントの最終出力パスをsendRichMessageに切り替えるのが、いちばん手早い移行手順です。ストリーミング実装を持つボットは、中間更新でリッチ装飾が消えないか先にテストしておくと安心です。