Hermes Agent 源码探秘 (9):实战案例 — 我是怎么用 Hermes 的

系列:Hermes Agent 源码探秘 作者:元思未来 字数:约2800字


前面八篇都在拆源码、讲原理。这篇我们放松一下,聊点实际的

作为一个 10 年全栈老程序员,我是怎么在日常工作副业中用 Hermes 的?它到底帮我省了多少事?


一、背景:我是什么用户?

先交代一下背景,方便你对号入座:

维度 我的情况
技术栈 全栈(前端+后端+运维+AI)
日常 写代码、做副业、写自媒体
性格 懒,不喜欢重复劳动
痛点 查资料费时间、写重复代码烦、整理素材累
对 AI 的态度 工具,不是替代品

二、场景 1:写文章(周更的"内容助理")

我现在在写的这个"Hermes 源码探秘"系列,每篇文章都离不开 Hermes 的帮助

我的写作流程

markdown 复制代码
【传统做法】
1. 想选题 → 翻资料(30分钟)
2. 写大纲 → 手写(20分钟)
3. 查代码 → 打开项目逐文件阅读(1小时+)
4. 写正文 → 码字(2小时)
5. 改稿 → 通读修改(30分钟)
总计:4小时+/篇

【用 Hermes 的做法】
1. 想选题 → 跟 Hermes 讨论(10分钟)
2. 写大纲 → Hermes 帮我搭框架(5分钟)
3. 查代码 → 让 Hermes 读取关键代码并解释(20分钟)
4. 写正文 → 我口述思路,Hermes 扩写成文(30分钟)
5. 改稿 → 通读 + 让 Hermes 检查逻辑漏洞(15分钟)
总计:1.5小时/篇

效率提升:约 60% 的时间节省。

具体怎么操作

互动式写作:

markdown 复制代码
我:我想写一篇关于 Hermes 核心循环的文章,面向有编程基础的读者。
    我需要解释 run_conversation() 的 while 循环是怎么工作的。
    帮我搭一个大纲。

Hermes:好的,以下是这篇文章的建议大纲:
  1. 核心循环的定位(在项目中的位置)
  2. 循环骨架(while 条件、控制变量)
  3. LLM 调用(tools 参数传递)
  4. 响应解析(文字 vs tool_calls)
  5. 工具执行
  6. 边界机制(重试、压缩、中断)
  ...

我:帮我读一下 agent/conversation_loop.py 中的错误处理部分,
    我想要具体的代码片段放在第6节。

Hermes:(读取文件,返回关键代码片段和解释)

这个交互过程本身就是一种"结对编程"------我提供方向和技术判断,Hermes 提供执行效率和知识广度。

文章写完后的检查

bash 复制代码
hermes chat -q "帮我检查一下 articles/hermes-agent-deep-dive/03-core-loop.md,
                有没有技术表述不准确的地方?有没有遗漏的重要机制?"

三、场景 2:辅助写代码(Python 小工具)

我在开发一个自用的炒股记账小工具(Python + CustomTkinter),Hermes 帮我做了大量工作。

例子:搭建项目骨架

css 复制代码
我:帮我创建一个 Python 炒股记账工具的项目结构。
    使用 CustomTkinter 做 GUI,SQLite 存储数据。
    帮我生成 main.py 和基本的界面框架。

Hermes:(思考中...)
  → 创建项目目录
  → 生成 main.py(包含主窗口代码)
  → 生成 database.py(SQLite 初始化脚本)
  → 生成 requirements.txt
  → 提供 CustomTkinter 的基本使用示例

整个过程不到 30 秒,我拿到了一个可以直接跑起来的项目框架。

例子:调试问题

go 复制代码
我:我的 SQLite 查询报错了,报错信息是:
    "sqlite3.OperationalError: no such column: buy_price"
    数据库初始化代码在 data/database.py,帮我看看哪里有问题。

Hermes:(读取文件)
    问题在第15行:你定义表结构时用的是 `price` 列名,
    但在第28行的 INSERT 语句里写的是 `buy_price`。
    列名不一致导致的。建议统一为 `price` 或 `buy_price`。

不用自己 grep 翻代码,一句话定位问题。

例子:添加功能

scss 复制代码
我:帮我给持仓看板加一个"盈亏百分比"的计算列。
    数据在 portfolio_tab.py 中展示,数据来自 database.py 的 get_portfolio()。

Hermes:(读取两个文件后)
    需要改两个地方:
    1. data/database.py 的 get_portfolio() 加一个计算字段
    2. gui/portfolio_tab.py 的表格加一列

    改动如下:
    ...

四、场景 3:定时任务(每天自动整理信息)

我设了一个定时任务,每天早上帮我整理行业信息:

bash 复制代码
hermes chat -q "设置一个定时任务,每天早上8点,
                搜索AI Agent和开源AI工具的最新动态,
                整理成摘要发到我的微信上"

背后发生了什么:

markdown 复制代码
1. Hermes 创建了一个 cronjob
2. 每天早上8点,Hermes 自动运行
3. 搜索指定关键词的最新资讯
4. 用 LLM 整理成结构化摘要
5. 通过 WeCom 网关推送到我的微信

一次设置,长期自动运行。 这是我作为"懒人"最喜欢的用法。


五、场景 4:把经验变成"技能"

做这个系列的过程中,我积累了不少关于"拆解开源项目"的经验。我把它写成了一个技能:

markdown 复制代码
---
name: open-source-deep-dive
description: 拆解开源项目的流程:定位、阅读、分析、撰写
---

## 拆解开源项目流程

### 1. 快速概览
- 看 README 了解项目定位
- 看项目结构了解模块划分
- 看 pyproject.toml/setup.py 了解依赖

### 2. 定位核心模块
- 找入口文件(main.py, cli.py, run_agent.py等)
- 找注册机制(registry、plugin等)
- 寻找核心循环

### 3. 深度阅读
- 从入口到核心逻辑的调用链
- 记录关键函数和类

### 4. 分析和输出
- 核心逻辑用流程图表达
- 代码引用选取关键片段
- 给每篇设置明确的技术深度目标

以后我拆其他开源项目时,加载这个技能,Hermes 就会按照这个流程帮我分析。

这就是"技能"的价值------把你的经验结构化,让 AI 也能按你的方式工作。


六、场景 5:知识管理助手

我经常需要:

  • 查某个技术概念
  • 对比不同方案的优劣
  • 整理零散的笔记

Hermes 在这方面也帮了大忙:

javascript 复制代码
我:解释一下 MCP (Model Context Protocol) 是什么,
    跟 Function Calling 有什么区别?
    要有例子,通俗易懂。

Hermes:MCP 是 Anthropic 提出的一个开放协议...
    对比:
    - Function Calling:每个框架自己定义格式
    - MCP:统一标准,一次接入到处用
    
    举个例子:...

它不仅仅告诉"是什么",还会根据我的技术背景给出有针对性的解释。


七、还有哪些场景我没用上?

Hermes 的能力远不止我用的这些。我没用上但值得提的:

功能 我没用的原因 适合谁用
多平台接入(Telegram/Discord等) 我主要用WeCom 跨平台团队
MCP 服务器 暂时没这个需求 需要自定义工具链的开发者
子代理并行 我的任务复杂度还没到 大型项目/研究
技能自动化发布 技能还不多 有大量技能需要管理时
Worktree 模式 单人开发 多人协作/多分支并行

八、使用心得总结

最让我惊讶的

  • 效率提升是真实的,不是噱头。写文章省60%时间,写代码省40%
  • 调试问题尤其好用------不用自己翻代码上下文
  • "看不懂代码?问它"------读开源项目时特别有用

最需要注意的

  • AI 会犯错------关键操作要验证,不能盲信
  • 提示词要具体------越具体,输出质量越高
  • 不能代替判断力------架构决策、代码质量判断,还是得靠自己

一句话总结

Hermes 是一个'提效工具',不是一个'替代品'。它让我把精力集中在真正需要判断力的事情上,把重复劳动交给它。


九、下一篇预告

这是系列的最后一篇了。第10篇我们来一个总结和大复盘

从第1篇到第9篇,我们走完了"从入门到源码拆解到实战应用"的完整旅程。最后一篇我会总结:

  • 我从 Hermes 源码中学到的 5 个架构设计智慧
  • 哪些设计模式可以复用到自己的项目中
  • 一个开发者的学习建议:怎么通过读源码提升自己
  • 什么时候用现成的,什么时候自己写

用的模型: DeepSeek V4 Flash(速度够快,性价比高)
运行方式: 企业微信(WeCom)远程使用 + 终端本地使用
使用时长: 持续使用中


元思未来 · 行稳致远,进而有为

相关推荐
Zeeland7 小时前
我做了一个 Agent Team 协作平台——Rudder:让 Agent Team 在实践中成长
人工智能·ai·agent
名不经传的养虾人9 小时前
从0到1:企业级AI项目迭代日记 Vol.34|知识图谱接进来、异步嵌套修掉、依赖往回收——藏在修复里的三层架构演进
人工智能·架构·知识图谱·agent·ai编程·ai创业·企业ai
vivo互联网技术10 小时前
AI 导购在 vivo 官网的落地实践
机器学习·架构·agent
Yoshizawa-Violet11 小时前
模板方法模式实战:重构Agent工具审批,告别重复代码
python·agent·模板方法
PersonalViolet11 小时前
模板方法模式实战:重构Agent工具审批,告别重复代码
设计模式·agent
极客小云12 小时前
【从 while 循环到可视化智能体:深入拆解 Agent Loop、Codex 风格工具调用、OpenClaw 与 Hermes 背后的技术细节】
数据库·python·大模型·agent·codex·openclaw·hermes
Artech12 小时前
[MAF的Agent管道详解-03]连接LLM的IChatClient对象
ai·llm·openai·agent·maf·agent管道·ichatclient
niaonao12 小时前
我把 Codex 的底座模型换成了 DeepSeek V4
openai·agent·deepseek
JaydenAI13 小时前
[MAF预定义ChatClient中间件-02]FunctionInvokingChatClient——实现ReAct循环和人机交互的大功臣
ai·人机交互·agent·react·hitl·maf·chatclient中间件