@Teknium: Hermes Agent 现已拥有新的网关通道!LINE 已成为与您的智能体交互的官方支持方式!阅读文…

X AI KOLs Following 工具

摘要

Hermes Agent 新增了对 LINE 作为网关通道的官方支持,允许开发者通过 LINE Messaging API 与其 AI 智能体进行交互。

Hermes Agent 现已拥有新的网关通道!LINE 已成为与您的智能体交互的官方支持方式!文档请见:https://hermes-agent.nousresearch.com/docs/user-guide/messaging/line… 运行 `hermes update` 即可开始使用!
查看原文
查看缓存全文

缓存时间: 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)

  1. 前往 LINE 开发者控制台 (https://developers.line.biz/console/)。
  2. 创建一个 Provider,然后在其下创建一个Messaging API 通道。
  3. 从通道的基本设置标签页中,复制通道密钥 (Channel secret)
  4. Messaging API标签页中,滚动到通道访问令牌(长期有效)并点击签发 (Issue)。复制该令牌。
  5. 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 控制台:

  1. 打开您的通道 → Messaging API 标签页。
  2. Webhook 设置Webhook URL 下,粘贴 https://<your-tunnel-url>/line/webhook(注意 /line/webhook 路径 —— 适配器在此监听)。
  3. 点击验证 (Verify)。LINE 会 ping 该 URL;您应该看到状态码 200。
  4. 使用 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_HOST0.0.0.0Webhook 绑定主机
LINE_PORT8646Webhook 绑定端口
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_THRESHOLD45回传按钮触发前的秒数(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 聊天中显示。

相似文章