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


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

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


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

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

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

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

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

我的写作流程

【传统做法】
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% 的时间节省。

具体怎么操作

互动式写作:

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

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

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

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

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

文章写完后的检查

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

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

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

例子:搭建项目骨架

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

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

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

例子:调试问题

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

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

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

例子:添加功能

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

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

    改动如下:
    ...

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

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

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

背后发生了什么:

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

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


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

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

---
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 在这方面也帮了大忙:

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

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

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


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

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

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

八、使用心得总结

最让我惊讶的

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

最需要注意的

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

一句话总结

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


九、下一篇预告

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

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

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

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


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