Hermes Agent 源码探秘 (1):AI Agent是什么?为什么我选Hermes来拆解?

0 阅读6分钟

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


引子

你用过 ChatGPT、Claude、文心一言吗?

大概率用过。但你想过没有:这些大模型对话产品,和"AI Agent"有什么区别?

如果你是一个程序员,最近一定经常看到这几个词:

  • AI Agent(AI代理/智能体)
  • Agentic AI(代理式AI)
  • Tool Calling(工具调用)
  • 自主Agent(Autonomous Agent)

听着很玄乎,但拆开来看,核心逻辑其实很简单。这篇文章我会用一个真实开源项目——Hermes Agent——来给你讲清楚。

而且这篇文章会是一个系列的开端,一共10篇,从易到难,从使用到源码拆解,带你彻底搞懂一个AI Agent是怎么工作的。


一、先搞懂:AI Agent 到底是什么?

ChatGPT 和 AI Agent 的区别

你用 ChatGPT 的时候流程是这样的:

你问一个问题 → ChatGPT 在脑子里想答案 → 输出文字

这叫 LLM(大语言模型)。它只做一件事:生成下一个字

但 AI Agent 是这样的:

你给一个任务 → AI 思考需要什么 → 调用工具(查资料/写代码/发请求)
  → 看结果 → 再思考 → 再调用工具 → 直到任务完成 → 输出最终结果

这叫 Agent Loop(代理循环)。它会主动调用工具、观察结果、调整下一步

一个会说,一个会做。区别就这么大。

举个具体的例子

普通ChatGPT:

你:今天天气怎么样?
ChatGPT:抱歉,我无法获取实时天气数据,建议你打开天气App查看。

AI Agent(Hermes):

你:今天天气怎么样?
Hermes:我来查一下。(调用天气API)
Hermes:北京今天多云,15-22°C,东南风3级。

区别在哪?Agent会自己去调用工具获取信息,而不是只靠训练数据里的知识。


二、Agent 的核心运行机制

所有 AI Agent 不管长什么样,核心都是这个循环:

┌─────────────────────────────────────────────────┐
│                  Agent Loop                      │
│                                                  │
│  用户输入 → LLM思考 → 决定:                      │
│     ├─ 回复文字 → 返回给用户 → 结束本轮           │
│     └─ 调用工具 → 执行工具 → 结果喂回LLM → 继续   │
│                                                  │
│  重复直到:任务完成 / 达到最大轮数 / 用户中断      │
└─────────────────────────────────────────────────┘

用伪代码写出来就这几行:

def run_conversation(user_message):
    messages = [system_prompt, user_message]
    
    for i in range(max_iterations):
        response = llm.chat(messages, tools=available_tools)
        
        if response.has_tool_calls():
            for tool_call in response.tool_calls:
                result = execute_tool(tool_call.name, tool_call.args)
                messages.append(tool_result(result))
            # 继续循环,让LLM看结果后决定下一步
        else:
            # LLM决定直接回复,结束
            return response.text

就是这样。 一个 AI Agent 的核心,简单到令人惊讶。

当然,真正生产级的实现要复杂得多——错误处理、重试、上下文压缩、记忆注入、权限控制——但最核心的逻辑就是上面这个循环。


三、为什么选 Hermes Agent 来拆解?

市面上有很多 AI Agent 项目,我为什么选 Hermes?

理由1:开源且完整

Hermes Agent 是 Nous Research 开源的,代码在 GitHub 上。它不是玩具项目,而是生产级的框架

  • 20+ 工具集(文件操作、终端执行、浏览器、搜索、图片生成等)
  • 15+ 消息平台适配(微信、Telegram、Discord、Slack 等)
  • 内置定时任务系统
  • 内置技能系统(让Agent学会新技能)
  • 持久化记忆
  • 子代理机制

理由2:架构清晰,适合学习

作为程序员,最怕的是一打开项目几千个文件不知道从哪看起。Hermes 的代码结构非常规整:

run_agent.py          # Agent核心循环
tools/registry.py     # 工具注册中心
tools/*.py            # 各个工具实现
agent/prompt_builder.py  # 系统提示词组装
gateway/platforms/    # 各平台适配器

每个模块职责单一,非常适合作为学习AI Agent架构的教材

理由3:它是"活的"

这不是一个归档项目,而是每天都在被使用和开发的项目。我每天就在用 Hermes 写代码、查资料、管理项目。这意味着你看到的每一行代码都在生产环境中运行着。


四、一个全景图:Hermes 的整体架构

先给你一个全貌,后续每篇文章会深入一个模块:

┌─────────────────────────────────────────────────────────┐
│                    用户交互层                            │
│  CLI (终端)  │  Gateway (微信/Telegram/Discord/...)     │
└───────────────────────┬─────────────────────────────────┘
                        │
                        ▼
┌─────────────────────────────────────────────────────────┐
│                   AIAgent 核心循环                       │
│  run_conversation()                                     │
│  ┌───────────────────────────────────┐                  │
│  │  System Prompt 组装              │                  │
│  │  → prompt_builder.py             │                  │
│  ├───────────────────────────────────┤                  │
│  │  LLM 调用 (20+ Provider)         │                  │
│  │  → run_agent.py → OpenAI API     │                  │
│  ├───────────────────────────────────┤                  │
│  │  工具调度                         │                  │
│  │  → model_tools.py                │                  │
│  └───────────────────────────────────┘                  │
├─────────────────────────────────────────────────────────┤
│                     子系统                               │
│  工具集  │  记忆系统  │  技能系统  │  子代理            │
│  cron    │  MCP服务器 │  插件系统  │  checkpoint        │
└─────────────────────────────────────────────────────────┘

五、一个"普通人"和一个"Agent"的区别

为了帮非程序员读者理解,我用一个类比:

普通 LLM 就像一个只有大脑、没有手脚的专家。 你可以问他问题,他能给出很好的建议,但他什么也做不了。

AI Agent 就像一个专家+助理的组合。 专家负责思考决策,助理负责执行:查资料、写代码、发邮件、操作服务器。

而 Hermes,就是一个训练有素、装备齐全的"数字助理":

装备(工具)能做什么
terminal执行命令、运行脚本、部署服务
file_operations读写文件、修改代码
web_search搜索互联网、获取最新信息
browser打开网页、点击、填表单
cronjob定时执行任务(每天早报、周报)
delegate派生子Agent并行工作

六、这个系列10篇,你将学到什么?

篇号标题你会学到
01AI Agent入门+Hermes概览Agent是什么、整体架构
025分钟跑起来安装、初体验、基本操作
03核心循环run_conversation()的完整实现
04工具系统工具注册、发现、调度机制
05System PromptAgent的"人设"和指令是怎么组装的
06多平台网关一个Agent接入15+平台
07记忆与技能Agent怎么学习和记住东西
08子代理系统Agent生Agent的机制
09实战案例我用Hermes做了什么
10总结学到了什么、能复用哪些

预告

下一篇,我会带你5分钟安装运行Hermes,然后做几件事让它展示一下"Agent能力"——查天气、写代码、搜资料。让你亲手感受一下 AI Agent 和普通聊天的区别。

然后第三篇,我们就直接杀入核心源码:run_conversation() 这个循环到底是怎么写的


作者: 十年全栈工程师,从设计到前端到后端到运维,目前在探索AI Agent + 副业变现。
系列目录: [Hermes Agent 源码探秘]
讨论: 欢迎在评论区告诉我你想深入了解的模块,我会在后续文章中重点拆解。


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