案例④:跨部门"数字员工"——把 Hermes 接进企业 OA 与数据库
案例④:跨部门”数字员工”——把 Hermes 接进企业 OA 与数据库
你公司里最贵的那批人,每天在干嘛?不是在决策,是在”搬运”——把销售库里的数字复制到 Excel,再贴进 OA 工单,再截图发到群里。这套动作没有任何创造性,却吃掉大量工时,还容易错。
Hermes 的价值,不是再陪你聊两句天,而是把”调内部系统、查库、建单、回群”这一串动作,封装成一个能自己干活的跨部门数字员工。它不是 RPA 那种脆弱的脚本,而是带着 LLM 脑子、能理解意图、能处理异常、能跨会话记事的代理。
本章就用一条最典型的流水线讲清楚:Hermes 怎么接进企业现成的 OA 和数据库。
三条集成路径:从”能调”到”能改”
▲ Hermes 运行时健康面板:状态、日志与升级回滚入口
把 Hermes 接进内部系统,深度由浅到深分三档。选哪一档,取决于你愿意动多少代码、要多少控制力。
控制力 / 改动量
▲
│
③ 二次开发 │ 改 tools/ 源码,扩展原生工具
(MIT 可商用) │ 深度最强,需工程能力
│
② MCP 接入 │ 起一个内部 MCP server
(呼应第11章) │ 查库 / 建单,工具动态发现
│
① API 调用 │ hermes 直接打内部 HTTP
(最轻量) │ curl / execute_code / web 工具
│
└──────────────────────▶ 落地速度| 路径 | 适合场景 | 优点 | 代价 |
|---|---|---|---|
| ① API(自定义工具/hermes 调内部 HTTP) | 内部已有一堆 REST 接口 | 零改造,今天就能跑 | 接口鉴权、重试要自己封装在 skill 里 |
| ② MCP(接内部 MCP server) | 想让”查库/建单”变成可发现、可管控的工具 | 工具自动注册、可白名单、可被代理自主选 | 要起一个 MCP server(stdio 或 HTTP) |
| ③ 二次开发(改源码扩展工具) | 要把能力做成产品级、可复用 | 原生体验、性能最好 | 要读源码、维护 fork |
路径①:hermes 直接打内部 HTTP
最省事的方式——让 agent 用 terminal 的 curl,或者 execute_code 跑一段 Python requests,直接打你们内部接口。把它沉淀成一个 skill,以后一句话就能触发:
# Skill: 查销售库
## Procedure
1. execute_code 运行 Python,用 requests 调用
GET https://internal-api.company.com/sales/weekly?token=$OA_TOKEN
2. 把返回的 JSON 聚合成周报字段
3. 调用 OA 建单接口 POST /ticket关键:密钥别硬编码进 skill。放
~/.hermes/.env,skill 里读$OA_TOKEN,.env设chmod 600。
路径②:MCP 接内部 server(呼应第11章)
如果你们有现成的 MCP server(很多内部平台已经支持),直接写进 config.yaml 的 mcp_servers,Hermes 启动时自动发现工具:
mcp_servers:
internal_crm:
url: "https://mcp.internal.company.com/mcp"
headers:
Authorization: "Bearer ${INTERNAL_MCP_TOKEN}"
tools:
include: [query_sales, create_ticket] # 白名单,只暴露这两个
legacy_db:
url: "https://mcp.legacy.internal"
tools:
exclude: [drop_table, delete_all] # 黑名单,防误删代理会看到 mcp__internal_crm__query_sales 这类工具,自主决定什么时候用。这一部分在本系列第11章(MCP 协议打通工具生态)已经铺过底,这里是企业落地的延伸。
路径③:基于源码二次开发
要把能力做成原生工具(比如一个 query_sales_db 直接出现在工具列表里),就改 tools/ 目录。注册入口在 tools/registry.py,工具发现/分发在 model_tools.py。
注意许可证:仓库是 MIT。MIT 意味着你可以商用、可以闭源改,但必须保留原始 LICENSE 和版权声明——这是唯一硬约束,别删。其余你随便改。
流程设计:查销售库 → 生成周报工单
把上面三条路径组合成一条真实流水线。下面这个设计用 MCP 查库、用 API 建单、用网关回群:
┌─────────────────────────────────────────────┐
│ 你(老板/业务) │
│ "周五下午把本周销售周报工单建好发群里" │
└───────────────────┬─────────────────────────┘
│ (钉钉/飞书/企微消息)
▼
┌───────────────┐
│ Hermes 网关 │ ← 第9章多平台接入
└───────┬───────┘
│
┌─────────────┴─────────────┐
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ MCP: query_sales │ │ 聚合 + 格式化 │
│ (内部 CRM server) │ │ execute_code 算指标 │
└────────┬─────────┘ └─────────┬────────┘
│ 原始数据 │ 周报文本
└──────────────┬────────────────┘
▼
┌──────────────────────┐
│ API: POST /ticket │ ← 路径①建 OA 工单
│ 回传工单号 │
└──────────┬───────────┘
▼
┌──────────────────────┐
│ 网关回群: 工单号+摘要 │
└──────────────────────┘实操要点:
- 用
/goal设长期目标,让 agent 在周五定时(第8章 cron)自动跑。 - 查库走 MCP
include白名单,只暴露query_sales。 - 建单走内部 HTTP,token 从
.env读。 - 建完把工单号 + 三行摘要发到对应群(钉钉/飞书/企微原生支持,第9章)。
⚠️ 避坑提示
- 别把数据库写权限交给 agent。生产环境 MCP
include只放查询类工具,exclude掉drop_*/delete_*。哪怕容器隔离,也遵循最小权限。 - OA 建单接口要幂等。agent 重试可能建两张单。接口侧做”同批次号去重”,或 skill 里先查再建。
- 网关必须上 allowlist。企业微信/钉钉/飞书都支持
*_ALLOWED_USERS: 绝不要开FEISHU_ALLOWED_USERS=ou_xxxxxxxx,ou_yyyyyyyy WECOM_ALLOWED_USERS=user-id-1,user-id-2GATEWAY_ALLOW_ALL_USERS=true配终端权限 bot。 - 用容器后端兜底(呼应第12章八层安全)。给 agent 配 Docker 终端后端 + CPU/内存/磁盘上限,即使内部接口被攻破,爆炸半径也只是一个容器:
terminal: backend: docker docker_image: "nikolaik/python-nodejs:python3.11-nodejs20" container_cpu: 1 container_memory: 5120 - 审计留痕。所有会话进
~/.hermes/logs/(密钥自动脱敏),可用session_search(FTS5,返回真实消息、无截断)回查”谁让 agent 建了哪张单”。审批历史还能hermes approvals suggest挖掘。
本节能造出什么数字员工
一个跨部门运营助理:每周五自动拉销售库数据 → 算核心指标 → 在 OA 建周报工单 → 把工单号和摘要发到管理层群。接入第9章的多平台网关后,它还能通过钉钉/飞书/企微直接被业务方@召唤查数。
更深一层:因为 Hermes 是自托管的,你们的销售数据、客户名单、OA 内容全程留在自己的 ~/.hermes/ 里,无遥测、无云端锁定(MIT,自托管 100% 免费)。这对有数据主权要求的金融、政企客户,是 RPA 套壳 SaaS 给不了的底气。
下篇预告
下一步是”搬家”——如果你之前在用 Hermes 的前身 OpenClaw,第18章给你一份平滑迁移指南和坑点清单,一条命令把旧家当迁过来。
延伸阅读