当前位置: 首页 > news >正文

Hermes Agent 接入 Gemini 3.5 Flash:从本地模型到云端推理的完整迁移指南

发布日期:2026-05-20 | 适用版本:Hermes 3、Gemini 3.5 Flash(2026年5月 Google I/O 发布)

Hermes Agent 是 NousResearch 基于 Meta Llama 3.1 微调的开源 Agent 框架,以 ChatML 格式和 <tool_call> XML 标签实现结构化工具调用;Gemini 3.5 Flash 是 Google 于 2026 年 5 月 Google I/O 发布的轻量推理模型,定位"低延迟、高吞吐量 Agent 场景的最佳性价比模型"。


Gemini 3.5 Flash 刚在 Google I/O 2026 亮相,Google 的判断很清楚:下一波 AI 浪潮的主角是 Agent,不是聊天机器人。对于已经在用 NousResearch Hermes 框架做工具调用的开发者来说,这个时间点值得认真对待——把后端推理换成 Gemini 3.5 Flash,可以在延迟、并发和工具生态上同时获益。

这篇文章讲清楚两件事:两个框架各自是什么,以及如何把它们接在一起跑起来。


Hermes Agent 是什么

Hermes Agent 是 NousResearch 推出的开源 Agent 框架,底层模型基于 Meta Llama 3.1 微调,核心强化了三项能力:结构化工具调用多轮对话状态管理JSON Schema 严格输出

它有一套专属提示格式(ChatML),工具调用通过 XML 标签显式声明,格式固定,解析稳定:

<|im_start|>system
You are a function calling AI model.
<tools>
[{"type": "function", "function": {"name": "get_weather", ...}}]
</tools>
<|im_end|>
<|im_start|>user
北京今天天气怎么样?
<|im_end|>
<|im_start|>assistant
<tool_call>
{"name": "get_weather", "arguments": {"city": "北京"}}
</tool_call>
<|im_end|>

框架核心文件 functioncall.py 实现了最多 5 层递归的工具调用循环,支持链式多步骤任务。进阶模式(GOAP)还会生成 <scratch_pad> 推理过程,帮助模型在调用前先规划动作序列。

相关代码:github.com/NousResearch/Hermes-Function-Calling


Gemini 3.5 Flash 的 Agent 定位

Google I/O 2026 的核心主题是"从对话式 AI 转向自主 Agent",Gemini 3.5 Flash 是这个战略的推理层基础。官方定位是"低延迟、高吞吐量推理任务的最佳性价比模型"。

与上一代 Gemini 2.5 Flash 相比,3.5 Flash 针对 Agent 场景做了几项关键改进:

特性 Gemini 2.5 Flash Gemini 3.5 Flash
Function Calling 模式 AUTO / ANY / NONE AUTO / ANY / NONE / VALIDATED
并行工具调用 支持 支持,响应更快
MCP 协议原生支持
多模态工具返回 文本/图片 文本/图片/PDF

其中 VALIDATED 模式是新增的:在多工具组合调用场景,模型会自动验证函数参数是否符合声明 schema,减少下游解析错误,这对工具链较长的 Agent 尤其有价值。

API 模型字符串:gemini-3.5-flash


两种框架的格式差异

接入之前需要理解一个核心问题:Hermes 和 Gemini 的工具调用格式不互通,需要做适配。

维度 Hermes Agent Gemini Function Calling
工具声明方式 System prompt 中 <tools> XML 标签 types.Tool(function_declarations=[...])
调用触发格式 模型输出 <tool_call> XML 标签 API 返回 functionCall 对象
结果回传格式 role: tool + <tool_response> functionResponse 部件(含 id 映射)
提示基础格式 ChatML(<|im_start|> 标签) OpenAI 兼容 messages 数组

不能直接把 Hermes 的 system prompt 喂给 Gemini API——主要工作就是这层格式映射。


接入步骤:Hermes → Gemini 3.5 Flash

第一步:安装 Google GenAI SDK

pip install google-genai

第二步:用 Python 函数声明工具

Gemini SDK 支持直接传 Python 函数,自动从类型注解和 docstring 生成 schema,比 Hermes 手写 JSON 更简洁:

from google import genai
from google.genai import typesdef get_weather(city: str) -> dict:"""查询指定城市的实时天气。Args:city: 城市名称,例如 '北京' 或 '上海'"""# 替换为真实天气 API 调用return {"city": city, "temperature": "22°C", "condition": "晴"}def search_web(query: str) -> dict:"""执行网络搜索并返回摘要结果。Args:query: 搜索关键词"""return {"query": query, "results": ["结果1", "结果2"]}

第三步:配置客户端

import osclient = genai.Client(api_key=os.environ["GEMINI_API_KEY"])config = types.GenerateContentConfig(system_instruction="你是一个专业助手。",  # 替代 Hermes 的 ChatML system prompttools=[get_weather, search_web],         # 直接传函数列表tool_config=types.ToolConfig(function_calling_config=types.FunctionCallingConfig(mode="AUTO"))
)

第四步:实现工具调用循环

这是核心——复现 Hermes 的多轮调用逻辑:

def run_agent(user_query: str, max_rounds: int = 5) -> str:messages = [{"role": "user", "parts": [{"text": user_query}]}]tool_map = {"get_weather": get_weather,"search_web": search_web,}for _ in range(max_rounds):response = client.models.generate_content(model="gemini-3.5-flash",contents=messages,config=config)candidate = response.candidates[0]tool_calls = [part for part in candidate.content.partsif hasattr(part, "function_call")]if not tool_calls:return candidate.content.parts[0].textmessages.append(candidate.content)function_responses = []for part in tool_calls:fn_name = part.function_call.namefn_args = dict(part.function_call.args)result = tool_map[fn_name](**fn_args)function_responses.append(types.Part(function_response=types.FunctionResponse(id=part.function_call.id,name=fn_name,response=result)))messages.append({"role": "tool", "parts": function_responses})return "已达最大调用轮次"# 运行示例
result = run_agent("北京今天天气怎么样,需要带伞吗?")
print(result)

从 Hermes 迁移的三个注意点

① System Prompt 格式

Hermes 的 ChatML <|im_start|>system... 格式不适用于 Gemini,改用 GenerateContentConfigsystem_instruction 参数传入,功能等价。

② 工具返回值类型

Hermes 的 <tool_response> 接受任意字符串,Gemini 的 functionResponse 需要传 Python dict,SDK 自动处理序列化。如果现有工具函数返回字符串,包一层 {"result": str_value} 即可。

③ 本地化需求判断

如果业务要求模型完全本地运行(私有数据合规、离线部署),Gemini 3.5 Flash 不适合,继续用本地 Hermes 模型。云端 API 场景下,Gemini 的响应速度和工具生态有明显优势。


进阶:通过 OpenAI 兼容接口最小化改动

如果不想重写工具调用逻辑,Gemini 提供 OpenAI 兼容端点,修改 base_url 即可:

from openai import OpenAIclient = OpenAI(api_key=os.environ["GEMINI_API_KEY"],base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)response = client.chat.completions.create(model="gemini-3.5-flash",messages=[{"role": "user", "content": "北京今天天气?"}],tools=[...]  # 沿用原有工具声明格式
)

这种方式下,Hermes 框架中基于 OpenAI SDK 封装的工具调用逻辑几乎不需要改动。


接入 MCP 协议(Gemini 独有能力)

Gemini 3.5 Flash 原生支持 MCP(Model Context Protocol),这是 Hermes 框架目前不具备的能力。对于已有 MCP 工具服务的团队,接入方式直接:

mcp_tool = types.Tool(mcp_config=types.McpConfig(server_url="http://your-mcp-server/sse")
)config = types.GenerateContentConfig(tools=[mcp_tool])

[数据待核实:建议对照 google-genai SDK 最新版本确认 McpConfig 字段名称]

MCP 接入意味着可以把已有的工具服务(搜索、数据库查询、文件操作)直接接给 Gemini Agent,无需重写函数声明。对于需要标准化工具编排的团队,这是从 Hermes 迁移的最大增益点。国内也有支持 MCP 协议的推理服务,开发者可以通过统一接口编排多模型工具链(参考:developer.qiniu.com/aitokenapi/12984/mcp-user-manual)。


常见问题

Q:Hermes 的 GOAP 推理模式(scratch_pad)在 Gemini 里怎么实现?

Hermes 通过特殊 system prompt 引导模型输出 <scratch_pad> 思考过程。Gemini 3.5 Flash 通过 thinking_config 参数开启内置推理模式,效果类似但实现方式不同——在 GenerateContentConfig 中设置即可,无需修改提示模板。

Q:能否让 Hermes 做 orchestration、Gemini 做 execution?

可以。将本地 Hermes 模型作为任务拆解层(负责决策"调用什么工具、按什么顺序"),把具体子任务转发给 Gemini 3.5 Flash 执行。这种"本地调度 + 云端推理"混合架构在成本与延迟之间取得较好平衡,适合对本地算力有限但工具链复杂的场景。

Q:Gemini 3.5 Flash 支持并行工具调用吗?

支持。单次请求可触发多个 functionCall,通过 id 字段映射各自的 functionResponse。相比 Hermes 的串行递归调用,并行调用在多工具任务中可显著减少总延迟。

Q:如何验证工具调用参数是否符合 schema?

使用 VALIDATED 调用模式。在 FunctionCallingConfig 中设置 mode="VALIDATED",Gemini 会在生成工具调用前自动验证参数类型和必填字段,减少因参数错误导致的调用失败。


总结

Hermes Agent 的优势在于开源可控、函数调用格式确定性高,适合对模型输出有严格格式要求的场景。Gemini 3.5 Flash 的优势在于低延迟、高并发、原生 MCP 支持,适合工具数量多、调用频率高的生产环境。

两者接入的核心工作量集中在格式转换:把 Hermes 的 ChatML + XML 标签体系映射到 Gemini Python SDK 的调用方式,代码量不大。如果沿用 OpenAI 兼容接口,改动更少。

据 Google DeepMind 在 Google I/O 2026 的表述,Gemini 3.5 Flash 是其 Agent 战略的核心推理层。对于正在扩展工具数量或提升并发能力的团队,现在是评估迁移的好时机。本文内容基于 2026 年 5 月数据,Gemini API 版本持续迭代,建议定期对照 ai.google.dev 官方文档更新接入细节。


延伸资源

  • Hermes Function Calling 仓库:https://github.com/NousResearch/Hermes-Function-Calling
  • 多模型 API 对比测试:https://www.qiniu.com/ai/models
http://www.jsqmd.com/news/853030/

相关文章:

  • 2026 深圳中高端全屋定制实测排行,本土工厂实力赶超连锁品牌 - 兔兔不是荼荼
  • IDEA专业版下maven构建和普通构建 JavaWeb 项目全教程(2025年) 附pom.xml配置文件
  • Ubuntu22.04系统安装英伟达显卡驱动
  • Windows 应用自动上架 Microsoft Store 的自动化实践
  • 外贸自建站多少钱 2026年外贸独立站建设费用全解析 - 麦麦唛
  • 医疗器械厂家可以定制中频治疗仪款式吗 - 舒雯文化
  • 使用 MobaXterm 打开第多个窗口(SSH渠道)
  • 三星固件下载终极指南:Bifrost跨平台工具免费获取官方系统
  • 2026年视频号视频怎么下载到手机相册?苹果安卓快速保存方法全盘点 - 科技热点发布
  • 哪个牌子的 pos 刷卡机靠谱?个人刷卡机正规机构大额刷卡,无年费对比测评 - 资讯速览
  • 2026开窗包装盒厂家推荐:大健康定制领域标杆企业测评 - 资讯速览
  • 2026年在线一键去水印工具推荐|好用的去水印工具评测对比 - 科技热点发布
  • 2026 年SATA连接器十大品牌排名及解析 - 十大品牌榜
  • 2026年国内做阴极保护腐蚀检测的厂家哪个好?从六大应用场景看武汉科思特仪器的全场景覆盖能力 - 品牌评测官
  • CubeCL 核心架构揭秘:基于立方体拓扑的跨平台计算模型
  • KFR数学函数深度解析:超越标准库的高性能实现
  • 协作焊接机器人研发 登兰普筑牢焊接自动化技术根基 - 深度智识库
  • 2026年去水印工具推荐:6大免费去水印工具详测,这款处理速度快到离谱 - 科技热点发布
  • 破解企业办公成本困局:打印机出租领域LITE轻办公方法论如何实现降本增效? - 资讯速览
  • 我的思维模型 - 7. 系统学篇
  • 深入理解DocQuery架构:LayoutLM模型与零样本学习原理
  • 通过Taotoken的API Key管理与审计日志功能加强企业内部安全管控
  • 去丽江吃云南菜别只看网红榜,选对店才不踩雷 - 资讯速览
  • 在K8S环境里部署大模型
  • 别再只用基本触发!Vivado ILA高级触发器模式实战:用状态机精准捕获复杂时序Bug
  • 2026 年音频连接器十大品牌排名及解析 - 十大品牌榜
  • 数据中心液冷厂家哪家好? 川润股份:国内稀缺的“算力液冷+绿色能源”全链条闭环服务商 - 资讯速览
  • LaTeX新手避坑指南:为什么你的PDF没有书签?hyperref宏包配置详解
  • FPGA DDR3实战:用MIG核把256MB内存变成高速数据缓存(附Verilog状态机代码)
  • 从账单明细看taotoken按token计费模式的清晰度与灵活性