Hermes Agent橙皮书共读|第四篇:落地场景开发|MCP集成、多平台网关、自定义Skill开发

专栏系列回顾

第一篇:认知导论|从 Harness 工程到 Hermes,五大核心概念厘清

第二篇:核心内核拆解|五大支柱深度解析(Memory/Skill/Soul/Crons/自进化闭环)

第三篇:保姆级实战部署|本地 / VPS 从零搭建 Hermes

本篇为第四篇:场景开发实战。

前置要求:已经完成第三篇部署,Hermes可以正常跑通CLI交互,理解Skill、Crons、Memory基础机制。

本篇重点:跳出单机终端CLI,做真实业务落地:自定义Skill开发、MCP协议对接、多平台网关、子Agent协同、定时任务业务实战,附带可运行Demo代码。
阅读提示:CLI仅适合调试;真正对外提供服务,需要网关、工具协议、业务Skill,也就是本篇要解决的问题。

0. 本篇前言:为什么不能只停留在CLI模式

CLI模式只适合开发者本地调试,存在3个落地硬伤:

  1. 只能人工在终端输入,无法被其他程序、机器人、业务系统调用;
  2. 没有标准化工具协议,外部工具很难接入Agent;
  3. 无法对外提供API,不能对接微信、钉钉、企业内部系统。

本篇围绕三个核心能力展开:

  1. 自定义Skill手动开发:不止让AI生成Skill,我们手写可控的业务技能;
  2. MCP协议集成:对接外部工具、数据库、本地文件服务;
  3. 启动HTTP网关 + 子Agent协同 + Crons定时业务实战

1. 深度理解Skill规范:手写自定义Skill

第三篇我们体验了AI自动生成Skill ,生产环境很多场景需要人工编写可控Skill,保证稳定性、可调试。

Hermes的Skill统一规范:xxx.skill.md,采用「元信息头 + 执行代码」两段式,存放于./skills目录,框架启动自动扫描加载。

Skill完整格式规范

markdown 复制代码
## skill_name: 文件重命名
## description: 技能描述,大模型依靠这个判断什么时候调用该技能
## params:
{
  "folder_path": {"type":"string","desc":"目标文件夹路径","required":true}
}
## author: human # human代表人工编写;auto代表AI自动生成
## version: 1.0.0

```python
# 业务执行代码
import os

def run(params):
    folder = params.get("folder_path",".")
    file_list = os.listdir(folder)
    return {"code":0,"data":file_list,"msg":"获取文件列表成功"}

if __name__ == "__main__":
    import sys
    import json
    input_params = json.load(sys.stdin)
    res = run(input_params)
    print(json.dumps(res,ensure_ascii=False))
复制代码
> 关键知识点
1. `params`:定义入参schema,大模型调用时会自动填充参数;
2. run函数**必须接收params字典**,返回标准json格式结果;
3. 标准输出只允许输出json,不要随意print调试信息,避免解析失败;
4. 保存到`skills/list_dir.skill.md`,框架重启后自动识别加载。

### 🧪Demo实战:手写读取目录Skill
把上面这份文件保存,回到CLI模式测试:
```powershell
python main.py --mode cli

输入指令:

复制代码
调用list_dir技能,查看当前项目config文件夹下全部文件

✅预期效果:Agent不再生成新skill,直接调用我们手写的技能,返回config目录下文件列表。

💡对比:自动生成Skill vs 人工手写Skill

类型 优点 适用场景
AI自动生成Skill 快速、无需编码,原型验证 探索性任务、临时一次性任务
人工手写Skill 稳定、可控、可版本管理 生产业务、高频调用、复杂逻辑

自进化闭环逻辑:Agent优先检索已有skill库,命中就直接调用;没有匹配技能,才触发AI生成新Skill存入库。
注意:关于 Skill可以看一下《Skill 蓝⽪书》

github.com/zhuyansen/skill-blue-book · agentskillshub.top/book/

2. MCP协议集成:打通外部工具生态

MCP:Model Context Protocol,模型上下文协议,统一Agent调用外部工具的标准协议。

Hermes支持作为MCP客户端,可以对接MCP服务:本地文件服务、数据库、浏览器、Git工具、自研业务接口。

2.1 修改.env开启MCP能力

env 复制代码
# MCP开关
ENABLE_MCP=true
MCP_CONFIG_PATH=./config/mcp_config.json

新建config/mcp_config.jsonMCP服务配置文件,示例:

json 复制代码
{
  "mcp_servers": [
    {
      "name":"local_file_server",
      "command":"npx",
      "args":["@modelcontextprotocol/server-filesystem","./workspace"]
    }
  ]
}

上面配置启动官方文件MCP服务,允许Agent读写workspace目录文件。
⚠️依赖:需要本地安装node环境,才能运行npx的MCP服务;如果你不想装node,可以使用python实现的MCP服务。

重启Hermes(CLI模式),启动日志会多出一行:

[INFO] MCP客户端初始化完成,已加载 1 个MCP服务

🧪Demo测试MCP文件服务

CLI输入:

复制代码
使用MCP工具,在workspace下面创建一个note.txt,写入内容:Hermes MCP测试成功

✅预期:Agent通过MCP协议调用外部文件服务完成写文件,而不是靠本地Skill。

核心区别

  • Skill:运行在Hermes进程内部,Python代码;
  • MCP工具:独立进程,跨语言,外部服务,能力复用,可以对接第三方成熟工具。

开发落地经验:简单逻辑写Skill;复杂、重量级外部工具,优先MCP。

3. 启动HTTP网关模式:对外提供API服务

前面一直用--mode cli,网关模式--mode api会启动HTTP服务,对外暴露OpenAI风格接口,其他程序可以调用Hermes。

3.1 .env网关配置追加

env 复制代码
# API网关配置
API_HOST=0.0.0.0
API_PORT=8000

VPS部署注意:安全组放行8000端口;不要直接公网裸奔,生产环境增加鉴权token。

PowerShell启动网关

powershell 复制代码
python main.py --mode api

启动成功日志:

[INFO] HTTP Gateway listen on 0.0.0.0:8000

🧪Demo:curl调用网关接口

PowerShell执行:

powershell 复制代码
Invoke-RestMethod -Uri "http://127.0.0.1:8000/v1/chat/completions" `
-Method Post `
-ContentType "application/json" `
-Body (@{
    model = "hermes-agent"
    messages = @(
        @{role="user";content="列出skills目录所有技能"}
    )
}|ConvertTo-Json)

返回结果:Hermes完整应答,内部自动走完Memory、Skill、Soul全链路。

网关价值:

  1. 可以对接钉钉、企业微信机器人、前端页面;
  2. 其他Python/Java业务服务通过HTTP调用Hermes智能体;
  3. 为后面子Agent调用打下基础。

4. 子Agent协同实战:多智能体分工

Hermes支持孵化子Agent,每个子Agent拥有独立Memory、独立Skill库、独立Soul人格配置,实现任务拆分。

简单调用示例(通过API网关发送请求)

json 复制代码
{
  "model":"hermes-agent",
  "messages":[
    {"role":"user","content":"孵化一个子Agent,名字file_helper,专门处理文件操作任务,当需要文件处理任务交给它完成"}
  ]
}

底层行为:

  1. 在memory下生成独立子Agent存储目录;
  2. 分配独立soul人格;
  3. 主Agent把文件相关任务路由转发给子Agent执行,结果返回主会话。

典型业务场景:

  • 子AgentA:专门做代码分析;
  • 子AgentB:专门做文档摘要;
    主Agent负责理解用户需求,分配任务,汇总结果。

注意:子Agent会消耗更多token,不要无限制大量创建子Agent。

5. Crons定时任务业务实战

第三篇只是测试30秒打印hello,本篇做真实业务定时任务。

Crons本质:Agent持久定时任务,支持cron表达式,框架调度触发,自动执行Skill/MCP工具。

CLI输入指令创建定时任务:

复制代码
创建定时任务,每天22点,扫描workspace目录,统计全部md文档数量,将结果写入report.md

执行之后,任务定义文件生成到./crons/目录,调度器会按照cron表达式自动触发执行。

⚠️重要提醒

  1. CLI进程退出,定时任务停止;线上环境必须以api网关常驻运行;
  2. Cron任务执行日志输出到日志文件,方便排查定时任务失败;
  3. 不要写高频率短间隔定时任务,避免大量消耗LLM调用额度。

6. 落地开发常见踩坑汇总

  1. Skill返回非标准JSON:会造成框架解析失败;调试时,直接单独运行skill的md里面python代码,看输出。
  2. MCP服务启动失败:检查node/python环境,看MCP子进程报错日志。
  3. 网关公网访问不通:0.0.0.0监听,检查防火墙、VPS安全组端口放行。
  4. 子Agent记忆混乱:不同子Agent数据隔离,不要跨子Agent直接读取记忆。
  5. Crons任务不触发:确认是api常驻模式,CLI模式进程关闭定时失效。

7. 本篇小结 & 下一篇预告

本篇从调试走向落地:

  1. 掌握Skill完整规范,可以手写业务技能,区分自动生成/人工编写两种模式;
  2. 通过MCP协议对接外部工具生态,突破Agent本地能力边界;
  3. HTTP网关对外暴露API,打通外部系统;
  4. 子Agent任务分工、业务级定时Crons任务实战。

现在你的Hermes不再仅仅本地玩一玩,已经具备对接真实业务系统的全部基础。

下一篇:第五篇|横向对比与深度思考|边界、优劣、生产落地建议

会横向对比 Hermes vs OpenClaw / Claude Code;分析自进化Agent的固有局限;给出生产环境部署建议、风险控制、成本预估、未来拓展思路,为本专栏做收尾。


相关推荐
Misnearch2 小时前
MCP以及底层协议、传输模式
http·mcp·json-rpc
用户3126874877202 小时前
AI Agent 的 TCP/IP 时刻:MCP 协议深度解析
mcp
Flynt3 小时前
给AI编程工具装了张"代码地图"后,它终于不瞎猜了
ai编程·claude·mcp
宋哥转AI3 小时前
深入理解 AI Agent · MCP 子系列 #02:MCP Server 开发实战—从工具注册到无状态新规范
人工智能·agent·mcp
码哥字节20 小时前
我翻了 Claude Code 的系统提示词,发现 Skill 作者踩了这 5 个坑
claude·mcp
ServBay21 小时前
MCP Server 是什么?为什么是2026年开发团队的必备?
aigc·ai编程·mcp
Erishen1 天前
💡 比“怎么做”更值钱的是“为什么不那么做”:ai-analyze 的五个设计决策
开源·agent·mcp
神奇霸王龙1 天前
MCP 微软教材背书:5 国产基座 Agent 承接力实测
microsoft·ai·ai作画·agent·ai编程·ai写作·mcp
iini2 天前
nRF Connect SDK 开发新体验:VS Code + Claude Code + DeepSeek + Nordic MCP 全流程(蓝牙开发实例)
agent·ai编程·nrf connect sdk·zephyr·蓝牙开发·deepseek·mcp·claude code·nordic mcp