当前位置:首页>python>Hermes Agent Python 库:把 AI 打工仔塞进你的代码里,告别 CLI 命令行,用 import 召唤神龙

Hermes Agent Python 库:把 AI 打工仔塞进你的代码里,告别 CLI 命令行,用 import 召唤神龙

  • 2026-10-11 08:00:37
Hermes Agent Python 库:把 AI 打工仔塞进你的代码里,告别 CLI 命令行,用 import 召唤神龙

Hermes Agent Python 库:把 AI 打工仔塞进你的代码里

—— 告别 CLI 命令行,用 import 召唤神龙

前言:Hermes 不只是个命令行工具

你有没有这种经历:在终端里一行行敲命令,等 AI 回你,等得花都谢了?Hermes Agent 以前就是个 CLI 工具,你得在命令行里跟它对话,就像跟个傲娇的客服吵架一样。但今天不一样了 —— Hermes 摇身一变,成了一个可以 import 到 Python 项目里的库。

没错,你没听错。你不需要再对着黑漆漆的终端大喊大叫了,直接 `from run_agent import AIAgent`,一行代码召唤一个全副武装的 AI 打工人,塞进你的脚本、Web 应用、自动化流水线,随你使唤。

💡 核心理念:Hermes = 一个可以编程调用的 AI Agent,自带工具调用、多轮对话、批量处理等全套技能。

第一章:装就完事了,比点外卖还简单

安装 Hermes 库的方式多种多样,总有一款适合你。

1.1 pip 装包:传统艺能

最朴素的方式,用 pip 直接从 GitHub 仓库拉取:

pip install git+https://github.com/NousResearch/hermes-agent.git

1.2 uv 装包:速度起飞

如果你追求极致速度,uv 是你的菜,比 pip 快得不止一个量级:

uv pip install git+https://github.com/NousResearch/hermes-agent.git

1.3 requirements.txt:持久化方案

想把 Hermes 写进项目依赖里?直接在 requirements.txt 里加上:

hermes-agent @ git+https://github.com/NousResearch/hermes-agent.git

💡 环境变量不能省!至少要设置 OPENROUTER_API_KEY(或者 OPENAI_API_KEY / ANTHROPIC_API_KEY)。不设置?那 AI 就是断了网的赛博盲人,啥也干不了。

第二章:三行代码,召唤 AI 打工人

最简用法,只有三行:

from run_agent import AIAgent          agent = AIAgent(model="anthropic/claude-sonnet-4", quiet_mode=True)          response = agent.chat("巴黎首都是啥?")          print(response)

就这么简单。`chat()` 方法内部帮你搞定了一切:工具调用、重试、多轮对话,最后就返回一个纯文本答案。你只管提问,AI 只管干活。

2.1 关键参数:quiet_mode=True

💡 一定要设置 quiet_mode=True!不然 AI 会像话痨一样,在终端里打印各种进度条、旋转动画,把你程序输出的日志淹得底裤都不剩。在代码里用?安静点好。

第三章:full control —— 当你对 AI 不放心时

如果你不满足于简单问答,想要掌控全局,那就用 `run_conversation()`。这玩意儿返回一个字典,里面有你想要的一切:最终回复、完整对话历史、元数据。

result = agent.run_conversation(          user_message="搜一下 Python 3.13 有啥新特性",          task_id="my-task-1",          )          print(result["final_response"])          print(f"来回对话了 {len(result['messages'])} 轮")

返回的字典里:`final_response` 是 AI 的最终回答,`messages` 是完整的对话历史(系统提示、用户消息、AI 回复、工具调用……全在里面)。

3.1 自定义系统提示:给 AI 贴标签

你可以传入 `system_message` 覆盖默认的系统提示:

result = agent.run_conversation(          user_message="给我讲讲快排",          system_message="你是个计算机科学的老师,用最简单的类比来解释。",          )

💡 这相当于给 AI 贴了个临时标签:今天你是老师,明天你是代码审查员,后天你是 SQL 专家。同一个 Hermes,换脑即换人。

第四章:工具箱 —— 要还是不要,你说了算

Hermes 内置了各种 toolsets(工具集):浏览器、终端、搜索、文件操作……但你不需要全部。可以按需开启或关闭。

4.1 只开网页工具:搜搜搜

agent = AIAgent(          model="anthropic/claude-sonnet-4",          enabled_toolsets=["web"],# 只开网页工具          quiet_mode=True,          )

4.2 关闭终端:安全模式

agent = AIAgent(          model="anthropic/claude-sonnet-4",          disabled_toolsets=["terminal"],# 关终端,开放所有          quiet_mode=True,          )

💡 场景建议:`enabled_toolsets` 适合最小权限(比如只让 AI 搜索),`disabled_toolsets` 适合大部分开放但需要限制个别危险操作的场景。

第五章:多轮对话 —— AI 的短期记忆

Hermes 默认没有跨调用的记忆。每次 `chat()` 都是新的开始。但如果你想让 AI 记住上下文,可以手动传递对话历史:

# 第一回合          result1 = agent.run_conversation("我叫小明")          history = result1["messages"]          # 第二回合 —— AI 还记得          result2 = agent.run_conversation(          "你记得我叫啥不?",          conversation_history=history,          )          print(result2["final_response"])# "你叫小明啊!"

`conversation_history` 接收上一次返回的 messages 列表。Hermes 会内部复制一份,不会污染你原来的列表。

第六章:保存轨迹 —— 收集 AI 的数据

开启 `save_trajectories=True`,Hermes 会把每次对话以 ShareGPT 格式保存到 `trajectory_samples.jsonl` 文件中。适合用来:

- 收集训练数据

- 调试 AI 的行为

- 分析 AI 的思考过程

💡 每条对话占一行 JSONL,批量处理的时候特别好使。

第七章:定制人格 —— 给 AI 穿衣服

用 `ephemeral_system_prompt` 给 AI 设定专属人设,而且这个提示不会保存到轨迹文件里,保证训练数据干干净净:

agent = AIAgent(          model="anthropic/claude-sonnet-4",          ephemeral_system_prompt="你是个 SQL 专家,只回答数据库相关问题。",          quiet_mode=True,          )

💡 这招特别适合打造专用 Agent:代码审查员、文档撰写机器人、SQL 助手……同一个底层工具,换上不同的系统提示,就是不同的专家。

第八章:批量处理 —— 一人干活,不如一群 AI

想同时跑一堆提示词?Hermes 自带 `batch_runner.py`:

python batch_runner.py --input prompts.jsonl --output results.jsonl

每个提示词有自己的 task_id 和隔离环境。如果想自己写批量逻辑:

import concurrent.futures          from run_agent import AIAgent          prompts = [          "解释一下递归",          "哈希表是啥?",          "垃圾回收怎么工作的?",          ]          def process_prompt(prompt):          agent = AIAgent(          model="anthropic/claude-sonnet-4",          quiet_mode=True,          skip_memory=True,          )          return agent.chat(prompt)          with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:          results = list(executor.map(process_prompt, prompts))

💡 重要:每个线程必须创建新的 AIAgent 实例!Agent 内部有对话历史、工具会话、迭代计数器等状态,不是线程安全的,不能共享。

第九章:实战 —— 把 Hermes 塞进你的项目

9.1 FastAPI 接口

写个 Web API,前端发来消息,Hermes 秒回:

from fastapi import FastAPI          from pydantic import BaseModel          from run_agent import AIAgent          app = FastAPI()          class ChatRequest(BaseModel):          message: str          model: str = "anthropic/claude-sonnet-4"          @app.post("/chat")          async def chat(request: ChatRequest):          agent = AIAgent(          model=request.model,          quiet_mode=True,          skip_context_files=True,          skip_memory=True,          )          response = agent.chat(request.message)          return {"response": response}

9.2 Discord Bot

在 Discord 里 @AI 求助?安排:

import discord          from run_agent import AIAgent          client = discord.Client(intents=discord.Intents.default())          @client.event          async def on_message(message):          if message.author == client.user:          return          if message.content.startswith("!hermes "):          query = message.content[8:]          agent = AIAgent(          model="anthropic/claude-sonnet-4",          quiet_mode=True,          skip_context_files=True,          skip_memory=True,          platform="discord",          )          response = agent.chat(query)          await message.channel.send(response[:2000])          client.run("YOUR_DISCORD_TOKEN")

9.3 CI/CD 流水线:自动 Code Review

PR 合并前让 AI 帮你审代码,解放双手:

#!/usr/bin/env python3          import subprocess          from run_agent import AIAgent          diff = subprocess.check_output(          ["git", "diff", "main...HEAD"]          ).decode()          agent = AIAgent(          model="anthropic/claude-sonnet-4",          quiet_mode=True,          skip_context_files=True,          skip_memory=True,          disabled_toolsets=["terminal", "browser"],          )          review = agent.chat(          f"审查这段 PR diff 的 bug、安全漏洞和代码风格问题:\n\n{diff}"          )          print(review)

第十章:参数速查表 —— 不查文档也能用

以下是 AIAgent 构造函数里的关键参数和注意事项:

skip_context_files=True —— 不想让 AGENTS.md 文件自动加载到系统提示里?开它。

skip_memory=True —— 不让 AI 读写持久化记忆。API 接口场景必备,保证每次调用都是无状态的。

platform 参数 —— 比如传 `"discord"` 或 `"telegram"`,AI 会自动调整输出风格,适配平台格式。

max_iterations —— 默认 90 次迭代。如果只做简单问答,建议降到 10 以内,防止 AI 陷入工具调用死循环烧钱。

💡 线程安全铁律:一个线程一个 Agent 实例,千万别共享。资源清理:对话结束后会自动清理终端会话和浏览器实例,但长进程里要确保正常结束。

总结:从 CLI 到 Library,Hermes 的进化之路

Hermes Agent 从一个命令行工具进化为一个可编程的 Python 库,意味着你可以把 AI Agent 的能力直接嵌入到任何 Python 项目中。不管你是写 Web API、Discord Bot、CI 流水线,还是批量处理脚本,Hermes 都能胜任。

核心就三点:

1. 安装简单,三行代码启动

2. 控制灵活,工具按需开关

3. 集成方便,塞进任何项目都能跑

🚀👋

现在,去 import 你的第一个 AI 打工人吧。

最新文章

随机文章