@Teknium: Hermes Agent 现已拥有新的网关通道!LINE 已成为与您的智能体交互的官方支持方式!阅读文…
摘要
Hermes Agent 新增了对 LINE 作为网关通道的官方支持,允许开发者通过 LINE Messaging API 与其 AI 智能体进行交互。
查看缓存全文
缓存时间: 2026/05/10 20:30
Hermes Agent 现在拥有新的网关通道!LINE 现已成为与您的 Agent 互动的官方支持方式!在此阅读文档:https://hermes-agent.nousresearch.com/docs/user-guide/messaging/line… 运行 hermes update 即可立即开始使用!—
LINE | Hermes Agent
来源:https://hermes-agent.nousresearch.com/docs/user-guide/messaging/line
LINE 设置
通过官方 LINE Messaging API 将 Hermes Agent 运行作为 LINE (https://line.me/) 机器人。适配器以捆绑平台插件的形式存在于 plugins/platforms/line/ 下——无需修改核心代码,只需像启用其他平台一样启用它即可。LINE 是日本、台湾和泰国的主导即时通讯应用。如果您的用户位于这些地区,这就是他们联系您的方式。
机器人的响应方式 (https://hermes-agent.nousresearch.com/docs/user-guide/messaging/line#how-the-bot-responds)
| 上下文 | 行为 |
|---|---|
1:1 聊天 (U ID) | 回复每一条消息 |
群组聊天 (C ID) | 当群组在允许列表中时回复 |
多用户房间 (R ID) | 当房间在允许列表中时回复 |
传入的文本、图片、音频、视频、文件、贴纸和位置均受支持。传出的文本首先使用免费回复令牌(单次使用,~60秒窗口),当令牌过期时回退到计费的 Push API。
步骤 1:创建 LINE Messaging API 通道 (https://hermes-agent.nousresearch.com/docs/user-guide/messaging/line#step-1-create-a-line-messaging-api-channel)
- 前往 LINE 开发者控制台 (https://developers.line.biz/console/)。
- 创建一个 Provider,然后在其下创建一个Messaging API 通道。
- 从通道的基本设置标签页中,复制通道密钥 (Channel secret)。
- 在Messaging API标签页中,滚动到通道访问令牌(长期有效)并点击签发 (Issue)。复制该令牌。
- 在Messaging API标签页中,还请禁用自动回复消息和欢迎消息,以免它们与机器人的回复冲突。
步骤 2:暴露 Webhook 端口 (https://hermes-agent.nousresearch.com/docs/user-guide/messaging/line#step-2-expose-the-webhook-port)
LINE 通过公共 HTTPS 发送 Webhook。默认端口为 8646——如有需要,可使用 LINE_PORT 覆盖。
# Cloudflare Tunnel (推荐用于生产环境 — 固定主机名)
cloudflared tunnel --url http://localhost:8646
# ngrok (适合开发环境)
ngrok http 8646
# devtunnel
devtunnel create hermes-line --allow-anonymous
devtunnel port create hermes-line -p 8646 --protocol https
devtunnel host hermes-line
复制 https://... URL —— 您将把它设置为下面的 Webhook URL。在测试期间保持隧道运行。对于生产环境,设置一个固定的 Cloudflare 命名隧道,以便 Webhook URL 在重启时不会改变。
步骤 3:配置 Hermes (https://hermes-agent.nousresearch.com/docs/user-guide/messaging/line#step-3-configure-hermes)
在 ~/.hermes/.env 中添加:
LINE_CHANNEL_ACCESS_TOKEN=YOUR_LONG_LIVED_TOKEN
LINE_CHANNEL_SECRET=YOUR_CHANNEL_SECRET
# 允许列表 — 至少需要以下其中之一(或设置 LINE_ALLOW_ALL_USERS=true 用于开发)
LINE_ALLOWED_USERS=U1234567890abcdef... # 逗号分隔的 U 前缀 ID
LINE_ALLOWED_GROUPS=C1234567890abcdef... # 可选的群组 ID
LINE_ALLOWED_ROOMS=R1234567890abcdef... # 可选的房间 ID
# 发送图像/音频/视频所需 — 隧道解析到的公共 HTTPS 基础 URL
# 如果不设置,send_image/voice/video 将拒绝发送。
LINE_PUBLIC_URL=https://my-tunnel.example.com
然后在 ~/.hermes/config.yaml 中:
gateway:
platforms:
line:
enabled: true
这就足够了——gateway/config.py 中的捆绑插件扫描会自动发现 plugins/platforms/line/。无需编辑 Platform.LINE 枚举,也无需注册 _create_adapter。
步骤 4:设置 Webhook URL (https://hermes-agent.nousresearch.com/docs/user-guide/messaging/line#step-4-set-the-webhook-url)
回到 LINE 控制台:
- 打开您的通道 → Messaging API 标签页。
- 在 Webhook 设置 → Webhook URL 下,粘贴
https://<your-tunnel-url>/line/webhook(注意/line/webhook路径 —— 适配器在此监听)。 - 点击验证 (Verify)。LINE 会 ping 该 URL;您应该看到状态码 200。
- 将使用 Webhook (Use webhook) 切换为开启 (On)。
步骤 5:运行网关 (https://hermes-agent.nousresearch.com/docs/user-guide/messaging/line#step-5-run-the-gateway)
Agent 日志显示:
LINE: webhook listening on 0.0.0.0:8646/line/webhook (public: https://my-tunnel.example.com)
从 LINE 应用中添加机器人为好友(扫描通道 Messaging API 标签页中的二维码),并发送一条消息。
缓慢的 LLM 响应 (https://hermes-agent.nousresearch.com/docs/user-guide/messaging/line#slow-llm-responses)
LINE 的回复令牌是单次使用的,并在入站事件后大约 60 秒过期。缓慢的 LLM 无法及时回复,这通常会强制调用付费的 Push API。
当 LLM 运行时间超过 LINE_SLOW_RESPONSE_THRESHOLD 秒(默认 45)时,适配器会消耗原始回复令牌以发送一个模板按钮 (Template Buttons) 气泡:
🤔 仍在思考中。点击下方以在答案准备好时获取结果。 [ 获取答案 ]
用户方便时点击获取答案 —— 该回传(postback)提供一个新鲜的回复令牌,适配器利用它将缓存的答案发送出去(仍然免费)。状态机:PENDING → READY → DELIVERED,以及针对取消运行的 ERROR(孤立的 PENDING 在 /stop 后解析为“运行在完成前被中断”,因此持久按钮不会循环)。
要禁用回传按钮并始终回退到 Push:
LINE_SLOW_RESPONSE_THRESHOLD=0
为了使回传流程可靠触发,请抑制那些会在阈值之前消耗回复令牌的聊天噪音:
# ~/.hermes/config.yaml
display:
interim_assistant_messages: false
platforms:
line:
tool_progress: off
定时任务 / 通知投递 (https://hermes-agent.nousresearch.com/docs/user-guide/messaging/line#cron–notification-delivery)
LINE_HOME_CHANNEL=Uxxxxxxxxxxxxxxxxxxxx # 默认投递目标
带有 deliver: line 的定时任务路由到 LINE_HOME_CHANNEL。适配器附带一个独立的仅 Push 发送器,因此即使定时任务在与网关不同的进程中运行,也能正常工作。
环境变量参考 (https://hermes-agent.nousresearch.com/docs/user-guide/messaging/line#environment-variable-reference)
| 变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
LINE_CHANNEL_ACCESS_TOKEN | 是 | — | 长期通道访问令牌 |
LINE_CHANNEL_SECRET | 是 | — | 通道密钥(HMAC-SHA256 Webhook 验证) |
LINE_HOST | 否 | 0.0.0.0 | Webhook 绑定主机 |
LINE_PORT | 否 | 8646 | Webhook 绑定端口 |
LINE_PUBLIC_URL | 媒体发送时需要 | — | 公共 HTTPS 基础 URL;发送图像/语音/视频时必需 |
LINE_ALLOWED_USERS | 三者之一 | — | 逗号分隔的用户 ID(U 前缀) |
LINE_ALLOWED_GROUPS | 三者之一 | — | 逗号分隔的群组 ID(C 前缀) |
LINE_ALLOWED_ROOMS | 三者之一 | — | 逗号分隔的房间 ID(R 前缀) |
LINE_ALLOW_ALL_USERS | 仅开发用 | false | 完全跳过允许列表 |
LINE_HOME_CHANNEL | 否 | — | 默认定时任务/通知投递目标 |
LINE_SLOW_RESPONSE_THRESHOLD | 否 | 45 | 回传按钮触发前的秒数(0= 禁用) |
LINE_PENDING_TEXT | 否 | “🤔 仍在思考中…” | 伴随回传按钮显示的气泡文本 |
LINE_BUTTON_LABEL | 否 | “获取答案” | 按钮标签 |
LINE_DELIVERED_TEXT | 否 | “已回复 ✅” | 再次点击已投递按钮时的回复 |
LINE_INTERRUPTED_TEXT | 否 | “运行在完成前被中断。” | 点击被 /stop 孤立的按钮时的回复 |
故障排除 (https://hermes-agent.nousresearch.com/docs/user-guide/messaging/line#troubleshooting)
Webhook 验证出现 “invalid signature”。 Channel secret 复制错误,或者您的隧道重写了请求体。首先使用 curl -i https://<your-tunnel-url>/line/webhook/health 进行验证 —— 这应该返回 {"status":"ok","platform":"line"}。
机器人在群组中接收不到任何消息。 检查 LINE_ALLOWED_GROUPS 是否包含 C... 群组 ID。要查找群组 ID,发送一条测试消息并在 ~/.hermes/logs/gateway.log 中 grep LINE: rejecting unauthorized source —— 被拒绝的来源字典中包含 ID。
send_image 失败并提示 “LINE_PUBLIC_URL must be set”。 LINE 的 Messaging API 不接受二进制上传 —— 图像、音频和视频必须是可访问的 HTTPS URL。将 LINE_PUBLIC_URL 设置为隧道的公共主机名,适配器将自动从 /line/media/<id>/ 提供文件。
回传按钮从不出现。 要么 LLM 响应速度快于 LINE_SLOW_RESPONSE_THRESHOLD,要么其他气泡(工具进度、流式传输)首先消耗了回复令牌。参见“缓慢的 LLM 响应”下的抑制块。
“already in use by another profile”。 相同的通道访问令牌已绑定到另一个正在运行的 Hermes 配置文件。停止另一个网关或使用单独的通道。
限制 (https://hermes-agent.nousresearch.com/docs/user-guide/messaging/line#limitations)
- 每个块仅限单个气泡。 每个 LINE 文本气泡限制为 5000 个字符,且每次 Reply/Push 调用最多发送 5 个气泡。较长的响应将以省略号截断。
- 无原生消息编辑。 LINE 没有编辑消息 API —— 流式响应总是发送新的气泡,永远不会编辑之前的消息。
- 无 Markdown 渲染。 粗体 (
**)、斜体 (*)、代码围栏和标题会渲染为字面字符。适配器在发送前会剥离它们;URL 会被保留 ([label](url)变为label (url))。 - 加载指示器仅限私聊。 LINE 拒绝群组和房间的聊天/加载 API,因此打字指示器仅在 1:1 聊天中显示。
相似文章
@Teknium:Hermes Agent 现在可以通过新的可选技能来协调 @OpenHandsDev 代理!执行 `hermes update`,然后运行 `hermes sk…
Hermes Agent 现在支持通过一项新的可选技能来协调 OpenHands 代理,加入已有的内置技能(Claude Code、Codex、OpenCode 和 Hermes 本身)。
@ElevenLabsDevs: 呼叫您的 Hermes Agent
ElevenLabs 引入了呼叫您的 Hermes Agent 的功能,通过他们的平台实现与AI代理的语音交互。
@Lonely__MH: Hermes Agent iMessage安排上了。 实测响应速度比 Telegram 快,更丝滑 另外,不需要就可以随时沟通,爽歪歪 Good Job! @Teknium @NousResearch
Hermes Agent v0.17.0 adds standalone iMessage support without Mac relay, with faster response times than Telegram, and enables seamless communication.
@NousResearch: 您的 Hermes Agent 现已通过 @photon_hq 入驻 iMessage。运行 'hermes gateway setup' 并选择 Photon 即可开始与您的代理发短信…
Nous Research 的 Hermes Agent 现可通过 Photon 的网关设置用于 iMessage。
@Teknium: 现在在 @telegram 上使用 Hermes Agent 进行流式令牌传输丝般顺滑。
Teknium 宣布,现在在 Telegram 上使用 Hermes Agent 进行流式令牌传输变得流畅。