hermes agent出现Empty response原因和解决方案

这个不是你代码逻辑本身炸了。

而是:

模型提供商返回了"空响应(Empty response)"

日志已经写得很明显:

复制代码
Empty response (no content or reasoning)

意思:

复制代码
模型 API 返回成功了
但 response.content 是空的

Hermes Agent 检测到:

  • 没有文本

  • 没有 reasoning

  • 没有 tool call

于是自动 retry。

但连续 3 次都是空。

最终:

复制代码
No fallback providers configured

因为你没配置备用模型。


一、最常见原因(按概率排序)


1. GLM 服务端抽风(概率最高)

你现在用的是:

复制代码
model=glm-4.5-air
provider=zai

也就是:

Zhipu AI 的 GLM API。

这种情况非常常见:

  • 模型超时

  • 推理卡死

  • 返回空 chunk

  • SSE 流中断

  • 网关错误

尤其:

AIR 小模型最容易。

因为:

  • 并发高

  • 限流重

  • 容量紧张

很多 Agent 框架都会遇到。


二、为什么"前面还好好的"

这是典型:

Provider 临时不稳定。

大模型 API 经常:

复制代码
前 10 分钟正常
后面突然空响应

原因可能:

  • 服务端扩容

  • 限流

  • 区域节点问题

  • token 峰值

  • websocket/SSE 中断

不是你本地突然坏了。


三、日志里最关键的一句

复制代码
No fallback providers configured

意思:

没有备用模型。

所以:

GLM 一挂:

Agent 直接死。


四、正确做法(非常重要)

你做 Agent:

一定要配置 fallback model。

例如:

复制代码
primary:
  provider: zai
  model: glm-4.5-air

fallbacks:
  - provider: openai
    model: gpt-4.1-mini

  - provider: anthropic
    model: claude-sonnet-4

  - provider: deepseek
    model: deepseek-chat

这样:

复制代码
GLM 空响应
→ 自动切 DeepSeek
→ 再不行切 OpenAI

这才是生产级 Agent。


五、为什么会出现"空响应"而不是报错

因为很多 provider:

HTTP 是 200 OK

但 body 是:

复制代码
{
  "choices": []
}

或者:

复制代码
{
  "content": ""
}

框架层只能判断:

复制代码
没内容

所以打印:

复制代码
Empty response

六、还有一种可能:上下文炸了

如果你:

  • conversation 太长

  • tool call 太复杂

  • MCP 输出太大

  • prompt 超长

GLM 有时会:

直接 silent fail。

尤其国产模型。

表现就是:

复制代码
返回空 content

不是 context overflow 明确报错。


七、Hermes Agent 为什么会 retry

因为 Hermes 里通常有:

复制代码
if not content and not reasoning:
    retry()

也就是:

复制代码
空内容 = 失败

所以自动重试 3 次。


八、怎么判断到底是哪种问题

你可以看:


如果是偶发

重启后恢复:

99% 是 provider 抽风。


如果稳定复现

每次到某段对话都炸:

大概率 context/prompt 问题。


九、建议你现在做的事


1. 先换模型测试

先试:

  • DeepSeek

  • Qwen

  • OpenAI

  • Claude

如果正常:

说明 Hermes 没问题。

是 GLM 问题。


2. 打印原始 response(重点)

你要看:

复制代码
print(raw_response)

而不是 Hermes 包装后的。

很多时候会发现:

复制代码
{
  "id": "...",
  "choices": []
}

或者:

复制代码
{
  "content": null
}

3. 降低上下文长度

很多 Agent:

长期对话后:

context 会指数膨胀。

GLM 比较容易挂。

可以:

  • summary memory

  • truncate

  • sliding window


4. 检查 streaming

很多 provider:

stream 模式最容易空响应。

尤其:

  • SSE 中断

  • chunk 丢失

你可以试:

复制代码
stream=False

看看还会不会。


十、国产模型很容易出现的问题

很多国产 provider:

并不像 OpenAI 那么稳定。

常见:

问题 表现
空 content 最常见
reasoning 缺失 经常
tool call 格式错误 很多
stream 中断 高频
JSON 不合法 常见
finish_reason 异常 常见

Agent 框架里:

fallback 是必须的。


十一、如果你是用 OpenAI SDK 兼容层

还有一个坑。

有些 provider:

虽然号称:

复制代码
OpenAI-compatible

但实际:

并不完全兼容。

例如:

  • delta.content 为 null

  • tool_calls 缺字段

  • choices 为空数组

Hermes 可能没适配。


十二、一句话总结

你这个问题本质是:

GLM-4.5-air 返回了空响应,Hermes 重试 3 次后仍失败,而你没有配置 fallback provider。

最可能原因:

  1. GLM 服务端临时不稳定(最高概率)

  2. 上下文过长导致 silent fail

  3. stream 模式 chunk 丢失

  4. OpenAI 兼容层不完整

  5. provider 限流/风控

而不是:

你电脑坏了或者 Hermes 本身突然崩了。

相关推荐
科技每日热闻1 天前
AI 赋能财务资金管理、风险预警、经营数据分析,合适的云上财务智能 Agent 有哪些?—— 优先采用 Amazon Quick 四链路解决方案
人工智能·ai·数据挖掘·数据分析
Linguwen1 天前
外贸GEO06|AI搜索引擎怎么工作?理解原理才能做好优化
人工智能·搜索引擎
DS随心转APP1 天前
生成word文档的DeepSeek底层解码与“AI导出鸭”工程化方案:一份技术架构师的全维度测评
人工智能·ai·chatgpt·word·deepseek·ai导出鸭
小猴子下山1231 天前
2026年无锡滨湖区健康管理公司解析:全周期服务与细胞技术如何匹配需求
人工智能·精选
深念Y1 天前
Opencode Event 表写入优化方案
数据库·人工智能·ai·node.js·bug·优化·opencode
招风的黑耳1 天前
我国牵头制定智慧城市国际标准发布:从“跟跑“到“领跑“,意味着什么?
人工智能·智慧城市
宋哥转AI1 天前
深入理解 AI Agent · MEMORY #01:从认知科学到记忆分层,建立完整的记忆认知框架
人工智能·agent·ai编程
安逸Ai1 天前
Batch Normalization 和 Layer Normalization 有什么用?
人工智能·机器学习·程序员
空堂与归1 天前
AI 电商智能客服助手:Coze 全流程实战
人工智能·开源