必须将config.yaml中telegram.message_format设为markdown_v2并重启服务,再通过jinja2模板实现状态图标、等宽id、标准化时间、内联按钮及折叠详情等结构化排版。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

想让Hermes Agent在Telegram里发送的消息更清晰、可读性更强、点击即用,就得主动调整它的消息格式——默认输出常是纯文本堆叠,按钮错位、关键信息被埋、时间戳格式混乱,用户扫一眼根本抓不住重点。
启用结构化消息模板
打开Hermes Agent配置目录下的config.yaml,定位到telegram节区,将message_format字段值从plain改为markdown_v2。
这一步必须做,否则后续所有样式优化都无效——【不改此项,加粗/链接/行内按钮全部失效】。
改完后重启Agent服务:systemctl restart hermes-agent。
关键字段自动高亮与分段
在templates/telegram/task_summary.j2中,把原生的单行JSON dump替换为分块渲染逻辑:
① 用{% if task.status == 'success' %}✅{% else %}❌{% endif %}前置状态图标;
② 将task.id单独成行并套上`{{ task.id }}`反引号,触发Telegram等宽字体渲染,避免ID被截断或误解析;
③ 时间字段统一调用{{ task.ended_at|datetime('HH:mm:ss') }}过滤器,强制输出24小时制秒级精度,防止时区混淆导致误判执行时效。
动态生成快捷操作按钮
方法一:内联按钮绑定任务上下文
在消息模板末尾插入Jinja2代码块:{% if task.can_retry %}[重试]({{ task.retry_url }}){% endif %},Telegram会自动识别方括号+圆括号语法生成可点击按钮。
方法二:多按钮横向排布(限最多3个)
使用[[查看日志]( {{ task.log_url }} )][[取消]( {{ task.cancel_url }} )]写法,两个按钮将在同一行并列显示——注意左右方括号之间不能有空格,否则Telegram解析失败。
方法三:折叠式详情面板
对长描述字段启用details折叠区块:▶️ 展开详情…{{ task.description|truncate(50) }}…,配合前端JavaScript监听展开事件,避免初始消息过长刷屏。











