10 分钟把 Hermes Agent 接到微信:用 Claude Code 搭个能干活的聊天机器人(附避坑)

10 分钟把 Hermes Agent 接到微信:用 Claude Code 搭个能干活的聊天机器人(附避坑)你有没有这种瞬间 群里同事甩一堆需求 帮我总结一下 给个模板 查下资料 你不想打开电脑 不想复制粘贴 你只想在微信里丢一句话 小助理 干活 这篇就干这个 目标很明确 Hermes Agent 在微信里接收消息 调工具 产出结果 回微信 顺便聊一个你可能已经遇到的怪事 功能介绍里为啥会显示 OpenClaw 和微信链接 跑完后

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



你有没有这种瞬间:

  • 群里同事甩一堆需求,“帮我总结一下 / 给个模板 / 查下资料”。
  • 你不想打开电脑,不想复制粘贴。
  • 你只想在微信里丢一句话:“小助理,干活。”

这篇就干这个。

目标很明确:Hermes Agent 在微信里接收消息 → 调工具 → 产出结果 → 回微信。

顺便聊一个你可能已经遇到的怪事:功能介绍里为啥会显示 OpenClaw 和微信链接 🤔


跑完后,你的微信机器人至少能做这些:

  • 你发:/sum + 一段话 → 回你三行总结
  • 你发:/todo + 需求 → 回你 TODO 列表
  • 你发:/help → 回可用指令 + 示例

后面你想接飞书、企业微信、网页也行。微信只是一个入口。


你需要:

  • Node.js 18+(建议 20)
  • 一个能跑机器人的微信接入方式
    • 个人微信:通常用 Wechaty(不同 puppet 方案限制差异很大)
    • 更稳的选择:企业微信应用/机器人(合规、省心)
  • Hermes Agent(你的 Agent 框架/项目)
  • Claude Code(用来快速把骨架补齐,少敲无聊胶水代码)

如果你只是想“快跑起来看看”,建议用企业微信。个人微信那条路,水深一点。


这套东西就三层:

  1. 微信入口层:接收消息、发送消息(Wechaty / 企业微信 SDK)
  2. Agent 层(Hermes):理解意图、规划、调用工具
  3. 工具层(Tools):总结/检索/读写文件/调接口(你写的函数)

微信层只做两件事:

  • 把“用户消息”丢给 Hermes
  • 把“Hermes 输出”回给微信

别在微信层塞业务逻辑。后面你会感谢自己。


mkdir hermes-wechat-agent cd hermes-wechat-agent npm init -y npm i wechaty dotenv 

你如果用企业微信,依赖会不同;思路不变。

新建 .env

# 你自己的 Hermes/大模型相关 key HERMES_API_KEY=xxx # wechaty puppet 相关配置(按你选的 puppet 来) WECHATY_PUPPET=xxx WECHATY_PUPPET_TOKEN=xxx 

⚠️ 这块没法给“万能填写法”。每个 puppet 的配置都不一样。


你打开 Claude Code,直接把需求说清楚。

给你一段非常好用的提示词(你照抄就行):

帮我用 Node.js 写一个微信机器人骨架:

  • 使用 wechaty
  • 收到文本消息时,转发给 runHermes(text, context)
  • runHermes 返回的字符串直接回复
  • 支持 /help /sum /todo 三个指令
  • 用 dotenv 读取环境变量
  • 输出完整代码到 index.js

Claude Code 会给你一个能跑的壳子。

你要做的是:把 runHermes() 这块对接到你的 Hermes Agent。


下面这份代码是“示意写法”。你把 runHermes 替换成你项目里实际的 Hermes 调用即可。

import 'dotenv/config' import { WechatyBuilder } from 'wechaty' async function runHermes(text, context) { // 这里换成你的 Hermes Agent 调用 // 举例:return await hermes.run({ input: text, userId: context.talkerId }) if (text.startsWith('/help')) { return [ '可用指令:', '/sum 需要总结的内容', '/todo 需求描述', '直接发普通文本:我会按默认模式处理' ].join(' ') } if (text.startsWith('/sum')) { const payload = text.replace('/sum', '').trim() return `【三行总结】 - ${payload.slice(0, 20)}...(示例) - 关键信息 2 - 行动建议 3` } if (text.startsWith('/todo')) { const payload = text.replace('/todo', '').trim() return `【TODO】 1. 拆解:${payload.slice(0, 20)}...(示例) 2. 评估工作量 3. 给出时间点` } return `收到:${text} (这里接 Hermes 的默认对话输出)` } const bot = WechatyBuilder.build({ name: 'hermes-wechat-agent' }) bot.on('message', async (msg) => const context = { talkerId: talker.id, talkerName: talker.name(), roomId: room?.id, roomTopic: room ? await room.topic() : null } const reply = await runHermes(text, context) await msg.say(reply) } catch (e) { console.error(e) await msg.say('我这边刚刚卡了一下,你再发一遍?') } }) bot.start().then(() => { console.log('✅ bot started') }) 

跑起来:

node index.js 

能登录、能收消息、能回消息,这条链路就通了。


很多人做机器人翻车,不是模型不行,是上下文太少。

建议你至少给 Hermes 这些:

  • talkerId(用来做“同一个人”的长期记忆)
  • roomId(群/私聊隔离)
  • roomTopic(群名,模型理解场景用)
  • 原始文本(别只传清洗后的)

你未来要做权限、配额、白名单,全靠这些字段。

微信里没人爱看论文。

同样是输出,下面这种更讨喜:

  • 结论 1 行
  • 要点 3 行
  • 下一步 1 行

想让你每天早下班一小时,就别给用户发 80 行长文。


你说的现象特别典型:

“奇怪的是功能介绍那里为什么显示链接 OpenClaw 和微信”

大概率不是微信的问题,也不是你写错了业务逻辑。

更像是:你的工具(tools / functions)元数据里,带了默认的“来源链接/项目链接”字段,被界面展示出来了。

常见触发点有这些:

  • 你用模板项目起的 Agent(模板作者写了 homepagerepositorysource
  • 你用某个工具注册器自动生成 manifest(里面有 urllinks
  • 你把工具描述直接从某个项目拷过来(描述里就带 OpenClaw)

去你 Hermes 的工具定义里搜关键字:

  • OpenClaw
  • wechat
  • link
  • url
  • homepage
  • repository

一般会在这些地方:

  • tools.json
  • manifest.json
  • toolRegistry.ts / tools.ts
  • 工具的 description 字段

你有三个修法,选你顺手的:

  • 改描述:把工具 description 里那段链接删掉
  • 改元数据:把 homepage/repository 换成你自己的
  • 禁止展示:如果你的 UI/接入层支持,直接不渲染 links

如果你愿意贴一段“工具定义/功能介绍”的原始 JSON(打码也行),我可以帮你一眼指出是哪一个字段在捣乱。


  • 群聊不做触发条件:机器人会被群消息刷爆。建议只响应“@我”或“/命令”。
  • 不做异常兜底:一报错就沉默,用户以为你挂了。至少回一句“我卡了”。
  • 输出太长:微信看长文太痛苦。默认输出限制在 10 行内。
  • 没有用户隔离:A 问的问题被 B 接着用,社死现场。用 talkerId+roomId 做隔离。
  • 把 token 打进日志:别笑,真有人这么干。日志里只留 requestId。

你可以把指令设计成这种风格:

  • /sum:三行总结
  • /plan:给执行计划(按天拆)
  • /reply:帮我写一段微信回复(礼貌但不卑微)
  • /risk:列风险点(越尖锐越好)

用户会觉得这机器人真的在“替我工作”,而不是在聊天。


当链路跑通以后,再加两件事,机器人就开始值钱了:

  • 记忆:同一个人常用格式、常聊项目,别每次从零开始
  • 工具:查日历、查文档、写周报、拉取工单、跑脚本

到这一步,Hermes 才算“Agent”,不是“会说话的模型”。


如果你想把“示例骨架”替换成你真实的 Hermes 调用,发这些就够:

  • 你 Hermes Agent 的初始化代码片段(打码 key)
  • 你现在工具注册(tools/functions)的那段 JSON/TS
  • 你用的微信接入方式:Wechaty 哪个 puppet / 企业微信哪种模式
  • 那个“功能介绍显示 OpenClaw/微信链接”的截图或原文

我会按你的栈给一版能直接跑的对接方式。

小讯
上一篇 2026-04-20 07:55
下一篇 2026-04-20 07:53

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/271065.html